私はPythonマルチプロセッシングモジュールを使ってモンテカルロコードで単純な並列処理を実装しました。マルチプロセッシングから戻り値を得ることはできますか?
montecarlos = [MonteCarlo(f,fargs) for fargs in farglist]
jobs = [multiprocessing.Process(mc) for mc in montecarlos]
for job in jobs: job.start()
for job in jobs: job.join()
results = [mc.results for mc in montecarlos]
しかし、結果リストを見ると、モンテカルロイテレータが起動していないように見えます。私は彼らが持っていることを知っています、私はプロセスがモンテカルロのステップの間に情報を印刷することができるので。だから私は何かばかげたことをしている。 job.join()は、すべてが実行されるまで結果リストが構築されないようにするため、mc.resultsフィールドが更新されると考えていました。
私はあなたに私のモンテカルロルーチンの詳細を教えていないことを理解しています。それは問題ではないことを願っています。私が作っている間違いは、マルチプロセッシングの解釈です。あなたが提供できるあらゆる助けを前もって感謝します。
これは素晴らしい機能でした!どうもありがとう!何が起こっているかについてのこのような明確な説明にも感謝します。 – Rick