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

GPUによる樹枝状凝固成長のフェーズフィールド計算 青木尊之 * 小川慧 ** 山中晃徳 ** * 東京工業大学学術国際情報センター, ** 東京工業大学理工学研究科 溶融金属の冷却過程において形成される凝固組織の形態によって材料の機械的特性が決定することは良く知られている このようなミクロな組織の

N/A
N/A
Protected

Academic year: 2021

シェア "GPUによる樹枝状凝固成長のフェーズフィールド計算 青木尊之 * 小川慧 ** 山中晃徳 ** * 東京工業大学学術国際情報センター, ** 東京工業大学理工学研究科 溶融金属の冷却過程において形成される凝固組織の形態によって材料の機械的特性が決定することは良く知られている このようなミクロな組織の"

Copied!
5
0
0

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

全文

(1)

TSUBAME 2.0の全貌

GPUによる樹枝状凝固成長の

フェーズフィールド計算

TSUBAMEを用いた

フラーレン・ナノチューブ・グラフェンの

構造変化と新物質研究

創刊号

1

(2)

フェーズフィールド・モデルは、非平衡統計物理学から導出され、 分子スケールとマクロなスケールの中間のメソスケールの現象を記 述できる。秩序変数φを導入し、固相部分φ=1 に、液相部分にφ =0 と設定する。界面を含む領域ではφが 0 から 1 へと急峻かつ滑ら かに変化する拡散界面として扱い、φ= 0.5を界面として扱う。フェー ズフィールド・モデルでは従来使われていた界面追跡法等の手法 が不要となり、領域全体で同一の計算を行うことができる。  本研究で対象とする純金属のデンドライト凝固成長ではフェーズ フィールド・モデルから導出されるAllen-Cahn方程式と熱伝導方 程式を解く[4]。界面エネルギーの異方性を考慮したφに対する方程 式として式(1)を用いる。 また、式(1)中、 βは式(2)、εは式(3)である。 ただし、 L は潜熱、Χは[-1.0,1.0 ]の乱数、αは乱数の振幅、γは異方性 強度、Τmは融点 、δは界面厚さ、σは界面エネルギー、λは界面幅制 金属材料の機械的強度や特性はミクロの組織的構造に基づくため、 より高性能な材料を得るためにはミクロなダイナミクスの解明が必 要である。近年、材料の相転移や相分離などの解明に非平衡統計力 学から導出されるフェーズフィールド・モデル[1]が注目されている。 導出される方程式は時間空間の偏微分方程式になっていて、有限差 分法や有限要素法などで解かれることが多い。しかしフェーズフィー ルド・モデルは計算負荷が大きいため、HPC分野において最近注目 されているアクセラレータ技術[2]、特にGPGPU(General-Purpose

Graphics Processing Unit)[3]を使うことを考える。

 GPUはパソコンにも普通に使われる画像表示専用のプロセッサで あるが、グラフィクス処理の高度化に伴い機能が急速に進化し、画 像処理以外の一般的な計算も行えるようになってきた。浮動小数 点演算の性能が高く、ビデオメモリへのバンド幅が大きいため、従 来のアクセラレータと違いさまざまなアプリケーションへの適用が 可能である。さらに 2006 年にNVIDIAがGPGPU用の統合開発環境 であるCUDA[3]をリリースしたことにより、標準 C言語でGPGPUのア プリケーションを開発できるようになり、一気に利用が広がっている。  本稿では、フェーズフィールド・モデルに基づいて純金属の過 冷却凝固における樹枝状(デンドライト)組織の成長を計算する。 CUDAを用いて有限差分法で離散化された時間発展方程式をプロ グラミングし、TSUBAME 1.2 のGPU上で計算することにより、CPU と比較して圧倒的に高速に計算できることを示す。従来のGPU計算 が単一 GPUを利用することが多かったのに対し、本研究では 1 つの GPU上のメモリには載らないような大規模の計算に対し、領域分割 法で並列化すると共に、複数ノードに搭載されたGPUを使う計算の スケーラビリティを調べた。

青木 尊之

*

  小川 慧

**

  山中 晃徳

** * 東京工業大学 学術国際情報センター , ** 東京工業大学 理工学研究科

はじめに

1

フェーズフィールド・モデル

2

(1) (2)

溶融金属の冷却過程において形成される凝固組織の形態によって材料の機械的特性が決定することは良く知られている。

