GNU parallel:限制每个作业的cpu和RAM



我有一个代码,例如

cat sample_name.list | parallel -j 5 --max-args=1 --progress --keep-order --results logs --joblog logs.txt echo {1}

我找不到一个选项来帮助我限制分配给每个作业的cpu数量和RAM数量。

lscpu我有12个cpu和16Gb RAM;我想给每个工作2个cpu和1G RAM

帮忙吗?谢谢!

我会用-j 50%

这将在12核机器上并行运行6个作业。这样每个作业将有2个内核。

如果一个作业占用了超过1gb的空间,你不知道该怎么办。

也许--memsuspend 1G是你正在寻找什么?

当空闲内存低于2gb时,将开始挂起作业。如果只有1 GB的空闲空间,则只允许运行一个作业。当作业释放出更多内存时,挂起的作业将被恢复。

这里的想法是挂起的作业将被交换出来,从而释放内存。

如果您的程序在低内存使用情况下运行了很长时间,但在结束时需要大量内存,则它特别有用。在这里,您最好一次只希望一个作业处于完成状态。

最新更新