目次

5. OpenFDTDの計算時間

5.1 OpenFDTDのビルド法

OpenFDTDをビルドするには、 OpenFDTDのページのソースコード一式をアップロードするファイルに含めてアップロードしてください。
EC2にログインした後、OpenFDTDのページに従ってコマンドラインでOpenFDTDをビルドしてください。 ビルドするスクリプトを作成しておくと便利です。
Python版はスクリプト言語なのでビルド作業は不要です。
なお、GPUを使用するには、GPUとCUDAを持っているインスタンスを起動することが必要です。

5.2 OpenFDTDの計算時間

OpenFDTDの計算時間を示します。
計算データはbenchmark200.ofdのno-vectorモードです。
使用言語はCとPythonであり、 CではOpenMPで並列化し、PythonではNumbaで並列化しています。
計算時間はofd.logのtotal(全体の計算時間)です。
なお、AWSでは出力ファイルが既存のときはファイル出力時に余分な時間がかかるので、 ベンチマークを正しく行うには、 プログラム実行前に出力ファイル(ofd.outまたはofd.npz)を削除する必要があります。

使用したインスタンスは以下の2通りです。

図1、図2に計算時間を示します。横軸がスレッド数です。
Cが約2倍速いですが、スレッド数が増えると差が小さくなります。

図1 OpenFDTDの計算時間 (c7aインスタンス)

図2 OpenFDTDの計算時間 (c7gdインスタンス)