• 検索結果がありません。

地球シミュレータ:1.地球シミュレータ・システム1.2地球シミュレータのプログラミング環境

N/A
N/A
Protected

Academic year: 2021

シェア "地球シミュレータ:1.地球シミュレータ・システム1.2地球シミュレータのプログラミング環境"

Copied!
4
0
0

読み込み中.... (全文を見る)

全文

(1)■■■■ ■■■■. Earth Simulator. 特 集:地球シミュレータ. ■■■ ■■■. 1. 地球シミュレータ・システム | 2. 地球シミュレータの応用 | 3. 運営計画および分野別利用状況. 1. 地球シミュレータ・システム. 地球シミュレータのプログラミング 環境 ES におけるプログラミング.  地球シミュレータ(ES: Earth Simulator)上では UNIX をベースとするオペレー. ■ 簡単な例. ティングシステム ESOS が動作しており,.  図 -1 は,ES で実行される典型的な Fortran プログラ. Fortran ,C ,C++ の 各 言 語 の コ ン パ イ. ムのイメージである.全球を対象とする大気シミュレー. ラが利用できる.したがって,これらのい. ションでは,三重ループ構造の K ループが緯度方向に,. ずれかの言語で書かれたプログラムであれ ば ES で実行することは可能である.しか. J ループが経度方向に,I ループが鉛直方向にそれぞれ. し,ES の性能を十分に引き出すには,本. 対応する.. 特集第 1.1 章「地球シミュレータのハード.  ES で実行するときの効率を考えると,K ループを計. ウェア」で述べた ES のアーキテクチャの. 算ノード(PN: Processor Node)間で並列化し,J ルー. 特長を活かすプログラミングが不可欠とな. プを PN 内で並列化し,I ループをベクトル化するのが. る.本稿では,ES のプログラミング環境. 理想的である.ここで,並列化の方法にはいくつかの選. について解説する.. 択肢がある.  図 -1(b)は,(a)逐次プログラムを High Performance Fortran(HPF)によって並列化したプログラムで ある.HPF の DISTRIBUTE 指示文によってデータの分 割を,CONCUR 指示行によって自動並列化を,VECTOR 指示行によってベクトル化を,それぞれ指定している. 同 様 に,(c) は Message Passing Interface(MPI) に よ って並列化したプログラムである.データを分割するた めに配列の宣言が変更され,並列実行するために K ル ープの上限が変更されている他に,隣接通信を行うため に MPI_SENDRECV 手続きの呼び出しが挿入されている. 自動並列化とベクトル化については, (b)と同じである. ■ 階層並列性  本特集第 1.1 章「地球シミュレータのハードウェア」 で述べたように,ES のアーキテクチャは,下に示す 3 階層の並列性を持つ. PN 間並列処理  640 台の PN を処理単位とする分散 メモリ並列処理.PN 間でデータをやりとりするには,. ■■■ ■ ■海洋科学技術センター ■. 結合ネットワーク(IN: Interconnection Network)を. 地球シミュレータセンター. 介した通信が必要になる.. 村井  均. PN 内並列処理  PN 内の 8 台の計算プロセッサ(AP:. [email protected]. Arithmetic Processor)を処理単位とする共有メモリ並 列処理.共有メモリを介する AP 間のデータのやりと. 122. ■■ ■■. 45 巻 2 号 情報処理 2004 年 2 月. −1−.

