6. Python版

6.1 開発環境

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

6.1.1 開発環境

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

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

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

> conda install mpi4py

6.1.2 高速化手法

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

Numba
SOR法で用いている差分法はNumPyの配列演算に不向きなのでNumbaにより高速化しています。 Numbaを用いるとCと同様のプログラムで実装することができます。

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

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