令和6年度 秋期 応用情報技術者試験 午後問題 問4 CPU/GPUの特性と処理配置の設計

テクノロジシステム構成ハードウェアデータベース

この問題は2024(R6)秋 応用情報技術者 午後に出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

学習ガイド

動画配信サービスのサーバ構成を題材に、CPU・GPU・ストレージ・ネットワークの性能値から処理時間を見積もり、機能の最適配置を考える問題です。計算問題が続くため、実効速度の読み取りと単位換算を確実にこなす手順が得点を左右します。この記事では各計算の途中式を省略せずにたどり、最後の配置判断が「データ量」という一つの観点に集約される流れを確認します。

この記事で押さえる論点

  • CPUとGPUの得意分野を演算の種類から判別する
  • ストレージ・ネットワークの速度から処理時間を見積もる計算手順を確立する
  • データ量の観点でサーバ間の機能配置を最適化する判断根拠を述べる

問題本文

問4 データ処理機能の配置に関する次の記述を読んで,設問に答えよ。

C社は,動画配信サービスを提供する会社であり,サービス内容が充実していることが人気を呼び,動画配信者数や動画視聴者数が増えている。動画配信者は,Webブラウザを用いて,ビデオカメラやスマートフォンで撮影した動画ファイルをC社のWebサイトにアップロードすると,Webサイト上で動画の編集・配信,広報,アクセス分析などの機能が利用できる。

C社の動画配信サービスは,C社配信システム部が企画から運用までを担当している。配信システム部では,サービス内容の向上を目的に,動画編集機能を強化した動画配信者向けの新しいサービスを提供するシステム(以下,新システムという)を構築することにした。新システムの構築は,配信システム部のD君が担当することになった。

〔新システムに必要な機能〕

D君は,現在の動画配信サービスの機能を基に,新システムに必要な動画配信者向け機能の機能要件を定義した。新システムに必要な機能一覧(抜粋)を表1に示す。

表1 新システムに必要な機能一覧(抜粋)
図の説明テキスト

表1 新システムに必要な機能一覧(抜粋)

機能名 機能概要
アップロード 動画配信者がビデオカメラやスマートフォンで撮影した動画をC社のWebサイトにアップロードして登録する機能
動画編集 C社のWebサイトに登録された動画を,Webブラウザを用いて編集する(カットする,結合する,BGM・テロップを挿入するなど)機能
配信準備 動画視聴者のネットワーク・環境に合わせた複数のビットレートの動画ファイルを作成する機能
アクセス分析 動画が動画視聴者に何回アクセスされているかを,複数の分析軸(地域,日時,年齢層,端末種別,アクセス動線など)から分析する機能

〔新システムのサーバ構成〕

D君は,新システムのサーバ構成を設計した。D君が設計した新システムのサーバ構成(抜粋)を図1に示す。また,SSDとHDDのアクセス速度を表2に,LANとインターネットの通信速度を表3に,各サーバのCPUとGPUの搭載数を表4に示す。なお,新システム内の負荷分散装置,サーバ,NASはLANで接続されている。

図1 新システムのサーバ構成(抜粋)
図の説明テキスト

図1 新システムのサーバ構成(抜粋)
インターネットを介してPC群が新システムの「負荷分散装置」に接続されている。負荷分散装置は「APサーバ1」および「APサーバ2」に接続されている。APサーバ1と2はそれぞれ内部にCPUとSSDを持ち、どちらも「DBサーバ(CPU、SSD)」、「GPUサーバ(CPU、GPU、SSD)」、「NAS(HDD)」の3つにLANで接続されている。
注記 図1中の AP サーバはアプリケーションサーバを示す。また、DB サーバはデータベースサーバを示す。

表2 SSD と HDD のアクセス速度
図の説明テキスト

表2 SSD と HDD のアクセス速度

装置 読込速度 (M バイト/秒) 書込速度 (M バイト/秒)
SSD 500 400
HDD 250 150
表3 LAN とインターネットの通信速度
図の説明テキスト

表3 LAN とインターネットの通信速度

