Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

計算が終わらない #26

Closed
takeokato719 opened this issue Dec 1, 2020 · 7 comments
Closed

計算が終わらない #26

takeokato719 opened this issue Dec 1, 2020 · 7 comments

Comments

@takeokato719
Copy link

dlaを用いて、2次元ハイゼンベルク模型(サイズ40x40, T=0.2)を128並列で回したら、計算が終わらなくなりました。
症状としては、一回終わらないパターンにはいると、計算が決して終わりません。

途中、ループが閉じないで永遠と系をさまよっているということはありますでしょうか?

@k-yoshimi
Copy link
Contributor

@takeokato719
ご報告ありがとうございます。
今の症状だけだと解析できませんので、以下の情報を提供していただけるでしょうか?

使用しているDSQSSのバージョン
実行に使用した入力ファイルとその出力

@Takuto36
Copy link

Takuto36 commented Dec 1, 2020

プログラムを回した者です。

DSQSSのバージョンは2.0.3です。
添付したmake_jobscript.pyを実行しジョブを生成してスパコンに投げました。
(指定したパーティションのみ”パーティション名”に変えています。)
L=38の場合は8分程度で添付したアウトプットファイルが出力されたのですが
L=40の場合は3日と16時間回しても計算が終わらなかった為、途中でジョブを切りました。

実行に使用したファイルはインデントを含めたコードの貼り方が分からなかった為、
以下のグーグルドライブにあげさせていただきました。
よろしくお願いいたします。

https://drive.google.com/drive/folders/13NCWWvsxyJHwLBkvDfeYVmeWspw32RTB?usp=sharing

@Takuto36
Copy link

Takuto36 commented Dec 7, 2020

追加で1点補足です。
計算機による問題かを把握する為に
前回送らせていただいたプログラムをベースに
①クラスター計算機
②スーパーコンピューター
の2つで8並列にして計算プログラムを投げてみたところ
L=40では、①②のどちらでも計算はエラー無しで終了するのですが
(①は38秒、②は5分12秒で計算が終了。)
アウトプットファイルは出力されませんでした。
①②共にDSQSSのバージョンは2.0.3です。
お手数をおかけしますが、よろしくお願いいたします。

@takeokato719
Copy link
Author

今ohtakaで確認したところ、L=40では以下のようなエラーメッセージがでてますね。

>>> The program is being run with MPI mode.( N_PROC = 8 ) 


+++++++++ input data +++++++++
RUNTYPE = 0

NSET    = 10
NTHERM  = 10000
NMCS    = 1000
SEED    = 12132400
NVERMAX = 10000
NSEGMAX = 10000

BETA    = 5
NTAU    = 256
ALGFILE = algorithm.xml
LATFILE = lattice_L40.xml
WVFILE = 
DISPFILE = 
OUTFILE = res_seed0_M1_L40_T0.2_nset10_nthermal10000_ndecor1000_nmcs1000.dat
CFOUTFILE  = cf.dat
SFOUTFILE  = sf.dat
CKOUTFILE  = ck.dat
SIMULATIONTIME   = 0
+++++++++ input data +++++++++
Determining hyperparameter NCYC : 9
Start main calculation.
Pool> ERROR. Attempt to extract from an empty pool.
Pool> ERROR. Attempt to extract from an empty pool.
Pool> ERROR. Attempt to extract from an empty pool.
Pool> ERROR. Attempt to extract from an empty pool.
Pool> ERROR. Attempt to extract from an empty pool.
Pool> ERROR. Attempt to extract from an empty pool.
.....

@yomichi
Copy link
Contributor

yomichi commented Dec 24, 2020

対応遅れてすみません。
最後のログにあるエラーメッセージですが、 vertex などのオブジェクトとしてあらかじめ確保してあるものを使い切ってしまっているようです。
MPI 並列したときに計算が終わらないのは、これによっていくつかのプロセスが終了してしまっていて、最後にモンテカルロ平均のために merge するところですでに消えてしまった待ち人を待っているために思えます。

というわけで、
parameter の nvermaxnsegmax を増やしてみてください。

(ちょくちょく引っかかる人がいるので faq への追加というのも含めていい加減なにか考えます)

@k-yoshimi
Copy link
Contributor

@takeokato719 @Takuto36
これは上の回答で解決したのでしょうか?解決したようでしたら、closeをお願いします。

@takeokato719
Copy link
Author

解決していますので、closeします。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants