私は、入力引数に基づいてファイルのいくつかのリストで動作する高いランタイム(1つの仮想コアマシンで1つのスクリプトをテストした場合、4日間)を持つPythonスクリプトを持っています。我々が提供します。単一のマルチコアマシン上の複数のPythonスクリプト
私がテストしたい引数のリストは非常に長く、インフラストラクチャのコストが高いため、それぞれを順番に実行することはできません。
私は自分の12コアマシンで異なる引数でスクリプトを独立して実行しようとしました。
nohup python script.py 1 &
nohup python script.py 2 &
と..各プロセスは、独立して各コアに割り当てされ、その上にスクリプトは、任意の作業であろうファイルに重なりがないように2コアは、スタンバイになることを考えて、このような8回競合状態やデッドロックは発生しません。これは、すべてのスクリプトに渡す引数が異なるため、GILに問題はありません。
私が観察したことは、個々のpythonスクリプトが同じペースで実行されていないか、前述のタイムラインに従って実行されていないことです。それもちょうど最後の1〜2日で。 プロセスの残りの部分は、生成されたログファイルから遅れています。
誰かが私のpythonのこの動作を理解する助けてもいいですか?
" すべてを10種類のプロセスは4日以内に終了する必要があります。あなたはそれらを別々に走らせましたか?彼らは処理速度を制限する共通のリソースに依存していますか? –
はい、私は彼らが依存しているファイルのリストを知っていて、それらのすべてが区別されています。それらの間に共通のファイル/リソースはありません。 – lorenzofeliz
プロセッサは、あまり書かれていないプログラム、または計算量が多い(気象または海洋モデル)場合にのみ、ボトルネックになります。マルチコアマシン上で複数のプロセスを起動しても速度が上がらない場合は、処理がIOまたはメモリにバインドされていないかどうか疑問に思うはずです。 –