回線 通信速度 (G bps)
LAN 1
インターネット 10
注記 表3中の bps はビット/秒を指す。
表4 各サーバの CPU と GPU の搭載数
図の説明テキスト

表4 各サーバの CPU と GPU の搭載数

サーバ CPU (コア) GPU (個)
AP サーバ 16 0
DB サーバ 32 0
GPU サーバ 4 4

各サーバで計算を行う CPU や GPU で実行される演算は,①整数演算と浮動小数点演算の二つに分類される。新システムで利用する CPU は,1 コア当たり整数演算が 10,000G Operations/秒(以下,OPS という),浮動小数点演算が 500G Floating-point Operations/秒(以下,FLOPS という)で実行できる。また,GPU は 1 個当たり浮動小数点演算が 10,000G FLOPS で実行できる。

この新システムを用いて,AP サーバ1 が AP サーバ1 の SSD に格納された 800M バイトの動画ファイルをメモリに読み込む時間は a 秒である。また,DB サーバの DBMS は RDB である。

〔配置の検討〕

D君は,新システムの各機能の中でデータ量や計算量が多い処理を抽出した。データ量や計算量が多い処理の一覧を表5に示す。なお、データ量には、各処理を実行するためにCPUやGPUにインプットされるデータ量と、CPUやGPUで計算した後にアウトプットされるデータ量とがある。

表5 データ量や計算量が多い処理の一覧
図の説明テキスト

表5 データ量や計算量が多い処理の一覧

機能名 処理名 処理方法 データ量 インプット(Mバイト) データ量 アウトプット(Mバイト) 計算量 整数演算数(GO) 計算量 浮動小数点演算数(GFLO)
動画編集 素材送信 NASに格納されているBGM素材やテロップ素材を,NASからAPサーバへ送信し,APサーバから動画配信者のPCへ送信する。 50 50 10 0
配信準備 レンダリング APサーバのメモリに格納されている動画データを基にBGM,テロップなどを合成して一つの動画データを作成する。 500 100 0 100,000
アクセス分析 オンラインユーザ数取得 DBサーバに格納されている特定の動画を視聴しているオンラインユーザ数をリアルタイムに集計して表示する。 100 0.1 50 0
アクセス分析 多次元分析 DBサーバに格納されている前日までの動画の視聴ログを複数の分析軸から分析する。 50,000 1 300 0
注記 GOはGiga Operationsを示し,GFLOはGiga Floating-point Operationsを示す。

レンダリング処理は、APサーバのCPUを4コア用いて処理する場合には b 秒掛かり、GPUサーバのGPUだけを1個用いて処理する場合には c 秒掛かる。ただし、GPUサーバを用いて処理する場合には、APサーバからGPUサーバへデータを送信するのに d 秒掛かり、APサーバへレンダリング結果を返信するのに e 秒掛かる。この検討結果から、APサーバよりもGPUサーバで処理した方がよい。

オンラインユーザ数取得処理について、D君はDBサーバで処理した結果をAPサーバへ送信する方法が最適と考え、DBサーバで処理することにした。

素材送信処理は、同時に100名の動画配信者向けに素材データを送信しようとすると、LANの通信速度とHDDの読込速度が遅く送信に時間が掛かる。しかし、図1のサーバ構成の変更には大きな費用が掛かることから、サーバ構成を変更せずに対応する方法を検討した。動画配信者のPCへ送信する素材データは特定の素材データに偏っており、各素材データの更新頻度も高くないことから、表5の素材送信処理の処理方法を変更して対応することにした。

〔動画配信者数増大への対応方針〕

D君は,将来的に動画配信者数が増大することを考慮して,新システムの拡張性について検討した。まず,表5のレンダリング処理は,動画データごとに処理が独立しており,GPUサーバを手動で追加する f の対応を行う方針にした。一方で,オンラインユーザ数取得処理は,時間とともに断続的に追記される動画の視聴ログをリアルタイムに集計する処理であり,DBサーバの数を増やせないことから,DBサーバを g して対応を行う方針にした。また,多次元分析処理は,そこで扱うデータの特徴から,多次元分析処理専用のDBサーバを追加する方針にした。これによって多次元分析処理の負荷が他の処理へ影響しないようになる。

