16GB barrier on climate

climate workstation上で16 GBを超えるメモリー容量のnumpy data arrayを使うと,著しく実行速度が遅くなる.下の図は,配列をnp.arange(array_size)で作成するのにかかった時間である.左のパネルは16GBまでの配列を作成した場合,右のパネルはそれに加えて18GBの配列も作成した場合である.16GBまではほぼ線形的に配列の大きさに比例して時間かかるが,18GBになると16GBに対してメモリー量は1.13倍になるだけなのに,時間は5倍程度長くかかっている.

したがって,配列が占めるメモリー量が16GBを超えないようにすることが,計算を高速に実行する上では有効である.ひとつ簡単にできるのが,data arrayをfloat32で定義することだ.たとえば,

np.