このようなミクロな組織の形態形成を解明するために、近年強力な組織形成シミュレーション法として注目されている

フェーズフィールド・モデルを用いて界面の動的な変化と温度変化を解き、凝固過程を計算する。

これまで、フェーズフィールド・モデルは計算負荷が大きいため 3 次元計算が殆ど行われてこなかったが、

TSUBAME 1.2 のGPU を使うことで非常に高速に計算を行うことができ、60 GPUで 10TFlopsという実行性能が得られた。

(3)

に使い廻している。  温度Tnに関する計算でも同じようにシェアードメモリを使い計算 を行う。ただし、式(2)の右辺にφnの時間微分∂φ/∂t|n i , j , kが表れ るため、φn i , j ,k→φn+1i , j ,kの時間発展とTni , j ,k→ Tn+1i , j ,kの時間発展のカー ネル関数をフューズさせ、スレッド内で∂φ/∂t|n i , j , kを保持すること により、グローバルメモリへのアクセスを減らしている。 3-2 単一 GPU計算の実行性能 GPU計算の計算結果の検証と実効性の比較のためにCPUのコード も作成している。CPUコードを用いて 1 格子点あたりの浮動小数点 演算数をPAPI (Performance API)[5]を用いハードウェア・カウンター

で測定する。GPUでは整数演算もSPが処理を行うため、CPUコード で数えた浮動小数点演算数を基に経過時間を測定して実行性能を 評価する。Tesla S1070 の1GPUからアクセスできるメモリサイズが 4 GByteであるため、計算できる最大の問題サイズが格子数 640 × 640×640程度までに制限される。  1 GPUによる計算において格子点数を変えながら、実行性能を測 定すると、64 × 64 × 64 格子で 116.8 GFLOPS、 128 × 128 × 128 格 御パラメータ、他定数はb=tanh-1( 1-2λ)、W =σb /δ、M=bT mµ /3 δL である。  一方、凝固過程に最も関係する温度Tについて、界面からの潜熱の 発生を考慮した熱伝導方程式(4)を用いる。 本 研 究では東 京 工 業 大 学 学 術 国 際 情 報センタースーパーコン ピュータTSUBAME 1.2 を利 用する。各ノードはSun Fire X4600 (AMD Opteron 2.4 GHz 16 コア, 32 GByte)であり、ノード間は2本

の10 Gbps のSDR Infinibandで接続されている。GPU計算のために 使用するノードには、NVIDIA Tesla S1070 (動作周波数:1.44GHz。 VRAM 4GByte、最大1036GFLOPS、メモリバンド幅102GByte/s)の うち2機のGPUがPCI-Express Gen1.0×8で接続されているが、本研 究では1ノードにおいて1機のGPUのみを用いる。一方、各ノードの Opteron CPUは、1コア当たり4.8 GFLOPS、メモリバンド幅6.4 GByte/ sec (DDR-400)である。実行環境はCUDA 2.2対応 Runtime、NVIDIA Kernel Module 185.18.14、OSはSUSE Enterprise Linux 10である。

3-1 高速化技術 CUDAを用いてGPUのプログラミングを行った。(1)式と(4)式を 2次精度有限差分法で離散化し、1次精度の時間積分(オイラー法) を行っている。従属変数である秩序変数φの時間発展に必要なnス テップとn+1ステップの配列をビデオメモリ(CUDAではグローバ ルメモリと呼ばれる)上に確保する。時間発展の過程で、必要な時 だけデータをCPU側に転送するようにし、PCI-Express Bus を介した データ通信は可能な限り頻度を減らしている。  1 つのGPUが担当する計算領域の格子点数をnx×ny×nz とする。 それらをx 方向にL 分割、y 方向にM 分割、z 方向にN 分割すると、分 割された小領域の格子点数はMX×MY×MZとなる。ただし、MX=nx/L、 MY=ny/M 、MZ=nz/N である。各々の小領域に対してCUDAのブ ロック内のスレッドを(MX 、MY 、1)として割り当てる。各スレッド では、z 方向にMZ 個の格子点をループで計算する。高い実行性能を 得るためには、問題サイズに合わせ適切な分割数を選ぶ必要があり、 MX=64 、MY=4 が最適であった。  φに対する式(1)の離散化式は隣接の18個の格子点にアクセスす る。グローバルメモリへのアクセス回数を低減させるために、シェアー ドメモリをSoftware Managed Cache として用いる。さらにシェアー ドメモリの使用量を節約するためにブロック内に(MX+2)×(MY+2) の大きさの3つの配列をシェアードメモリ上に確保し、サイクリック

