目次

9. Python版

9.1 開発環境

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

9.1.1 開発環境

以下の開発環境を使用します。

  1. Python [17] : Python本体です。
  2. NumPy [18] : Python標準の数値計算ライブラリーです。高度にチューニングされています。
  3. Matplotlib [19] : Python標準の図形出力ライブラリーです。高機能な図形出力を簡単に行うことができます。
  4. Numba [20] : Python用のJIT(Just in Time)コンパイラーです。プログラムを高速化します。
  5. Anaconda [21] : Python用のパッケージ管理ツールです。
  6. Spyder [22] : Python用の統合開発環境です。プログラムの編集、実行、デバッグを効率よく行うことができます。
  7. IPython [23]:SpyderでのPython実行環境です。REPL (Read-Eval-Print Loop) 機能も持っています。
  8. Numba for CUDA GPUs [24]:Numbaを用いてGPUで高速に計算するためのライブラリーです。
  9. MPI for Python (mpi4py) [25]:MPIを用いて分散メモリー環境で並列計算するためのライブラリーです。

Anacondaをインストールすると9.以外がすべてインストールされます。 バージョンの不整合を防ぐために、 個別にインストールするよりAnacondaを通して一括してインストールすることをお勧めします。
9.をインストールするには、 スタートメニューから "Anaconda Prompt" を起動して以下を実行してください。

> conda install mpi4py

9.1.2 高速化手法

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

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

Numba for CUDA GPUs
Numba for CUDA GPUs を使用し、GPUを用いて高速に計算することができます。

MPI for Python (mpi4py)
MPI for Python を用いてCPUとGPUの分散メモリー環境に対応しています。


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