基本情報技術者試験の過去問と解説
[TOP] [午前分野別] [午後分野別] [キーワード索引] [令和元年秋午前] [令和元年秋午後]

平成26年 春期 基本情報技術者 午後 問03
問03   4問選択

問3 プログラムの並列実行に関する次の記述を読んで,設問1〜3に答えよ。

 プログラムを並列に実行する方法として,スレッドを使用した並列実行がある。 スレッドを使用した並列実行では,プログラムの中で並列実行が可能な部分を抽出して 複数の処理に分割し,分割した処理を別々のスレッドとして同時に実行する。

 スレッドによる並列実行の例を,図1に示す。プログラム A は,一つのプロセスとして実行され, データ作成,計算処理,結果出力の順に処理が行われる。ここで, 計算処理は n 個の処理に分割して並列実行が可能であり,分割した処理を異なるスレッドで 並列に実行した結果は,スレッドを使わずに計算処理した実行結果と同じであるとする。 計算処理では,スレッドの生成と実行を行い,全てのスレッドの終了を同期処理で待つ。 各スレッドでは,分割した計算処理(部分計算処理)を行う。

図1 スレッドによる並列実行の例

 プログラムAを実行するコンピュータの構成は,性能が同じである複数の CPU と 各 CPU からアクセス可能な共有メモリで構成されているマルチプロセッサとする。 生成された複数のスレッドは,異なる CPU に割り当てられて同時に実行され, 各スレッドは共有メモリでデータを共有する。マルチプロセッサにおけるスレッドと CPU ,共有メモリの関係を,図2に示す。ここで,データを転送するバスの競合は無いものとする。

図2 マルチプロセッサにおけるスレッド実行

設問1 次の記述中の に入れる正しい答えを, 解答群の中から選べ。

 マルチプロセッサによる並列実行で得られる理想的な高速化率 E は次の式で求められる。

 図1のプログラムAにおいて,データ作成,計算処理,結果出力の処理時間の割合が 7:90:3 の場合,単一の CPU で実行したときと比べた高速化率を5以上にするには, CPU が最低 個必要である。 ここで,スレッドの生成処理などの並列実行に伴うオーバヘッドは考慮しない。

a に関する解答群

ア 5       イ 6       ウ 7

エ 8       オ 9       カ 10

解答 a ←クリックすると正解が表示されます

基本情報技術者試験


設問2 次の記述中の に入れる正しい答えを, 解答群の中から選べ。

 プログラムの一部を複数の処理に分割して並列に実行するためには,プログラムの中から 並列実行が可能な部分を抽出する必要がある。並列実行が可能なループの例を, 図3に示す。図3は,i のループに関してループを四つに分割し,分割したそれぞれの ループの処理をスレッドとして並列実行する場合である。ここで,配列のデータは スレッド間で共有され,変数 i はスレッドごとに確保されるものとする。

図3 並列実行が可能なループの例

 プログラムの中から並列実行が可能な部分を抽出する場合,並列に実行しても データの更新と参照の順序が変化しないことを保証する必要がある。 図4に示すプログラム1〜3を,i のループに関して複数のループに分割し, 分割したそれぞれのループの処理を並列に実行する場合の並列実行可能性について考える。 ここで,配列は十分に大きいものとする。

 プログラム1は,ループの中で ,並列実行できない。 プログラム2は,ループの中で ,並列実行できない。 プログラム3は,m の値が不明の場合には並列実行できないが, で あることが保証されていれば並列実行は可能である。

図4 ループのプログラム1〜 3

b,c に関する解答群

ア 更新した値が次の繰返しで参照されるので

イ 更新した値が次の繰返しで再び更新されるので

ウ 参照した値が次の繰返しで更新されるので

エ 参照した値が次の繰返しで再び参照されるので

d に関する解答群

ア m ≧ Ø       イ m ≧ n       ウ m ≦ Ø

エ m ≦ n

解答 b ←クリックすると正解が表示されます

解答 c ←クリックすると正解が表示されます

解答 d ←クリックすると正解が表示されます

基本情報技術者試験


設問3 図5に示すプログラム4は,配列 a で更新する要素を示すインデックスの値が 配列 ip で間接的に決定される。この配列 a のような更新を含むプログラムは, 配列 ip の値によっては並列実行できない場合があるので注意が必要である。 プログラム4を,図5のように i のループに関して複数のループに分割し, 分割したそれぞれのループの処理をスレッドで並列実行するとき,並列実行可能な ip[i](i=1,2,…,20) の値として適切な答えを,解答群の中から選べ。

図5 プログラム4の並列実行

解答群

解答 ←クリックすると正解が表示されます

[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]