GPUコンピューティング

3

図 1 純金属の樹枝状凝固成長の過程 (4)

GPUによる樹枝状凝固成長のフェーズフィールド計算

(4)

4.3 マルチGPU計算の実行性能 4 つの解像度での計算(512 × 512 × 512 格子、 960 × 960 × 960 格 子、 1920 × 1920 × 1920 格子、2400 × 2400 × 2400)の各々につい てGPU間通信とGPU計算をオーバーラップさせる計算と、非オーバー ラップ計算に対して、GPU数を変えて得られた実行性能の強スケー ラビリティを図2に示す。  いずれの解像度においてもオーバーラップ計算は非オーバーラッ プ計算に対して性能が大幅に改善されていることが分かる。オーバー ラップ計算では512×512×512格子について1 ~ 8 GPUまでの範囲、 960 × 960 × 960 格子について 4 ~ 24 GPUまで範囲、1920 × 1920 × 1920 格子において 30 ~ 48 GPUまでの範囲で理想的な強スケー リングを示していることが分かる。また、問題サイズを大きくする ことによる弱スケーラビリティについては、試した計算の範囲内で 理想的な性能が示されている。  オーバーラップ計算の特徴として、強スケーラビリティはGPU数 が少ないときに理想的な直線に近づくが、GPU数が増えて計算時間 より通信時間の方が長くなり、もはや通信を隠ぺいできなくなると 急激に性能が頭打ちになる。  本稿で特筆するべき点は、格子数2400×2400×2400の計算に対 して、60 GPUを用いたオーバーラップ計算の実行性能が10 TFLOPS に達したことである。世界トップクラスのスパコンで実現されるア プリケーションの性能である。  TSUBAME 1.2 のCPU計算との実行性能の比較を行うために、全 く同じ 960 × 960 × 960 格子の計算をCPUとGPUの両者で行った。 GPU計算の最大性能は、オーバーラップ計算を行った場合に24 GPU で 3.7 TFLOPSである。CPUとGPUの実行性能の比較を図 3 に示す。 検証可能な範囲のCPU 計算は 128コアまでほぼ理想的な強スケー リングを示しているが、GPUの最高性能である3.7 TFLOPSに達する には理想的な強スケーリングを仮定しても 4000CPUコア強が必要 みと2回の書き込みの計28 wordのメモリアクセスがある。本研究で は単精度計算を行っていて、全ての格子点で同じ計算を行うので、3.33 FLOP/Byteの演算密度がある。これに対し、シェアードメモリを用い ることで、袖領域を含まない格子点においては読み込みを2回に減らす ことができ、メモリアクセスを4回に低減することができる。その結果、 演算密度を23.31 FLOP/Byteにまで高めることができる。この値は一 般的な流体計算などと比較すると非常に大きく、計算インテンシブ になっているため、GPUの高い演算性能を引き出すことができた。 4-1 複数ノードに搭載されたGPU計算 複数のGPUを用いて計算する目的は次の2つである。①単一 GPUの カードに搭載されているメモリに入りきらないような大規模計算を 行う。②決められた格子点数の問題に対して1 GPUよりさらに高速 化を図る。複数個のGPUを用いるには、GPU単位での並列化が必要 となる。3 章で述べたようにGPU計算では、単一 GPU内でもスレッ ドのブロックがあるので並列化の階層がさらに 1 つ増えた多階層の 並列化になる。GPU間の並列計算にはMPIライブラリの通信を行い、 GPU数とMPIのプロセス数は等しくなる。領域間のデータ転送量を 減らすためには、計算全体の格子に対して3次元的な領域分割(サイ の目型の分割)をする方が有利であるが、ここではz軸方向に沿って1 次元的な領域分割(短冊型分割)を行い、計算とのバランスを明らか にすることを優先する。 4-2 通信と計算のオーバーラップ 複数ノードのCPUを用いた計算では、各プロセスに割り当てられた領 域内のすべての格子の計算(時間発展)を行ってから、袖領域のデー タ通信を行うことが多い。本方法を「非オーバーラップ計算(Non-Overlapping)」と呼ぶことにする。一方、「計算とデータ通信のオーバー ラップ」により、通信時間を隠ぺいすることができる。オーバーラッ プ手法を導入したGPU計算では、まず袖領域のデータとして交換さ れる格子を先に計算する。計算後、非同期に2つのstreamを生成し同 時実行する。stream 0では袖領域を除いた中心部分の格子点に対す る計算を行い、stream 1は袖領域の通信を行う。

