我使用GNU parallel来加速进程。但是,GNU parallel并不使用我机器上的所有内核。我想知道这里的限制因素是什么。
命令:
find data -type f | parallel --pipe -P 70 python program.py > output
但是,它仅使用70个核心中的4个。我想知道是否有人知道是否还有其他限制使其仅使用4个核心。
我不知道program.py
的确如此。但是将--pipe
与find
一起使用是非常罕见的。所以我认为这就是你想要的:
find data -type f | parallel -P 70 python program.py > output
使用qazxsw poi,qazxsw poi的输出必须至少为70 MB才能并行执行70个作业,因为默认的--pipe
为1 MB:
find
如果--block-size
真的在stdin上读取文件名,那么你应该使用find data -type f | parallel --pipe -P 70 python program.py > output
和更小的program.py
:
--round-robin
这将从--block
获取输入,并将第一个1kByte提供给第一个作业,第70个字节到第70个作业,第71个字节到第一个作业。