異なるマシンでモンテカルロ シミュレーションを並行して実行する必要があります。コードは C++ で書かれていますが、プログラムは多くのこと、特にランダム シードを設定する Python スクリプトでセットアップされ、起動されます。関数 setseed は 4 バイトの符号なし整数を取得します
シンプルな
import time
setseed(int(time.time()))
ジョブをクラスターのキューに送信したため、ジョブは数分間保留されたままになり、その後開始されるため、あまり良くありませんが、開始時刻は予測できません。2 つのジョブが同時に開始される可能性があります (秒)。切り替える:
setseet(int(time.time()*100))
しかし、私は幸せではありません。最善の解決策は何ですか?たぶん、時間、マシン ID、プロセス ID からの情報を組み合わせることができます。それとも、/dev/random (Linux マシン) から読み取るのが最善の解決策でしょうか?
/dev/random から 4 バイトを読み取るには?
f = open("/dev/random","rb")
f.read(4)
文字列を教えてください。整数が必要です!