GAMESS 2008/04/11(R1)の並列化効率(とりあえず版)
cygwin/g77でコンパイルした最新版GAMESSの並列化効率を、比較的短時間の計算(3分程度)を使って計測してみました。File I/O等の寄与はある程度長い計算の方が除けるかもしれませんが、そういうところはとりあえずCPU Timeを指標に。現実的な速度はWall Clock Timeを指標に。
![]()
※いずれも閉殻。2回同じ計算を実施した平均値。
※MCSCFは怪しげなエラーのため現在検討中。
CCは相変わらず伸びないっすね。。。ちなみに1 coreで30分程度かかる計算で比較しても、最大で1.4倍@2 core。HF,DFTは優秀、MP2もまぁまぁ。
GAMESSは2並列で4プロセス発行するんで(しかもメイン以外の2プロセスもCPU使用率を食う…2並列で平均2.5 coreぐらいは使っているのでは)、その影響も結構大きそう?CCSDで2 coreのときにピークなのはその辺もあるかも。core数を増やせばいいってもんでもないのが面白いところ。ノード数が増えれば話は別ですが。
MCSCFの怪しげなエラーとは、例えばこんなところ。2 core以上の計算だと、なぜかこんな感じに↓
--------------------------------------------------
AMES LABORATORY DETERMINANTAL FULL CI
PROGRAM WRITTEN BY JOE IVANIC AND KLAUS RUEDENBERG
--------------------------------------------------
THE NUMBER OF DETERMINANTS HAVING SPACE SYMMETRY A
IN POINT GROUP C1 WITH SZ= 0.0 IS 400
WHICH INCLUDES 175 CSFS WITH S= 0.0
WHICH INCLUDES 189 CSFS WITH S= 1.0
WHICH INCLUDES 35 CSFS WITH S= 2.0
WHICH INCLUDES 1 CSFS WITH S= 3.0
THE DETERMINANT FULL CI REQUIRES 148137 WORDS
INITIAL CI VECTORS READ FROM DISK, NSTATE= 1
INITIAL FULL CI ITERATION TIME: 0.0
ITERATION ENERGY GRADIENT
0 -224.2437411993 0.00000000 ←???
CONVERGED STATE 1 ENERGY= -224.2437411993 IN 0 ITERS
ALL STATES CONVERGED.
CI EIGENVECTORS WILL BE LABELED IN GROUP=C1
PRINTING CI COEFFICIENTS LARGER THAN 0.050000
STATE 1 ENERGY= -224.2437411993 S= 1.30 SZ= 0.00 SPACE SYM=A
ALPHA | BETA | COEFFICIENT
--------|--------|------------
..... DONE WITH DETERMINANT CI COMPUTATION .....
ON NODE 0 STEP CPU TIME= 0.00 TOTAL CPU TIME= 7.5 ( 0.1 MIN)
同じ入力を使っても、1 coreの計算(つまりMEMDDIなし)だとこんな感じ↓で正常終了に至る。
--------------------------------------------------
AMES LABORATORY DETERMINANTAL FULL CI
PROGRAM WRITTEN BY JOE IVANIC AND KLAUS RUEDENBERG
--------------------------------------------------
THE NUMBER OF DETERMINANTS HAVING SPACE SYMMETRY A
IN POINT GROUP C1 WITH SZ= 0.0 IS 400
WHICH INCLUDES 175 CSFS WITH S= 0.0
WHICH INCLUDES 189 CSFS WITH S= 1.0
WHICH INCLUDES 35 CSFS WITH S= 2.0
WHICH INCLUDES 1 CSFS WITH S= 3.0
THE DETERMINANT FULL CI REQUIRES 177837 WORDS
INITIAL CI VECTORS READ FROM DISK, NSTATE= 1
INITIAL FULL CI ITERATION TIME: 0.0
ITERATION ENERGY GRADIENT
0 -230.7249876870 0.10262436
1 -230.7338189446 0.04201266
2 -230.7359344336 0.00991418
3 -230.7360345648 0.00081996
4 -230.7360351996 0.00016938
5 -230.7360352446 0.00005406
6 -230.7360352483 0.00001119
7 -230.7360352485 0.00000130
8 -230.7360352485 0.00000024
CONVERGED STATE 1 ENERGY= -230.7360352485 IN 8 ITERS
ALL STATES CONVERGED.
CI EIGENVECTORS WILL BE LABELED IN GROUP=C1
PRINTING CI COEFFICIENTS LARGER THAN 0.050000
STATE 1 ENERGY= -230.7360352485 S= 0.00 SZ= 0.00 SPACE SYM=A
ALPHA | BETA | COEFFICIENT
--------|--------|------------
111000 | 111000 | 0.9720686
101100 | 101100 | -0.1040727
110010 | 110010 | -0.1040573
110100 | 110100 | -0.0712754
101010 | 101010 | -0.0712717
111000 | 100110 | 0.0711535
100110 | 111000 | 0.0711535
110100 | 101010 | 0.0519747
101010 | 110100 | 0.0519747
..... DONE WITH DETERMINANT CI COMPUTATION .....
STEP CPU TIME = 0.08 TOTAL CPU TIME = 10.7 ( 0.2 MIN)
1 core向け入力ファイル(mcscftest1.zip)
2 core 以上の入力ファイルは$SYSTEMがMWORDS=1 MEMDDI=6 PARALL=.T.になっているだけ。
これはバグなんでしょうか??
【自己解決】
入力ファイルと同名のスクラッチファイル(scratch内)が存在していたことに起因するようで、そこを空にしたら正常終了しました。
んが、FULLNRは並列計算で何でこんなに遅いんだ…4並列で、やっとMEMDDIなしの逐次計算と同じ時間とは…逐次計算でもMEMDDIを使うと激遅になるから、メモリ周りに原因がありそうだ。