我需要并行运行20个实验。对于每一个,我正在加载一个新的unix screen
,然后在其中加载anaconda环境,然后运行带有该实验参数的python脚本。
工作流程如下:
> screen -S exp01
> source activate myenv
(myenv) > python process_experiment 01
> screen -S exp02
> source activate myenv
(myenv) > python process_experiment 02
有没有一种方法可以自动编写脚本?
答案 0 :(得分:1)
根据this question,您可以像这样向screen
会话发送击键:
screen -dmS new_screen sh screen -S new_screen -X stuff "cd /dir " screen -S new_screen -X stuff "java -version "
您可以编写一个小的Shell脚本(将其称为run-exp.sh
)来设置实验的运行状态:
#!/bin/sh
source activate myenv
python process_experiment $1
然后使用循环来启动运行该脚本的屏幕会话:
#!/bin/sh
for i in $(seq -w 1 20); do
screen -dmS exp$i
screen -S exp$i -X stuff "./run-exp.sh $i
"
# (The new line is necessary, not a mistake.)
done