我正在尝试使用python进行作业控制。使用bash时,bash脚本如下所示:
i=0
for mu_Li in `seq -17 0.1 -14`
do mkdir mu_$mu_Li
cp mc.x POSCAR BCLUST CLUST CSPECS configuration factor_group FBCLUST FCLUST point_group PRIM mc_input configuration.corr eci.in reference relax.log SCEL eci.out mu_$mu_Li
#cp ../POSCAR mu_$mu_Li\_$mu_Ni/POSCAR
cd mu_$mu_Li
sed -i "s/^\(Na \)[0-9-][.0-9-]*\(.*mu init\)/\1${mu_Li}\2/" mc_input
sed -i "s/^\(Na \)[0-9-][.0-9-]*\(.*mu min\)/\1${mu_Li}\2/" mc_input
sed -i "s/^\(Na \)[0-9-][.0-9-]*\(.*mu max\)/\1${mu_Li}\2/" mc_input
./mc.x 2>&1 > /dev/null &
cd ..
i=$((i+1))
if (( $i % 16 == 0 ))
then
wait
rm mu_*/MCLUST[0-9] mu_*/configuration* mu_*/FBCLUST mu_*/*CLUST mu_*/mc.x
fi
done
wait
关键是我想使用所有可用的核心来运行多个./mc.x 2>&1 > /dev/null &
,并在后台使用wait
。
我是否应该在python中将所有内容都变成一个字符串:
下面是如何使用
subprocess
生成多个后台进程,然后等待它们。在本例中,每个进程只是休眠。在有关详细信息,请参阅documentation。在
相关问题 更多 >
编程相关推荐