【发布时间】:2021-12-18 07:00:00
【问题描述】:
我正在尝试通过使用文件的行作为 python 脚本的参数来并行执行 python 脚本。该文件名为experiments.txt,可能如下所示:
--x_timesteps 3 --y_timesteps 3 --exp_path ./logs
--x_timesteps 4 --y_timesteps 3 --exp_path ./logs
--x_timesteps 5 --y_timesteps 3 --exp_path ./logs
--x_timesteps 6 --y_timesteps 3 --exp_path ./logs
我想通过使用 xargs 来加快处理速度;但是,我不知道如何使用文件输入来做到这一点。 如何通过从文件中逐行读取并通过管道传输到 xargs 来并行化 python 脚本?
我知道我可以通过一个简单的 for 循环来解决这个问题;但是,我需要知道如何处理文件输入。
在相应目录的命令行中输入此内容,
for x in {3..6}; \
do printf '%s\0' "--x_timesteps=${x}" "--y_timesteps=3" "--exp_path=./logs"; \
done | xargs -0 -n 3 -P 8 python script.py
for-loop风格的并行化源于"Using xargs for parallel Python scripts"的答案
【问题讨论】:
-
您是否尝试过类似
< experiments.txt xargs -n 2 -P 8 python script.py将文件输入到xargs 中? -
我试过
while read line; do printf '%s\0' "$line"; done < experiments.txt | xargs -0 -n 3 -P 8 python script.py scale_rank3不成功。
标签: python bash parallel-processing