メニーコアと格闘ブログ:CUDAで実装熱伝導解析(その0)

出典: トータル・ディスクロージャ・サイト(事実をありのままに)

これまで述べてきた範囲内の知識で、CUDA実装をしてみます。

まず、課題についてですが、弊社のセミナー教材にも流用させてもらっている課題、“2次元熱伝導解析プログラム”を“何とか自力で”CUDA実装してみようと思います。

参考:pcクラスタ超入門

http://mikilab.doshisha.ac.jp/dia/smpp/00_cluster/download.html

http://mikilab.doshisha.ac.jp/dia/smpp/00_cluster/doc/chapter05.pdf

熱伝導方程式と、その差分式は以下のように表わすことができます。

ファイル:CUDAプログラム 熱伝導解析その1.jpg


メディア:CUDAプログラム 熱伝導解析その1.txt


領域境界(計算領域の端っこや、角)以外の、一般的な格子点を計算するループは、


   for(i=1 ; i<NW-1 ; i++){
       for(j=1 ; j<NH-1 ; j++){
           Tw = T[i-1][j];
           Te = T[i+1][j];
           Ts = T[i][j-1];
           Tn = T[i][j+1];
           T_new[i][j] = gamma*(Tw + Te + Ts + Tn - 4.0*T[i][j]) + T[i][j];
       }
   }

と、表わされます。

この例題の境界は“断熱条件”というものを採用していることから、外部の熱の影響を考えません。そこで、領域境界の温度は一つ内側の温度をそのまま使っています。


[実行時間]

1CPU 1COREを使う普通のプログラムを実行した際の計算時間です。


計算時間 1m42.295s (=102.295s)

*格子数                 256×256
*ステップ数(ループ数) 100000ステップ
*データ書き出し         1000ステップに1度

*CPU                    Intel(R) Xeon(R) E5540  @ 2.53GHz
*MEM                    24738040 kB(≒24GB)


ナン 2009年8月24日 (月) 18:40 (JST)


この記事へのコメントをお寄せください

  • サイトへの書き込みに差し支えございましたら トータルディスクロージャーサイトサポート係へメールをお送りください
  • トータル・ディスクロージャ・サイトに投稿された文章と画像は、すべてその著作権がHPCシステムズ株式会社に帰属し、HPCシステムズ株式会社が著作権を所有することに同意してください。
  • あなたの文章が他人によって自由に編集、配布されることを望まない場合は、投稿を控えてください。
  • コメントを書き込む場合は名前にひらがなを織り交ぜてください。
  • あなたの投稿する文章と画像はあなた自身によって書かれたものであるか、パブリック・ドメインかそれに類する自由なリソースからの複製であることを約束してください。あなたが著作権を保持していない作品を許諾なしに投稿してはいけません!

<comments hideform="false" />


Comments

ノート:メニーコアと格闘ブログ:CUDAで実装熱伝導解析(その0)

個人用ツール