(2) ■■. 1.2 地球シミュレータのプログラミング環境 ■. ハイブリッド並列化. ���� ����������� ���� ����������� �� �������� �� ������ �� ������ �������� � ���������� � ��� ��� �� ��� �� ��� ��. PN 間並列処理. HPF/MPI. PN 内並列処理. 自動並列化/ OpenMP. ベクトル処理. フラット並列化 HPF/MPI. 自動ベクトル化. 表 -1 ES のプログラミングモデル. (a)逐次プログラム. ���� ����������� ���� ����������� ����� ���������� ����������� �� ��� �� �������� ����� ������ �� ������ ����� ������ �� ������ �������� � ���������� � ��� ��� �� ��� �� ��� ��. �� 自動並列化/� OpenMP�. HPF/MPI ���. (a)ハイブリッド並列化. (b)HPFによる並列プログラム HPF/MPI. ���� ������������������ ���� �������������������� ��� ���� � ��������� ��� � �� � � ��� � �� � � �� ��� �� �� ���� ��� � ������������� ���� �� ��� �� ��������� ���� ���� � ����������� ��� � ������������� ��� �� ���� ����������������� �� �������� ����� ������ �� ������ ����� ������ �� ������ �������� � ���������� � ��� ��� �� ��� �� ��� ��. (b)フラット並列化. 図 -2 ES における 2 つの並列化方法. の 2 つの方法がある. ハイブリッド並列化  PN 間と PN 内の並列処理を区 別し,階層的な並列化を行う.PN 間並列処理を HPF または MPI で記述する.PN 内並列処理は自動並列化 を用いるか, または OpenMP で記述する(図 -2(a) ) . フラット並列化  PN 間と PN 内の並列処理を区別 せず,全体を 640 × 8 = 5,120 台の AP を持つ 1 つ のシステムとしてみる.HPF または MPI で記述する   (図 -2(b)).. (c)MPIによる並列プログラム.  いずれの方法でも,ベクトル処理は,各言語のコン パイラが提供する自動ベクトル化機能によって実現さ. 図 -1 ES のプログラムの例. れる.  一般に,階層並列性を柔軟に利用することができるハ イブリッド並列化は性能において優れ,階層並列性を意. りは,PN 間の通信に比べると高速である.. 識する必要がないフラット並列化はプログラミングの容. ベクトル処理  ベクトル命令によって,AP がベクト. 易さにおいて優れているといえる.. ル(配列)データを一度に演算する処理.  ES の性能を十分に引き出すには,これら 3 つの並列.  HPF ランタイムと MPI ライブラリは,どちらの並列. 性のすべてを最大限に利用してプログラムを開発しなけ. 化方法においても効率よく動作するよう注意深く設計・. ればならない.. 最適化されている..  表 -1 には ES のプログラミングモデルを示す.この 表が示すように,ES の 3 階層並列性を利用するには次 ■ ■. IPSJ Magazine Vol.45 No.2 Feb. 2004. −2−. 123.

