在集群上为多个输入并行执行脚本
parallel execution of script on cluster for multiple inputs
我有一个脚本 pytonscript.py
,我想 运行 处理 500 个样本。我有 50 个 CPU 可用,并希望 运行 脚本并行使用每个样本 1 CPU,以便 50 个样本不断 运行 1 CPU每个。有什么想法可以在不使用不同输入输入 500 行的情况下进行设置吗?我知道如何为每个样本制作一个循环,但不知道如何并行制作 50 个样本 运行ning。我想 GNU 并行是一种方式?
在文件夹 samples
中输入样本:
样本1
样品2
样品2
...
样本500
pytonscript.py -i samples/sample1.sam.bz2 -o output_folder
GNU xargs
怎么样?
printf '%s[=10=]' samples/sample*.sam.bz |
xargs -0L1 -P 50 pytonscript.py -o output_dir -i
这会同时为每个文件启动一个新的 python 脚本实例,同时保持最多 50 个。
如果通配符 glob 扩展不够具体,您可以使用 bash 的 extglob:shopt -s exglob; # samples/sample+([0-9]).sam.bz
我有一个脚本 pytonscript.py
,我想 运行 处理 500 个样本。我有 50 个 CPU 可用,并希望 运行 脚本并行使用每个样本 1 CPU,以便 50 个样本不断 运行 1 CPU每个。有什么想法可以在不使用不同输入输入 500 行的情况下进行设置吗?我知道如何为每个样本制作一个循环,但不知道如何并行制作 50 个样本 运行ning。我想 GNU 并行是一种方式?
在文件夹 samples
中输入样本:
样本1 样品2 样品2 ... 样本500
pytonscript.py -i samples/sample1.sam.bz2 -o output_folder
GNU xargs
怎么样?
printf '%s[=10=]' samples/sample*.sam.bz |
xargs -0L1 -P 50 pytonscript.py -o output_dir -i
这会同时为每个文件启动一个新的 python 脚本实例,同时保持最多 50 个。
如果通配符 glob 扩展不够具体,您可以使用 bash 的 extglob:shopt -s exglob; # samples/sample+([0-9]).sam.bz