next up previous contents index
Next: その他の注意 Up: NEB (Nudged elastic band)法 Previous: NEB計算におけるSCFの確認   Contents   Index

並列計算

NEB計算の並列化の設定はプロセスとスレッドの数に応じて自動的に行われます。 ただしMPI並列化で適正な計算負荷を実現するためには、適切なプロセス数を設定する必要があります。 ここで適切なMPIプロセス数とは、「MD.NEB.Number.Images」で与えられるイメージ数で割り切れる MPIプロセス数のことです。この場合には計算負荷が最適化されます。 また原子数を上回るMPI並列プロセス数を設定した場合においても、計算負荷を考慮し、適切な並列計算が 実行されます。他の機能の並列化と同様に、OpenMP/MPIによるハイブリッド並列化もサポートしています。 ほとんどの場合に、デフォルトの並列化の設定で問題なく動作しますが、大規模系の計算において少数のMPIプロセスを 用いるとメモリー不足が重大な問題となり得ます。デフォルトのMPI並列化では、イメージが優先的に並列化されます。 MPIプロセス数がイメージ数を上回ると、次にそれぞれの各イメージ内の計算が並列化されます。 その際に、メモリーもまた同様に並列化されます。そのため、デフォルトの並列化設定では、多数のMPIプロセスが 利用できなければメモリー不足のために異常終了する可能性があります。 この状況を避けるために次のキーワードが利用できます。

    MD.NEB.Parallel.Number    3

この例では、イメージを3つのグループに分けてそれぞれで並列計算を行います。 そのため、MPIプロセスを3つのグループに分類し、各MPIグループを各イメージのグループの計算に割り当てます。 並列化構造は2階層となっており、上の階層がイメージのグループの並列化、下の階層はそれぞれのイメージ内の計算の並列化です。 全てのイメージの計算を完了するために、グループ化した計算を最低[(イメージ数)/(MD.NEB.Parallel.Number)]回 繰り返します。 「MD.NEB.Parallel.Number=1」と設定した場合には、イメージの並列化は行わずに、イメージ内の計算に全ての MPIプロセスが割り当てられることになり、この場合にメモリ使用量が最小になります。 したがって、この並列化法は大規模系のNEB計算に有効でしょう。 このキーワードが入力ファイルで指定されない場合には、デフォルトの並列化法が適用されます。



t-ozaki 2013-12-23