私の質問は同時に複数のスクリプトを実行できますか? 32個のCPUを持つクラスタにアクセスできますが、同時に900個のスクリプトがあります。今私が望むのは、各スクリプトをキューに入れ、1つのスクリプトが完了したら別のスクリプトを起動することです。私はすべて(またはほぼすべての)CPUを並列に実行したいので、単純なループを実行したくありません。
ベストアンサー1
似たようなものを探しているようです。GNUパラレルユーティリティ。以下はその説明から抜粋したものです。
各入力行に対して、GNU Parallel はその行を引数として使用してコマンドを実行します。コマンドが与えられない場合、入力された行が実行されます。複数の行が並列に実行されます。
あなたの場合、次のように同時スクリプトを32個に制限できます。
parallel -j32 ::: ./script1 ./script2 (...) ./script900
または、parallel
ファイルからスクリプト名を読み取るか、すべての実行が同じスクリプトのインスタンスである場合は、入力ファイルにパラメータを保存できます。可能なさまざまなバリエーションのドキュメントをお読みください。