マルチGPUコンピューティング

4

図 2 マルチGPUによるオーバーラップ/   非オーバーラップ計算の実行性能

(5)

参考文献

[1] Tomohiro Takaki, Toshimichi Fukuoka and Yoshihiro Tomita, Phase-field simulation during directional solidification of a binary alloy using adaptive finite element method, J. Crystal Growth 283 (2005) pp.263-278.

[2] 遠藤 敏夫、 松岡 聡、 橋爪 信明、 長坂 真路、 ヘテロ型スーパーコン ピュータTSUBAMEのLinpackによる性能評価、 情報処理学会論 文誌コンピューティングシステム、 48(SIG 8(ACS 18)): 62-70、 2007.

[3] NVIDIA Corporation, NVIDIA CUDA Compute Unified Device Architecture Programming Guide Version 2.0, NVIDIA Corporation, California, 2008.

[4] Ryo Kobayashi, “Modeling and numerical simulations of dendritic crystal growth”, Physica D, 63, 3-4, pp.410-423, 1993. [5] PAPI, http://icl.cs.utk.edu/papi/

となる。同じ計算を同じ時間で得ようとすると、CPU計算ではGPU 数の150倍のコア数が必要になることが分かる。

純金属の樹枝状凝固成長に対して、フェーズフィールド・モデル に基づいたAllen-Cahn方程式と熱伝導方程式を連立させた計算を NVIDIA のTesla GPUを搭載したTSUBAME 1.2 を用いて実行した。 CUDAによりプログラミングを行い、単一 GPUで 171 GFLOPS(単 精度計算)を達成した。さらにマルチGPUに対して領域分割に基づ く並列化を行い、強スケーラビリティと弱スケーラビリティを示し た。CPU計算に対して 100 倍以上の高速化を行うことができ、これ は消費電力を大きく下げることでもある。60GPUを用いることで10 TFLOPSの実行性能を達成することができ、GPUが次世代スパコン の中心的な役割を担う可能性が高いことを示すことができた。 謝辞 本研究の一部は日本学術振興会(JSPS) グローバルCOE プログラ ム「計算世界観の深化と展開」(Comp View)、科学研究費補助金・ 基盤研究(B) 課題番号19360043「多モーメント手法による多目的 CFD コアの開発」および科学技術振興機構(JST) CREST「次世代 テクノロジーのモデル化・最適化による低消費電力ハイパフォー マンスコンピューティング」(ULP-HPC) から支援を受けている。 本研究を遂行するにあたり、スーパーコンピュータTSUBAME Grid Cluster での大規模並列計算キューの利用に対して東京工業大学学 術国際情報センターよりご協力を頂いた。記して謝意を表す。

おわりに

5

図 3 TSUBAME 1.2 において、960 × 960 × 960   格子のCPU計算とGPU計算の比較

GPUによる樹枝状凝固成長のフェーズフィールド計算

参照

関連したドキュメント

そればかりか,チューリング機械の能力を超える現実的な計算の仕組は,今日に至るま

(注 3):必修上位 17 単位の成績上位から数えて 17 単位目が 2 単位の授業科目だった場合は,1 単位と

これは基礎論的研究に端を発しつつ、計算機科学寄りの論理学の中で発展してきたもので ある。広義の構成主義者は、哲学思想や基礎論的な立場に縛られず、それどころかいわゆ

テューリングは、数学者が紙と鉛筆を用いて計算を行う過程を極限まで抽象化することに よりテューリング機械の定義に到達した。

※ 硬化時 間につ いては 使用材 料によ って異 なるの で使用 材料の 特性を 十分熟 知する こと

このように、このWの姿を捉えることを通して、「子どもが生き、自ら願いを形成し実現しよう

トリガーを 1%とする、デジタル・オプションの価格設定を算出している。具体的には、クー ポン 1.00%の固定利付債の価格 94 円 83.5 銭に合わせて、パー発行になるように、オプション

キャンパスの軸線とな るよう設計した。時計台 は永きにわたり図書館 として使 用され、学 生 の勉学の場となってい たが、9 7 年の新 大