NEGF計算にはMPIを用いた並列化が実装されています。 MPI並列化に加えて、MKL(Math Kernel Library)を用いると、 グリーン関数を評価するときの行列乗算および逆行列計算をOpenMPにより並列化することもできます。 この場合、MPI/OpenMPによるハイブリッド並列化を実行可能で、さらに計算時間を短縮することができます。 並列計算の実行方法は以前に述べたものと全く同じです。
図 45 に、NEGF計算におけるOpenMP/MPIハイブリッド並列の速度向上比を示します。 これは0.5 eVの有限バイアス電圧下にある8-ジグザグ型グラフェンナノリボン(ZGNR)の密度行列の計算を行った場合の結果です。 密度行列計算には197個のエネルギー点(101個は平衡密度行列、96個は非平衡密度行列)を用いています。 k点サンプリングには点のみを用い、スピン分極計算を行いました。 エネルギー点、k点、スピンの三つのループに関して394個の組み合わせをMPIにより並列化しました。 1スレッドに相当するフラットMPI並列化の速度向上比は64プロセスまで順当に向上しています。 さらに、2および4スレッドに相当するハイブリッド並列化により速度向上比が大きく改善されていることが分かります。 64個のプロセスと4スレッドに相当する64個のクアッドコア・プロセッサを完全に用いた場合、速度向上比は約140であり、 NEGF法のスケーラビリティが良いことを実証しています。詳細については文献[73]を参照して下さい。 OpenMX Ver. 3.9では、MPI並列化におけるプロセス数が原子数を超えても効率的に並列化が実行されることにも留意して下さい。
|