【White Paper】 SGI ISV & Developer Technology Brief

SGI ISV & Developer Tech Brief
SGI ISV & Developer Technology Brief
共有メモリおよびクラスタ並列システムにおけるGaussian 09並列スケーリング性能
Dr. Jan Fredin, Applications Engineer, SGI はじめに
Gaussian 09 [1]( 以下、G09) は Gaussian シリーズの最新バージョンであり、最先端の電子構造モデリング性能を備えています。G09 は、
ab initio 法、密度汎関数理論、半経験的モデル、分子力学法、およびハイブリッド法を用いて、エネルギー、構造、振動数といった原子、
分子、反応系の多くの特性を予測することができます。
Gaussian のパフォーマンスは、与えられた化学モデルのインプットに対し、システムハードウェア、G09 の設定、ユーザによるインプットの
選択により左右されます。ハードウェアシステム構成は、プロセッサの種類とノードあたりのコア数、メモリ容量、ネットワークインターコネクト、
ディスク容量、プロセッサのキャッシュサイズなど、全てがパフォーマンスに影響を与えます。利用可能なリソース、G09 の設定、ユーザによ
るインプットの設定により、どの G09 アルゴリズムを使用するかが決まります。
Gaussian 09 のすべての Linux/UNIX バージョンはシングル CPU システムで実行でき、共有メモリマルチプロセッサ(SMP)システム向け
に OpenMP [2] を用いて並列化された数少ない商用プログラムの 1 つです。SMPノードは、2 ~ 4 ソケット (1 ソケットあたり 2 ~ 16 コア )
の典型的なコモディティノードで構成できますが、単一ノードでシステムメモリにアクセス可能な数百から数千のコアを有する SGI® UV ™
2000 のような、キャッシュコヒーレントな共有メモリマシンを構成することもできます。クラスタおよびネットワークを用いた並列実行の場合、
ノード内では OpenMP で並列実行されますが、TCP Linda [3] 並列計算環境により複数ノードにまたがる並列処理が行われます。G09 が
実行ターゲットとなるマシンハードウェアセットの多様性を考慮すると、Gaussian の並列処理の実装の主目的は、あるアルゴリズムを実装し、
シリアル、SMP 並列、クラスタ並列の計算に対応した単一のルーチンセットにまとめることです。
性能ベンチマーク
グラフを用いてコンピュータアプリケーションの性能を示すには、多
くの方法があります。解を得るまでの絶対的な時間は重要ですが、プ
ロダクションデータセンタでは多くの場合、リソースの有効活用と解
を得るまでの妥当な時間とのバランスを取ることが、最も生産性の高
い選択となります。SGI では、1 日あたりに処理できるジョブ数で性
能をグラフ化し、並列化効率が 50% となる点を、プロダクションで
稼働するコア数の上限として判断する合理的な目安としています。
並列化効率 % = (t1-core / tn-core ) / n * 100
ここで、tn-core は n 個のコアで実行した場合の経過時間です。
図 1 は 2 つのモデル問題を示しており、青線のケースでは 15 コア、
緑線のケースでは 10 コアで、並列化効率 50% となります。本技術
概要で示す G09 スケーリングにおいて、並列化効率 50% は黒い矢
印でマークします。
本技術概要書では、共有メモリ SGI® UV ™ 2000 および SGI® ICE ™ X クラスタの 2 つのハードウェアシステムを使用します。
各システムの仕様は以下の通りです。
共有メモリシステム - SGI UV 2000
•1ノード - 512コア
•32 - 2ソケットボード HUB 3.0 ; ソケットあたり8コア
•インテル® Xeon® E7-4627 v2 (Ivy Bridge)
- 3.3GHz 16MB LLC キャッシュ (8コアで共有)
•トータルメモリ:4TB スピード:1866MHz
•SLES 11 SP3、SGI ProPack 7 SP2
•SGI® NUMALink 6 インターコネクト
•ハイパースレッディング利用不可
•ターボブースト未使用(利用可)
クラスタシステム - SGI ICE X
•144ノード - 2,880コア
•144 - 2ソケット x 10 コア (ソケットあたり)
•インテル® Xeon® E5-2690 v2 (Ivy Bridge)
- 3.0GHz 25MB LLC キャッシュ (10コアで共有)
•メモリ:ノードあたり128GB スピード:1866MHz
•SLES 11 SP3、SGI ProPack 7 SP2
•4× InfiniBand® - FDR
•ハイパースレッディング未使用(利用可)
• ターボブースト未使用 (利用可)
図 2 SMP システムとクラスタシステムの特性比較
SGI®®ICE X Clusters
SGI ICE X Clusters
SGI®®UV 2000 Platfrom
SGI UV 2000 Platfrom
InfiniBand
InfiniBand
Mem
Mem
~64GB
~64GB
mem
mem
SYSTEM
SYSTEM
+
+
OS
OS
SYSTEM
SYSTEM
+
+
OS
OS
mem
mem
mem
mem
SYSTEM SYSTEM
SYSTEM
SYSTEM
+
+
+
+
OS
OS
OS
OS
SGI ®®NUMAlink 6 ®®Interconnect
SGI NUMAlink 6 Interconnect
…
…
• 各ノードは、独自にメモリとOSを保有
• 各ノードは、独自にメモリとOSを保有
• ノードはコモディティインターコネクトにより通信
• ノードはコモディティインターコネクトにより通信
• 非効率的なノード間通信によりボトルネックが発生
• 非効率的なノード間通信によりボトルネックが発生
• 並列実行のためのコーディングが必要
• 並列実行のためのコーディングが必要
図3a
図3a
図3b
図3b
図3c
図3c
mem
mem
SYSTEM
SYSTEM
+
+
OS
OS
Global shared memory to 16TB
Global shared memory to 16TB
System + OS
System + OS
• システム全体が1つの大きな共有メモリスペースで稼働
• システム全体が1つの大きな共有メモリスペースで稼働
• ノード間のデータ通信を排除
• ノード間のデータ通信を排除
• 大きいデータセットはメモリ全体にフィット
• 大きいデータセットはメモリ全体にフィット
• ブレードあたりに必要なメモリを低減
• ブレードあたりに必要なメモリを低減
• プログラムを簡易化
• プログラムを簡易化
• 高性能、低コスト、導入が容易
• 高性能、低コスト、導入が容易
α-ピネン: HF、DFT、FREQ-pinine HF, DFT, FREQ
α-ピネン: HF、DFT、FREQ-pinine HF, DFT, FREQ
• C10H16、原子26個/重原子10個
• C10H16、原子26個/重原子10個
• b3lyp/6-311++G(3df,3pd) scf=tight
• b3lyp/6-311++G(3df,3pd) scf=tight
‒ 678個の基底関数
‒ 678個の基底関数
• HF(16mw/core)、DFT(16mw/core)、FREQ(32mw/core)
• HF(16mw/core)、DFT(16mw/core)、FREQ(32mw/core)
バリノマイシン: DFT Force
バリノマイシン: DFT Force
• C54H90N6O18、原子168個/重原子78個
• C54H90N6O18、原子168個/重原子78個
• rb3lyp/3-21g force scf=novaracc
• rb3lyp/3-21g force scf=novaracc
‒ 882個の基底関数
‒ 882個の基底関数
• Gaussian QAデータセットのtest397
• Gaussian QAデータセットのtest397
ヒスチジン-H+ : HF, MP4
ヒスチジン-H+ : HF, MP4
• C6H9N3O2、原子20個/重原子11個
• C6H9N3O2、原子20個/重原子11個
• MP4/6-31G(d) scf=noIncore
• MP4/6-31G(d) scf=noIncore
‒ 183個の基底関数
‒ 183個の基底関数
• Gaussian QAデータセットのtest310からの出力
• Gaussian QAデータセットのtest310からの出力
本技術概要書では、次の 3 つの分子モデルについて、SMP とクラスタの性能比較データを示します。図 3 の a、b、c は、3D 化学構造を
示します。
単純であるα - ピネンの HF 計算パフォーマンスを、コアおよびノード毎の 1 日あたりのジョブ数の 2 つの方法で表します。SMP UV 2000
システムでは、ブレード (2 ソケット搭載 ) は「ノード」とカウントして使用します。図 4a および図 4b では、UV 2000 SMP 並行スケーリン
グが ICE X Cluster より優れていることがわかります。これは問題の分割方法が異なるためです。SMP では全てのコアがリクエストされた全
てのメモリにアクセスでき、Linda を用いたクラスタではノード毎のメモリが各ノードに複製され、そのノードのコアはノード内のメモリだけを
共有します。問題が異なると、これら 2 つの問題分割方法に対するレスポンスが異なります。
Gaussian の技術ユーザはしばしばコアごとのスケーリングを話題にしますが、販売部門やコンピュータセンタが話題にするのはノードあたり
のパフォーマンスです。マシンは一般購入され、
ノードあたりを基準としたバッチスケジューラーを介してユーザに割り当てられます。ユーザは、
ノードあたりのリソースが異なるシステムを比較するとき、グラフが違って見える可能性があることを理解し、どの表し方が目的に最適である
かを判断すべきです。この場合、UV 2000 はノードごとに 16 個のコアがあり、クロック速度は 3.3GHz です。それに対して ICE-X は、1 ノー
ドあたり 20 コアでクロック速度が 3.0GHz です。図 4 において、コアあたり、ノードあたりのスケーリングプロットでα - ピネンの HF 計算
を比較すると、32 コアまでは 2 つのシステムのパフォーマンスは基本的に同じです。SMP は、144 コア (9 ブレード ) まで並列化効率 50%
を上回っていますが、クラスタは 80 コア (4 ノード ) で並列化効率 50% に当たります。
SGI ISV & Developer Tech Brief
Gaussian α-pinine HF (678 basis functions)
Gaussian α-pinine HF (678 basis functions)
1,400
1,400
Jobs/day
800
SGI ICE X IVB E52690v2 3.0GHz 25MB
LLC per 10 core socket,
128GB/node of
1866MHz memory, IB
FDR
600
400
1,000
Jobs/day
SGI UV2000 IVB
E5-4627v2 3.3GHz
16MB LLC per 8 core
socket , 128GB/board
of 1866MHz memory
1,000
800
SGI ICE X IVB E52690v2 3.0GHz
25MB LLC per 10 core
socket, 128GB/node
of 1866MHz memory,
IB FDR
600
400
200
0
SGI UV2000 IVB
E5-4627v2 3.3GHz
16MB LLC per 8 core
socket , 128GB/board
of 1866MHz memory
1,200
1,200
200
0
50
100
150
0
200
0
2
4
ncores
6
8
10
nodes
図 4a:コアによる日あたりのジョブ数
図 4b:ノードによる日あたりのジョブ数
図 5a および図 5b は、より複雑な 2 つの問題、すなわちシングルポイントα - ピネン DFT と、force 計算を含むバリノマイシン DFT を示し
ています。計算に複雑さが加わっており、並列スケーリングが低減していることがわかります。
Gaussian Test397 Valinomycin DFT Force
Gaussian α-pinine DFT (678 basis functions)
1,200
1,400
SGI UV2000
IVB E5-4627v2
3.3GHz
16MB LLC per 8 core
socket ,
128GB/board of
1866MHz memory
Jobs/day
800
600
400
SGI ICE X IVB E52690v2 3.0GHz
25MB LLC per 10 core
socket, 128GB/node
of 1866MHz memory,
IB FDR
200
0
0
50
100
150
1,200
800
600
SGI ICE X IVB E52690v2 3.0GHz
25MB LLC per 10 core
socket, 128GB/node
of 1866MHz memory,
IB FDR
400
200
0
200
ncores
図 5a
SGI UV2000
IVB E5-4627v2
3.3GHz
16MB LLC per 8 core
socket ,
128GB/board of
1866MHz memory
1,000
Jobs/day
1,000
0
20
40
ncores
60
80
図 5b
図 6a はヒスチジン -H+ の MP4 計算の並列スケーリングを表します。SMP については、コア数を増やすにつれてパフォーマンスが向上し、
40 コアで並列化効率 50% となることがわかります。クラスタ/Linda 計算では、1 ノード、20 コアを超えるとスケーリングしません。これは、
Linda を用いたときの主要な計算に並列アルゴリズムがないためです。
ヒスチジン -H+ の MP4 計算について、図 6b はメモリがパフォーマンスに及ぼす影響を示しています。G09 は、ワークスペースで十分なメ
モリを利用できない場合、実行されるリンクによっては用いられるプロセッサ数を減少させます。ユーザは、シングルコア計算に必要なメモリ
を判断し、それから共有メモリで使用コア数に応じてメモリ量をスケールアップする必要があります。
ノードあたりに必要なメモリ量 %mem は、並列スケーリングについて、次のように設定すべきです。
Mem=Mem0 + sf * (ncores – 1) sf ~ ½ から1
ここで、Mem0 は 1コアで効果的に実行できるメモリです。
SMP については、ノードは 1 つだけであり、%mem は使用されている全てのコアで共有されます。クラスタについては、Linda により並列
化され、%mem はノードあたりであり、メモリは各ノードに複製されます。
GAUSS_SCRDIR に大きなスクラッチファイルを割り当てて使用する問題については、ディスクの使用に関する設定が G09 のパフォーマンス
に影響を及ぼす可能性があります。ユーザはその問題に利用できる最速のディスクを選択すべきです。
•可能であれば、メモリディスクまたはローカルディスク
•できるだけ、共有ファイルシステムを利用しない
•MP2計算については、全てのノードが同じ名前のスクラッチファイルを読みます。1つのファイルシステムがマウントされるか、あるいは各ノー
ドに同じ名前のローカルファイルが必要です。これらは、.cshrcまたは.profileで定義できます。
SGI ISV & Developer Tech Brief
histidine-H+ MP4 - memory dependence
in Shared Memory SGI UV2000
Gaussian histidine-H+ MP4
G09 D.01
300
300
250
Jobs/day
Jobs/day
250
200
150
50
0
20
40
60
256mw*ncores
128mw*ncores
150
64mw*ncores
50
0
80
0
50
100
150
ncores
ncores
図 6a
512mw*ncores
200
100
SGI ICE X IVB E52690v2 3.0GHz
25MB LLC per 10
core socket,
128GB/node of
1866MHz memory,
IB FDR
100
0
350
SGI UV2000
IVB E5-4627v2
3.3GHz
16MB LLC per 8 core
socket ,
128GB/board of
1866MHz memory
350
図 6b
おわりに
Gaussian 09 は、さまざまな理論的方法を効率的な 1 つのコンピュータプログラムに組み込んだ、化学モデルの構造や多種多様な特性を計
算する研究ツールであり、世界中の高速計算センタで最も広く使用されているアプリケーションの 1 つです。本 SGI 技術概要書は、クラスタ
と SMP プラットフォームの両方で Gaussian のスケーラビリティを実証しています。Gaussian を用いる主要な処理経路 ( 実行されるリンク )
では、50 個から150 個のプロセッサコアまでスケールするものがあります。上述の性能グラフは、SGI UV 2000 のような大きな SMP アー
キテクチャが、Gaussian のジョブ実行に非常に有効であるプラットフォームにいかにしてなりうるかにについて注目しています。
SMP およびクラスタマシンの並列スケーリングを一般化すると、次の場合にあまりスケーリングしないことがわかります。
•化学モデルがHF、DFT、MP2、MP4、CISD、
・・・と高度になる
•基底関数のサイズが大きくなる
•再計算積分(Direct)アルゴリズムより、むしろIn-Coreアルゴリズムを使用する
•キャッシュ「チャンク」アルゴリズムを使用した場合に、コアあたりのハードウェアキャッシュサイズ/コアを少なくする
•ネットワークインターコネクト(Proprietary、InfiniBand、GigE、Ethernet)の速度を低下させる
Gaussian 09 ユーザは、入力キーワードによるアルゴリズム、並列処理の種類とサイズ、メモリ使用、ファイル配置など、パフォーマンスに
影響する多くの選択ができます。ユーザは、可能な限り最高の生産性を得るために、リソースを賢く使用する必要があります。
Gaussian のユーザサポートは、以下をご利用ください。
•コンピュータセンタおよび現地サポートスタッフ
•Gaussianマニュアル http://www.gaussian.com/
•Gaussianヘルプデスク [email protected]
•ハードウェアベンダアプリケーションスタッフ、例えばSGIアプリケーションエンジニアDr. Jan Fredin [email protected]
参照:
[1] Gaussian 09, Revision C.01, M. J. Frisch, G. W. Trucks, H. B. Schlegel, G. E. Scuseria, M. A. Robb, J. R. Cheeseman,G. Scalmani, V. Barone, B.
Mennucci, G. A. Petersson, H. Nakatsuji, M. Caricato, X. Li, H. P. Hratchian, A. F. Izmaylov, J.Bloino, G. Zheng, J. L. Sonnenberg, M. Hada, M. Ehara,
K. Toyota, R. Fukuda, J. Hasegawa, M. Ishida, T. Nakajima,Y. Honda, O. Kitao, H. Nakai, T. Vreven, J. A. Montgomery, Jr., J. E. Peralta, F. Ogliaro, M.
Bearpark, J. J. Heyd, E. Brothers,K. N. Kudin, V. N. Staroverov, R. Kobayashi, J. Normand, K. Raghavachari, A. Rendell, J. C. Burant, S. S. Iyengar, J.
Tomasi,M. Cossi, N. Rega, J. M. Millam, M. Klene, J. E. Knox, J. B. Cross, V. Bakken, C. Adamo, J. Jaramillo, R. Gomperts,R. E. Stratmann, O. Yazyev, A.
J. Austin, R. Cammi, C. Pomelli, J. W. Ochterski, R. L. Martin, K. Morokuma, V. G. Zakrzewski,G. A. Voth, P. Salvador, J. J. Dannenberg, S. Dapprich, A.
D. Daniels, Ö. Farkas, J. B. Foresman, J. V. Ortiz, J. Cioslowski,and D. J. Fox, Gaussian, Inc., Wallingford CT, 2009
[2] OpenMP Application Program Interface, Version 3.0 May 2008, http://www.openmp.org/mp-documents/spec30.pdf
[3] TCP-Linda with Gaussian http://www.gaussian.com/g_prod/linda.htm
[4] SGI UV 2000 product guide http://www.sgi.com/products/servers/uv/
[5] SGI ICE X product guide http://www.sgi.com/products/servers/ice/x/
〒150-6031
東京都渋谷区恵比寿4-20-3 恵比寿ガーデンプレイスタワー31階
http://www.sgi.co.jp
本
西 日 本 支
中
部
支
つ く ば 営 業
東 北 営 業
北 海 道 営 業
社
社
社
所
所
所
TEL
TEL
TEL
TEL
TEL
TEL
:
:
:
:
:
:
03-5488-1811(大代表)FAX:03-5420-7201
06-6479-3918( 代表 ) FAX : 06-6479-3919
0565-35-2561( 代表 ) FAX : 0565-35-2189
029-858-1551( 代表 ) FAX : 029-858-1071
022-221-2301( 代表 ) FAX : 022-221-2304
011-806-3570( 代表 ) FAX : 011-806-3501
©2012 - 2015 SGI Japan, Ltd. All Rights Reserved.
仕様は予告なしに変更される場合があります。 SGI、SGIのロゴマークは日本SGI株式会社の
登録商標です。
インテル、Intel、Xeonは、
アメリカ合衆国および / またはその他の国における
Intel Corporationの商標です。
その他の会社名、製品名は、各社の登録商標または商標です。
(04/2015)
日本SGIは地球環境に優しい企業へ
このカタログは、環境に配慮した植林木を使用しております。
日本SGIは様々なソリューションの提供を通じてお客様の製品の開発・
設計の過程において発生する紙や燃料等の資源消費量やCO2排出量
の低減を行い、省資源、省エネルギー化に貢献しています。