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

令和元年 秋期 基本情報技術者 午後 問02
問02   5問選択

 スレッドを使用した並列実行に関する次の記述を読んで,設問1〜3に答えよ。

 

 プログラム中の並列実行が可能な部分を取り出し,その部分を分割して複数のスレッドで 並列に実行する方法(以下,スレッド並列法という)がある。マルチプロセッサシステムでは, スレッド並列法を適用することによって,プログラムの実行時間を短縮できることがある。

 

 プログラムにおいて,スレッド並列法を適用しないで実行したときの実行時間を, スレッド並列法を適用したときの実行時間で割った値を,プログラム実行時間の高速化率という。

 プログラムをスレッド並列法を適用しないで実行したときの,プログラム全体の実行時間に対する, 並列実行可能な部分の実行時間の割合を ( 0 ≦ ≦ 1 )とする。 スレッドの個数を ≧ 1 )にして, プログラムにスレッド並列法を適用すると,マルチプロセッサシステムでは, プログラム実行時間の高速化率 は,次の式で求められる。 ここで,各スレッドはそれぞれ異なるプロセッサに割り当てられるものとし, プログラムの実行に使用する全てのプロセッサの性能は同じとする。

  

 この式は,並列実行可能な部分のプログラム実行時間がスレッド並列法の適用によって になり, その他の部分のプログラム実行時間は変化しないときの高速化率を計算するものである。

 

 プログラム中に並列実行が可能な部分をもつプログラム A に対してスレッドの個数を 2 にしてスレッド並列法を 適用すると,高速化率は になった。 この場合,a である。

 

  であるプログラム B の場合, スレッドの個数を増やしても,高速化率の上限は b である。

 

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

 

a に関する解答群

 

b に関する解答群 ア 2       イ 3       ウ 4       エ 6       オ 8
解答 a ←クリックすると正解が表示されます

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

 

基本情報技術者試験


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

 

 配列の操作を行う繰返しの処理において,図1,図2のように繰返しの範囲を分割して, スレッド並列法を適用することを考える。

 このとき,操作の内容によって,正しい結果が得られる場合と得られない場合があるので, 十分に検討することが必要である。

 

 正しい結果が得られる場合の例を,図1に示す。

 図1に示すプログラム1は,制御変数 i の取る範囲を分けることによって繰返し範囲を分割した繰返しの処理を, それぞれ異なるスレッドで実行できる。

 なお,図1,図2において,実線の四角はプログラム,破線の四角は繰返しの処理, 破線の四角から出る二つの矢印は分割を示す。

図1 正しい結果が得られる場合の例

 

 正しい結果が得られない場合の二つの例を,図2に示す。

 プログラム2の繰返しの処理を,スレッド 2-1 とスレッド 2-2 の二つに分割すると, c ことがあるので,スレッド並列法を適用しない場合の実行結果と 等しくなることを保証できない。したがって,プログラム2に対しては, 繰返しの範囲の分割によるスレッド並列法を適用できない。

 また,プログラム3の繰返しの処理を,スレッド 3-1 とスレッド 3-2 の二つに分割すると, d ことがあるので,スレッド並列法を適用しない場合の実行結果と等しくなることを保証できない。 したがって,プログラム3に対しても,繰返しの範囲の分割によるスレッド並列法を適用できない。

 

図2 正しい結果が得られない場合の二つの例

 

c に関する解答群 ア a[51] の値をスレッド 2-1 で更新するより先にスレッド 2-2 で更新する

イ a[51] の値をスレッド 2-1 で更新するより先にスレッド 2-2 で参照する

ウ a[51] の値をスレッド 2-1 で参照するより先にスレッド 2-2 で更新する

エ a[51] の値をスレッド 2-1 で参照するより先にスレッド 2-2 で参照する

 

d に関する解答群 ア a[51] の値をスレッド 3-1 で更新するより先にスレッド 3-2 で更新する

イ a[51] の値をスレッド 3-1 で更新するより先にスレッド 3-2 で参照する

ウ a[51] の値をスレッド 3-1 で参照するより先にスレッド 3-2 で更新する

エ a[51] の値をスレッド 3-1 で参照するより先にスレッド 3-2 で参照する

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

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

 

基本情報技術者試験


設問3  図3に示すプログラム4では,配列 a における更新対象の位置を 配列 ip の要素の値で指している。このプログラムでは,配列 ip の要素の値によって, スレッド並列法を適用できる場合とできない場合がある。

 

 図4に示す配列 ip であれば,スレッド並列法を適用できる。 図4中の    に入れる正しい答えを,解答群の中から選べ。

 なお,図3において,実線の四角はプログラム,破線の四角は繰返しの処理, 破線の四角から出る二つの矢印は分割を示す。

 

図3 プログラム4へのスレッド並列法の適用

 

図4 スレッド並列法を適用できる配列 ip

 

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


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