本プログラム
本ページではPython[1]を用いて科学技術計算系のシミュレータを高速化する技術について、
簡単なサンプルプログラムとともに説明します。
配列指向プログラミング
Pythonでは配列計算を単純なforで記述しただけでは大幅に遅くなります。
そこで配列指向プログラミングの考えが必要になります。
NumPy
Pythonの数値計算用の標準的なライブラリです。
NumPyは豊富な機能を持ち、
NumPyで記述したプログラムはCと同等の速度になり、
さらに自動的にマルチスレッド化されます。
Numba
NumPyで記述することが難しいアルゴリズムに対しては、
JIT(Just In Time)コンパイラー技術を使用するNumbaを使用することができます。
Numbaは並列化機能も持っています。
MPI for Python
並列計算の別の方法として MPI for Python (mpi4py) を用いることができます。
CのMPIと同様に記述することができます。
Numba CUDA
CのCUDAと同様に記述することにより、GPUを用いて高速に計算することができます。
CuPy
NumPyで記述されたCPU用のプログラムを簡単な移植作業でGPUに対応させることができます。
GPUを用いて高速に計算することができます。