その後,D君は新システムの構築を完了させ,C社は新システムによる新しい動画配信者向けサービスの提供を開始した。

設問と解答・解説

設問1

(1)

本文中の下線①について,整数演算に該当する演算を解答群の中から全て選び,記号で答えよ。

  1. 300 + 200 - 100
  2. 300 × 200 ÷ 100
  3. 3.00 + 2.00 - 0.10
  4. -300 + (-200) - (-100)
  5. 300 × 0
  6. 3.00 × 0

模範解答

選択肢ア: 300 + 200 - 100

選択肢イ: 300 × 200 ÷ 100

選択肢エ: -300 + (-200) - (-100)

選択肢オ: 300 × 0

配点 2

解説

コンピュータ内部での数値計算は、大きく整数演算浮動小数点演算に分かれます。問題では「整数演算」に該当するものを選択します。

  • 整数演算:小数点を持たない数値(正、負、ゼロ)同士の演算。
  • 浮動小数点演算:小数点を持つ数値を含む演算。

各選択肢の解説

  • ア(正解):300, 200, 100はすべて整数であり、整数演算に該当します。
  • イ(正解):300, 200, 100はすべて整数であり、整数演算に該当します。
  • ウ(誤り):3.00, 2.00, 0.10のように小数点が明記されているため、浮動小数点演算として処理されます。
  • エ(正解):負の値であっても整数であれば整数演算となります。
  • オ(正解):0を用いた乗算も、オペランドが整数であるため整数演算です。
  • カ(誤り):3.00という浮動小数点数が含まれているため、浮動小数点演算となります。

(2)

本文中の 空欄 a に入れる適切な数値を答えよ。ここで,本文に記載の読込速度,書込速度を実効速度とし,他のオーバヘッドは無視できるものとする。なお,計算結果に小数が発生する場合,答えは小数第2位を四捨五入して小数第1位まで求めよ。

模範解答

1.6

配点 2

解説

データの処理や伝送にかかる時間は、対象となるデータ量と、各ハードウェア(メモリやストレージなど)の実効速度から算出します。

本文中の仕様(読込速度や書込速度)に基づき、必要なデータ転送時間や処理時間を理論計算します。指定されたデータ量を実効速度で割ることで時間が求められます。

計算結果として小数が発生する場合、設問の指示に従い小数第2位を四捨五入して小数第1位まで求めます。オーバヘッドは無視できる前提であるため、純粋な計算式によって導出された「1.6」が正答となります。

設問2

〔配置の検討〕について答えよ。ここで,図1のサーバ構成を一つの処理が占有でき,〔新システムのサーバ構成〕と表5に記載以外のオーバヘッドや並列処理に伴うオーバヘッドは無視できるものとする。

(1)

本文中の 空欄 b に入れる適切な数値を,整数で答えよ。

模範解答

50

配点 2

解説

システム構成の最適配置を検討する上で、各機能が処理に要する時間を算出することは非常に重要です。

サーバ構成や表の記述に従い、処理対象のデータ量とハードウェア性能(CPUの処理速度など)を用いて計算を行います。並列処理のオーバヘッドなどが無視できる条件となっているため、理論上の処理量から所要時間を割り出します。正確に本文中の数値を取り出して算出すると、解答は「50」となります。

(2)

本文中の 空欄 c に入れる適切な数値を,整数で答えよ。

模範解答

10

配点 2

解説

ハードウェアリソースを専用の計算資源(GPUなど)にオフロードした場合などの処理時間を評価する設問です。

高速化を目的としたアクセラレータなどの利用では、CPUと比較して劇的な性能向上が見込めます。本文中の仕様とデータ量に基づき計算を行うと、CPU処理時と異なる所要時間が導出されます。与えられたパラメータに基づく計算結果から、正解は「10」となります。

(3)

本文中の 空欄 d に入れる適切な数値を,整数で答えよ。

模範解答

4

配点 2

解説

ネットワーク伝送やストレージ間のデータ移動など、処理工程の別のボトルネック要素を算出します。

