Closed mitsuaki1987 closed 2 years ago
sz関数(sz.c)の中で「this part can not be parallelized」と書いてある部分がボトルネックになる場合があり、並列化しました。 背景 ヘリウム原子の4fまでを基底としてとり、1体積分・2体積分を計算して厳密体格化する(full-CIに相当)という目的
30軌道×2スピンに2電子入れるということになるが、 szの計算のところでハッカーの愉しみ法を使ってもそこがボトルネックになることが分かった(具体的に言うと上記のコメントが書かれている箇所)。 そこをOpenMP化しました。
改良前 ファイル入力 1:27 ヒルベルト次元とリストの計算 8:54 対角化 2:47 合計 13:11
改良後 ファイル入力 1:26 ヒルベルト次元とリストの計算 0:42 対角化 2:44 合計 4:55
sz関数(sz.c)の中で「this part can not be parallelized」と書いてある部分がボトルネックになる場合があり、並列化しました。 背景 ヘリウム原子の4fまでを基底としてとり、1体積分・2体積分を計算して厳密体格化する(full-CIに相当)という目的
30軌道×2スピンに2電子入れるということになるが、 szの計算のところでハッカーの愉しみ法を使ってもそこがボトルネックになることが分かった(具体的に言うと上記のコメントが書かれている箇所)。 そこをOpenMP化しました。
改良前 ファイル入力 1:27 ヒルベルト次元とリストの計算 8:54 対角化 2:47 合計 13:11
改良後 ファイル入力 1:26 ヒルベルト次元とリストの計算 0:42 対角化 2:44
合計 4:55