目次

9. Python版

9.1 開発環境

Pythonで記述したOpenFDTDです。
ここではCで記述したプログラムを「標準版」と呼びます。
Pythonについては[3]も参考にしてください。

9.1.1 開発環境

以下の開発環境を使用します。[16]~[21]

  1. Python : Python本体です。
  2. NumPy : Python標準の数値計算ライブラリーです。高度にチューニングされています。
  3. Matplotlib : Python標準の図形出力ライブラリーです。高機能な図形出力を簡単に行うことができます。
  4. Numba : Python用のJIT(Just in Time)コンパイラーです。プログラムを高速化します。
  5. Numba CUDA :Numbaを用いてGPUで高速に計算するためのライブラリーです。
  6. MPI for Python (mpi4py):MPIを用いて分散メモリー環境で並列計算するためのライブラリーです。

9.1.2 高速化手法

高速化のために以下の手法を用いています。

Numba
FDTD法の主要部である反復計算をNumbaにより高速化します。 Cと同様のプログラムで実装することができます。

Numba CUDA
GPUを用いて高速に計算することができます。 CUDAと同様のプログラムで実装することができます。

MPI for Python (mpi4py)
分散メモリー環境で並列計算することができます。 CPUとGPUに対応しています。


図9-1-1 Python高速化プログラミングの流れ