ソフテック・トップページへ
ホーム 製品 セキュリティ・サービス HPCサービス ダウンロード 企業情報

PGI compiler TIPS
アムダールの法則、並列化率、並列効果
技術情報・TIPS > TIPS インデックス >並列化チュートリアル

並列化チュートリアル 連載(1)

並列化する際に留意する事項、考え方、PGI コンパイラを利用して実際に並列化する方法(スレッド並列、MPI並列)、性能に関する考察等を順次、この並列化チュートリアルコーナーで連載していきます。     (文責 加藤 努)

【チュートリアル主旨】
現在のCPUプラットフォームのアーキテクチャが、これから大きな変化を遂げようとしている。マイクロプロセッサの高クロック化は、発生する熱との問題で大きな期待をもてない中、今後、プロセッサ・ダイの中にマルチ・コアの構成が普通になろうとしている。ユーザが享受する性能は、高クロック化が望めない場合、複数のプロセッサによる「並列処理」によって、その性能向上が求められる。やっと、いろいろな意味で並列処理のための環境が整ってきたともいえる。これからは、自然に並列処理を受け入れる必要があり、そのためには多くのユーザにとって身近なものとして、並列処理を考えていただく必要がある。スレッド並列であれ、プロセス並列であれ、この並列化チュートリアルでは、PGIコンパイラを使用して実際に並列化を行っていくための技術情報を提供する。

並列化率と並列効果の関係

プログラムの並列処理を考える場合、一体、並列化によってどの位の性能が稼げるのかと言う視点を予め持っておくことは非常に大事である。闇雲に並列化を行っても、性能が出ないと言うことは往々にしてあることであり、これはある意味で悲劇と言える。プログラム特性に依存した性能の把握と並列設計を事前にしっかりと行うことで、その後の並列化作業の労力が大きく変わってくる。まず、最初に、並列化の性能に関わる諸要素について、説明していくことから始める。

● プログラムの並列化率によって、その性能効果が大きく変化する

一般論として、並列効果に対する定量的な見解を持っておくことは、並列化の方針を決定する際に重要である。例えば、4CPUを使用して並列化を行う際、並列化率によって、どの程度の並列効果が生まれるかを前もって知っておくべきである。ここで言う並列化率とは、全体のプログラムの何%が、並列化対象部分であるかと言う指標である。この指標を求める際の基準としてはCPU時間が使用され、一般には、並列対象部分のCPU時間が、全体CPU時間の何%であるかと言う観点で把握すれば良い。CPU時間(実際には経過時間が正確)を基準とした場合、測定された時間は、諸々の並列化のためのオーバーヘッドを含んだものとなっており、実際のプログラムの並列化率と言うことになる。並列オーバーヘッドを無視した理想的な並列化効果を算出したものが、以下の表である。これは、アムダールの法則により求められる。この法則を視覚的に表現したものが下記の図−2の模式図である。

    並列効果(α)= 1 / (( 1 - p) + p / Np)
      p  : 並列化率(0〜1.0)
      Np : プロセッサ数

並列化率が低い場合は、使用するプロセッサ数を増やしても大きな性能改善は望めない。従って、このような状況で並列実行をすることは、CPU資源の無駄使いになることも注意する必要がある。理想的なCPU数と並列化率による並列効果を以下の表-1に示す。また、これをグラフ化したものも図-1 に示した。

実際にはプログラムの実効並列化率は、与える計算条件(計算量、規模)によって変化する。これは、分散並列された計算時間(量)、これを一般に「並列粒度」と称するが、この粒度と並列化に伴う諸々の並列オーバーヘッドの相対比が変化するからである。これに関して、次回、説明することにする。

表-1 アムダール則から得られる理想的な並列効果
並列化効率 Number of CPU
並列化率 2 3 4 8 12 16
10.0% 1.05 1.07 1.08 1.10 1.10 1.10
20.0% 1.11 1.15 1.18 1.21 1.22 1.23
30.0% 1.18 1.25 1.29 1.36 1.38 1.39
40.0% 1.25 1.36 1.43 1.54 1.58 1.60
50.0% 1.33 1.50 1.60 1.78 1.85 1.88
60.0% 1.43 1.67 1.82 2.11 2.22 2.29
70.0% 1.54 1.88 2.11 2.58 2.79 2.91
80.0% 1.67 2.14 2.50 3.33 3.75 4.00
88.0% 1.79 2.42 2.94 4.35 5.17 5.71
90.0% 1.82 2.50 3.08 4.71 5.71 6.40
95.0% 1.90 2.73 3.48 5.93 7.74 9.14
97.0% 1.94 2.83 3.67 6.61 9.02 11.03
98.0% 1.96 2.88 3.77 7.02 9.84 12.31
99.0% 1.98 2.94 3.88 7.48 10.81 13.91
99.5% 1.99 2.97 3.94 7.73 11.37 14.88



図-1  各並列化率による並列化効果




図−2 並列化率と効果の関係(視覚的に表現)



<< 戻る


 ソフテックは、PGI 製品の公認正規代理店です

サイトマップ お問合せ
Copyright 2004 SofTek Systems Inc. All Rights Reserved.