やらなければならない一連の仕事があります。ジョブ間の依存関係はありません。これらのジョブをマシンに分散するのに役立つツールを探しています。唯一の制限は、各マシンが一度に 1 つのジョブのみを実行する必要があることです。ジョブのバランスが取れていないため、スループットを最大化しようとしています。私の現在のハッキングされたシェルスクリプトは、マシンごとのジョブキューを事前に構築しているため効率的ではなく、負荷の高いマシンのキューから待機中のマシンにジョブを移動できず、すでにすべてが完了しています。
以前の提案には、やり過ぎのように見える SLURM と、さらにやり過ぎな LoadLeveller が含まれていました。
GNU Parallel は、私が望んでいるものとほぼ同じように見えますが、リモート マシンは SSH を話せません。カスタム ジョブ ランチャーが使用されています (キューイング機能はありません)。私が欲しいのは、ジョブがディスパッチされる直前に、その場でマシンをシェルスクリプトに置き換えることができる Gnu Parallel です。
つまり、要約すると:
- ジョブのリスト + 受け入れ可能なマシンのリスト: スループットを最大化します。可能な限りシェルに近いことが好ましいです。
最悪の場合、bash のロックファイルと一緒に何かがハッキングされる可能性もありますが、もっと良い解決策がどこかにあるはずだと感じています。