並列計算

スレッド並列とプロセス並列

  • スレッド並列 = メモリ共有並列 = 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)は変わらない. 全ヒストリ数も変わらない