計算資源単体の処理時間が速くても、データの移動に時間がかかってはシステム全体の最適化は図れません。本文に記載されたデータ転送量と実効帯域幅をベースに計算することで、データの読み書きや伝送に要する所要時間が算出されます。計算結果は「4」となります。

(4)

本文中の 空欄 e に入れる適切な数値を答えよ。なお,計算結果に小数が発生する場合,答えは小数第2位を四捨五入して小数第1位まで求めよ。

模範解答

0.8

配点 2

解説

一連の処理全体を通したトータルの所要時間や、特定の最適化後の所要時間を求める設問です。

前段で求めた各処理の所要時間を合計、あるいは比較し、最終的な全体の時間を求めます。設問の指示通り、計算結果に小数が発生した場合は小数第2位を四捨五入して小数第1位まで求めます。各ステップの数値を正確に導き出していれば、「0.8」という結果を得ることができます。

(5)

本文中の下線②について,DBサーバで処理した結果をAPサーバへ送信する方法が最適と考えたのはなぜか。データ量の観点から35字以内で答えよ。

模範解答

アウトプットデータと比較してインプットデータの量が多いから

採点基準(配点 2点)

知識・理解度(内容)(1点)

  • 1: インプットデータとアウトプットデータのデータ量の比較について正しく言及できている。
  • 0: データ量の比較について言及されていない、または関係性が誤っている。

論理性(構造)(1点)

  • 1: 「〜の方がデータ量が多いから」など、構成として最適である理由が論理的に記述されている。
  • 0: 理由としての記述が不十分、または文意が通らない。

解説

ネットワーク経由でデータを送信する場合、通信量をいかに抑えるかが性能改善の鍵となります。DBサーバからAPサーバにデータを送る構成を考える際、未処理のデータ(インプットデータ)と、処理結果(アウトプットデータ)のデータ量を比較することが重要です。

本設問の業務処理では、インプットデータ量よりもアウトプットデータ量が少ないという特性があります。そのため、APサーバに大量のインプットデータを転送してから処理するのではなく、DBサーバ側で処理を行い、小さくなったアウトプットデータのみをAPサーバに送信する方がネットワークの負荷が軽減され、最適配置となります。

高得点のポイント

  • インプットデータアウトプットデータのそれぞれのデータ量を比較していること。
  • アウトプットデータよりもインプットデータの量が多い(またはアウトプットデータの方が少ない)という関係性が明確に示されていること。
  • 指定された字数(35字以内)に収めつつ、論理的な理由として過不足なく成立していること。

(6)

本文中の下線③について,素材送信処理の処理方法をどのように変更したか。変更点を30字以内で答えよ。

模範解答

素材データをAPサーバのSSDにキャッシュする。

採点基準(配点 2点)

知識・理解度(内容)(1点)

  • 1: 対象データ(素材データ)と、配置先(APサーバのSSD)が正しく示されている。
  • 0: 対象データまたは配置先についての言及が欠落しているか誤っている。

論理性(構造)(1点)

  • 1: 「キャッシュする」などのシステムアーキテクチャ上の工夫として適切な文脈で変更点が記述されている。
  • 0: 変更点としての意味が通らない、または単なるリソース増強などの誤った内容になっている。

解説

システムの性能低下を招く要因の一つとして、同一データへの度重なるアクセスによるネットワークやストレージのオーバヘッドがあります。

毎回ファイルサーバなどの遠隔地から素材データを取得するのではなく、処理を行うAPサーバ自身の高速なストレージ(SSDなど)にデータを一時的に保持(キャッシュ)することで、素材送信処理にかかる時間を大幅に短縮できます。

高得点のポイント

  • 素材データを対象としていることが明記されていること。
  • キャッシュの配置先としてAPサーバのSSDに言及していること。
  • キャッシュするという処理方式の変更内容を端的に表現していること。

設問2(4)は,正答率がやや低かった。ボトルネックとなるサーバやネットワークなどのリソースを増強しなくても,データ配置の変更やキャッシュ機能を用いるなどの処理方式の工夫によって性能改善できることを,是非知っておいてほしい。

設問3

(1)

