並列計算¶
スレッド並列とプロセス並列¶
スレッド並列 = メモリ共有並列 = OpenMP
プロセス並列 = メモリ分散並列 = MPI
実行方法 ( スレッド並列 OpenMP )¶
入力ファイルにて、冒頭にて、以下を記載.
$OMP = N
注意点¶
使用できるのは、 OMP/MPIのどちらかひとつ (後に書いてある方.)
libomp5.so がない、などとなったら、インストールする (aptではいる.マニュアル参照.)
maxbch に記載のバッチ数まで計算がある.(maxcas内の計算を分けている)
実行方法 ( プロセス並列 MPI )¶
入力ファイルにて、冒頭にて、以下を記載.
$MPI = M
注意点¶
MPIの場合、 バッチ分散モードの統計誤差 となる.( istdev = 0, 1 )
私の環境では、ifortのライブラリがない場合は、importが必要.
maxbch / PE数 が割り切れない場合、 最も近い値に勝手に変更 (注意) される.
maxbch=10, PE=4 の場合、maxbch=8へ勝手に変更される.
maxbch / PE数 のバッチ数までPE数並列で計算される.(全バッチ数としては同じ.)
[ 1] というバッチがPE数分表示される.これがmaxbch/PE数 だけ繰り返されるので、結局全バッチ数はmaxbch. 並列した分だけ、名前の番号が減る、ということ(同じ世代).
一度に計算するヒストリ数(maxcas)は変わらない. 全ヒストリ数も変わらない .