我有一系列需要完成的工作;工作之間沒有依賴關係。我正在尋找一種能夠幫助我將這些工作分配給機器的工具。唯一的限制是每臺機器只能一次運行一項作業。我試圖最大化吞吐量,因爲這些工作不是很平衡。我目前黑客一起使用shell腳本的效率並不高,因爲我預先構建了每臺計算機的作業隊列,並且無法將作業從負載較重的計算機的隊列移動到正在等待的計算機,並且已經完成了所有工作。小規模負載均衡
以前的建議已經包括SLURM,這似乎是過度殺傷,甚至更多矯枉過正LoadLeveller。
GNU Parallel看起來像我想要的,但遠程機器不會說SSH;有一個自定義的作業啓動器(沒有排隊功能)。我想要的是Gnu Parallel,它可以在工作分派之前立即將機器替換爲shell腳本。
因此,簡言之:
- 機器可以接受的作業+目錄的列表:最大限度地提高吞吐量。儘可能接近殼體是首選。
最糟糕的情況可以用bash的lockfile破解一些東西,但我覺得好像更好的解決方案必須存在某處。
你有沒有考慮使用殼內置作業?類似while#jobs> = maxjobs sleep .1;命令& – technosaurus