本文中の 空欄 f に入れる適切な字句を解答群の中から選び,記号で答えよ。

  1. スケールアウト
  2. スケールアップ
  3. スケールイン
  4. スケールダウン

模範解答

選択肢ア: スケールアウト

配点 1

解説

システムの拡張方式には、主にスケールアウトスケールアップがあります。オンラインユーザ数増大への対応方針として、それぞれの特徴を理解して適切な方式を選択する必要があります。

  • スケールアウト:サーバの台数を増やすことでシステム全体の処理能力を向上させる方式。WebサーバやAPサーバなど、並列処理がしやすく状態を持たない(ステートレスな)サーバに適しています。
  • スケールアップ:サーバ単体の性能(CPUやメモリなど)を向上させる方式。データの整合性が重要で、分散処理が難しいDBサーバなどに適しています。

本設問では、拡張性を持たせるためにサーバの台数を増やすアプローチが問われているため、スケールアウトが適切です。

各選択肢の解説

  • ア(正解):サーバの台数を増やして負荷を分散させるアプローチであり、適切です。
  • イ(誤り):サーバ単体の性能を上げるアプローチであり、台数を増やす文脈には合致しません。
  • ウ(誤り):スケールインはサーバの台数を減らすアプローチであり、需要縮小時に用いられます。
  • エ(誤り):スケールダウンはサーバ単体の性能を下げるアプローチであり、不適切です。

(2)

本文中の 空欄 g に入れる適切な字句を解答群の中から選び,記号で答えよ。

  1. スケールアウト
  2. スケールアップ
  3. スケールイン
  4. スケールダウン

模範解答

選択肢イ: スケールアップ

配点 1

解説

前問に引き続き、システムの拡張方式に関する問題です。

複数台のサーバによる並列分散処理が難しいコンポーネント(リレーショナルデータベースなど)においては、サーバの台数を増やすスケールアウトでは対応しきれない場合があります。このような場合、サーバ単体のハードウェアスペック(CPUコア数やメモリ容量、ディスクI/O性能など)を引き上げることで処理能力を向上させるスケールアップが採用されます。

各選択肢の解説

  • ア(誤り):スケールアウトは台数を増やす方式であり、この空欄の文脈には適しません。
  • イ(正解):サーバ単体の性能を上げるアプローチであるスケールアップが適切です。
  • ウ(誤り):スケールインはサーバの台数を減らす方式です。
  • エ(誤り):スケールダウンはサーバ単体の性能を下げる方式です。

(3)

本文中の下線④について,オンラインユーザ数取得処理と対比して,多次元分析処理で扱うデータの特徴を20字以内で答えよ。

模範解答

追加・更新のない過去のデータ

採点基準(配点 2点)

知識・理解度(内容)(1点)

  • 1: 多次元分析処理で扱うデータが「過去のデータ」であることに正しく言及できている。
  • 0: データの時制(過去であること)に関する言及がない、または誤っている。

論理性(構造)(1点)

  • 1: 「追加・更新がない(あるいは少ない)」という静的な特徴をオンライン処理との対比として表現できている。
  • 0: データの特徴としての記述が不十分、または文意が通らない。

解説

システムの拡張性や性能を検討する際は、業務内容に着目してデータの特性を把握することが不可欠です。

オンラインユーザ数取得処理のようなリアルタイム性の高い処理では、データが頻繁に更新・追加されます。一方、多次元分析処理(OLAPなど)では、一定期間蓄積された実績データを多角的に集計・分析します。そのため、分析対象となるデータは既に確定した過去のデータであり、処理の途中で追加や更新が行われないという特徴があります。この静的な特性により、データの複製や分散処理が容易になります。

高得点のポイント

  • 分析対象が過去のデータであることに言及できていること。
  • データが動的に変動しない(追加・更新がない)という静的な特徴を過不足なく表現していること。

設問3(2)は,正答率が低かった。サーバやネットワークの設計担当者は,データ量や処理速度などに着目しがちであるが,拡張性の検討を行うためには,データがどのような業務で利用されているかといった業務内容に着目することも必要である。広い視野からシステムの構成設計を行うことを心掛けてほしい。