(3) ■■■■ ■■■■. Earth Simulator. 特 集:地球シミュレータ. ■■■ ■■■. 1. 地球シミュレータ・システム | 2. 地球シミュレータの応用 | 3. 運営計画および分野別利用状況. 公認拡張. ・ポインタのマッピング ・構造体成分のマッピング. ・INDIRECT. HPF2.0 (core). ・ON ・GEN_BLOCK ・SHADOW ・再マッピング. ・タスク並列 ・RANGE ・etc.. HPF/ES ・HALO        ・並列I/O ・バッチデバッグ ・ベクトル化/マイクロタスク指示行 ・自動並列化      ・MPI I/F ・LOCAL & REFLECT ・リダクション種別 ・通信スケジュールの再利用 ・非同期通信 ・etc.. HPF/JA. 図 -4 INPACT-3D の実行結果:レーザー核融合の    爆縮過程における燃料・プッシャー接触面. 図 -3 HPF/ES の機能. HALO  有限要素法に代表される,従来は HPF で. HPF/ES による並列化. は並列化が難しいとされた不規則問題を扱うための ■ データ並列言語 High Performance Fortran(HPF). 機能である..  並列計算機を用いて実際にシミュレーションを行う自. 並列入出力  ES のような巨大な並列計算機で実行. 然科学者の多くは,必ずしも並列プログラミングの専門. される計算では,入出力の規模も必然的に巨大にな. 家ではないにもかかわらず,効率のよい並列プログラム. るため,並列入出力が必要不可欠になる.HPF/ES. を開発するために多くの労力を割くことを強いられてい. は,並列入出力のためのシンプルなインタフェース. る.もし, 容易に効率のよい並列化を行う手段があれば,. を提供しており,実行時の簡単な指定だけで並列入. 彼らはアルゴリズムやモデルの開発に注力することがで. 出力を利用することができる.. きるだろう.そのような手段(コンパイラ,ツール,シ. MPI インタフェース  MPI 手続きを呼び出してい. ステム,etc.)に対する要求は従来より非常に強い.. る手続きを HPF プログラムから呼ぶことができる..  この要求に応えるべく,米 Rice 大学の Ken Kennedy. プログラムをさらに高速化したり,既存の MPI コ. 教授を中心とする組織 HPF Forum によって,1993 年. ードを再利用する場合に用いられる.. に HPF1.0 が,1996 年 に HPF2.0 が 制 定 さ れ た 1999 年 に は, 日 本 の HPF 合 同 検 討 会. ☆1. 1). .. に よ っ て,. HPF をさらに実用的な言語とする HPF/JA 拡張仕様が 定められた. 階層並列化  ES の階層並列性を効果的に利用する ため,ベクトル化/自動並列化指示行を受け付ける. HPF プロセッサは,実行時の指定によって,PN か. 2). .. AP のいずれかに割り当てることができる.PN に.  HPF は,Fortran の拡張として定義されるデータ並列. 割り当てる場合がハイブリッド並列化,AP に割り. 言語である.その基本的な考え方は,簡単な指示文の形. 当てる場合がフラット並列化に相当する.. 式でユーザがデータの分割の方法だけを指示すれば,コ. 性能  HPF/ES を用いてプラズマシミュレーション. ンパイラが通信の生成と計算の分割を自動的に行う,と. コード IMPACT-3D を並列化し,ES の 512 ノード上で. いうものである.MPI に比べて非常に容易に並列化を行. 14.9TFLOPS という性能(ピーク性能比 45%)を達成. えることが特長である.. した.この成果は,2002 年度の Gordon Bell 賞の言語 部門を受賞した. 3). .図 -4 は,IMPACT-3D の実行結果. の例である.. ■ ES における HPF 機能  ES 上では HPF/ES と呼ばれる HPF コンパイ ラが提供されている.HPF/ES は,最新の HPF2.0 仕様 とその公認拡張および HPF/JA 拡張仕様に加えて,い. MPI/ES による並列化. くつかの独自機能をサポートしている(図 -3).  HPF/ES の独自拡張には,次のような機能が含まれる. ☆1.  Message Passing Interface(MPI)は,分散メモリ向け. 2001 年に HPF 推進協議会へ改組.. 124. ■■ ■■. 45 巻 2 号 情報処理 2004 年 2 月. −3−.

(4) ■■. 1.2 地球シミュレータのプログラミング環境 ■. ルートプロセス. 3. 1 2 3. INを介したPN間 データ転送. 3. 2. AP. 並列処理を利用するための機能を備えている.. メモリコピー. ■ ベクトル化. ステップ(2). PN.  ソースプログラム中からベクトル化可能なループ構. 3. 造を自動的に検出し,それに対してベクトル命令を生. ステップ(1). 成する.基本的なベクトル化に加えて,部分ベクトル化 やマクロ演算ベクトル化といった拡張ベクトル化機能を. 図 -5 フラット並列化におけるブロードキャスト通信:    (1)2 項ツリー方式で IN を介して各 PN へ転送;    (2)PN 内の各 AP へ共有メモリ上でコピー. 持つ. ■ PN 内共有メモリ並列化  PN 内共有メモリ並列化は,次の 2 つの方法のいずれ. の並列プログラムにおいて,並列処理の単位であるプロ. かを利用して行う.. セスを操作する方法や,プロセス間でデータをやりとり. 自動並列化  各コンパイラは,ループの繰り返し間の. するために用いるメッセージ通信を行う方法を定めた仕. データ依存関係などを解析して,プログラム中に並列. 様標準である. 4). .. 制御構造を自動的に挿入する機能を持つ.この機能を.  ES で 利 用 で き る MPI/ES は,MPI-1 仕 様 お よ び. 「自動並列化」と呼ぶ.コンパイラオプションや指示. MPI-2 仕様に基づくメッセージ通信ライブラリである.. 行により自動並列化機能に対して細かく並列化の制御. その特長は,IN と PN 内共有メモリの機能を活用する. を行うこともできる.. ことにより,ノード間とノード内の通信をシームレスか. OpenMP  OpenMP とは共有メモリ並列処理のため 5). つ高い性能で実現することである.すなわち,MPI/ES. の標準 API である. のシステムは,データをやりとりするプロセスの位置関. C++)で書かれたプログラム中にユーザが OpenMP. 係を把握し,それらが別々の PN 内にある場合には IN. 指示行を挿入することでコンパイラが並列化を行う.. を介したデータ転送として,同一の PN 内にある場合に. ES で は,FORTRAN90/ES と C++/ES が OpenMP. は共有メモリ上の高速なメモリコピーとして,通信を行. 1.0 をサポートしている(近日中に OpenMP 2.0 がサ. う.したがって,フラット並列化を行う場合において,. ポートされる予定である).. .ベースとなる言語(Fortran, C,. 通信を行うプロセスの位置関係(同一 PN 内にあるのか, 別々の PN 内にあるのか)を意識することなく, 真に「フ ラットな」プログラミングが可能になっている.図 -5 に, フラット並列化における集団通信の例として,ブロード. 数学ライブラリ. キャスト通信の動作を示す..  行列演算や連立 1 次方程式の求解,高速フーリエ変.  1 つの MPI プロセスは,フラット並列化では 1 つの. 換(FFT)といった基本的な計算を行うサブルーチン群. AP に,ハイブリッド並列化では 1 つの PN に割り当て. が,科学技術計算ライブラリ ASL/ES として提供され. られる.この切り替えは実行時の指定による.. ている.ASL/ES は,ES のアーキテクチャに適合する よう十分に高速化・最適化を施されており,ES の PN 内共有メモリ並列処理とベクトル処理において最大の性. 言語コンパイラ. 能を発揮できる..  ES のプログラミングモデルにおいて,言語コンパ. 参考文献 1)High Performance Fortran Forum, http://www.crpc.rice.edu/HPFF/ 2)HPF 推進協議会 , http://www.hpfpc.org/ 3)Sakagami, H., Murai, H., Seo, Y. and Yokokawa, M.: 14.9TFLOPS Three-dimensional Fluid Simulation for Fusion Science with HPF on the Earth Simulator, In Proc. of SC2002(Nov. 2002). 4)Message Passing Interface Forum, http://www.mpi-forum.org/ 5)OpenMP, http://www.openmp.org/ (平成 15 年 11 月 29 日受付). イラはベクトル化と PN 内共有メモリ並列化(ハイブ リッド並列化の場合)を担当する.ES では,Fortran , C および C++ のコンパイラを利用できる(それぞれ, FORTRAN90/ES ,C/ES および C++/ES と呼ぶ).い ずれも,高度な自動ベクトル化機能と PN 内共有メモリ ■ ■. IPSJ Magazine Vol.45 No.2 Feb. 2004. −4−. 125.

(5)

参照

関連したドキュメント

 地表を「地球の表層部」といった広い意味で はなく、陸域における固体地球と水圏・気圏の

ところで、モノ、ヒト、カネの境界を越え た自由な往来は、地球上の各地域の関係性に

メモ  : 権利の詳細な管理は、 BlackBerry WorkspacesEnterprise ES モード BlackBerry Workspaces およ. び Enterprise ES ( 制限付きフルアクセス )

【おかやまビーチスポーツフェスティバルの目的】

Apply Fanfare ES INSECTICIDE/MITICIDE as a banded spray over the row at a rate of 0.05 to 0.15 pounds active ingredient per acre (3.2 to 9.6 12.8 fluid ounces formulated) in

For all other crops, apply Bumper ES by ground equipment in a minimum of 10 gals of water per acre unless specified otherwise in the APPLICATION INSTRUCTIONS section of this

ダイキングループは、グループ経 営理念「環境社会をリードする」に 則り、従業員一人ひとりが、地球を

地球温暖化対策報告書制度 における 再エネ利用評価