【发布时间】:2019-12-31 22:54:01
【问题描述】:
我从安装了 OpenMPI 和 Sun Grid Engine 的 starcluster 设置了 5 个节点(每个节点有 64 个处理器)集群。我使用 gnu parallel 来利用所有 320 cpu,但 cpu 利用率非常低并且没有使用所有 cpus。任何建议将不胜感激。
#提交批次
qsub -pe orte 320 job_TFs.sh
#
我尝试过/使用过的更新代码:文件名:job_TFs.sh
#!/bin/sh
#$ -N test
#$ -S /bin/sh
#$ -cwd
#$ -j y
export WDIR=/home/xxx/software/xtx_v2.1
cd $WDIR;
parallel="parallel -S node001,node002,node003,node004,node005 --wd $WDIR --joblog process.log --resume"
$PARALLEL -a test.lst sh run_TFs.sh {}
job_TFs.sh 有:
i=$1
TMP_DIR=/home/xxx/software/xxx_v2.1/$i
mkdir -p $TMP_DIR
cd $TMP_DIR/
mk=$(echo "$i" | cut -d- -f1-2)
nk=$(echo "$i" | cut -d- -f3-6)
cp /home/xxx/TF_data/_tf/$mk.pdb $TMP_DIR/
cp /home/xxx/TF_data/_tf/$nk.pdb $TMP_DIR/
/home/xxx/software/xxxx_v2.1/xxxx -s1 $mk.pdb -s1cf $mk-cf.pdb -s1ss $mk-ss.pdb -s2 $nk.pdb -s2cf $nk-cf.pdb -s2ss $nk-ss.pdb >> /home/xxx/TF_data/xxxx_tf/scores/$i.out
$TMP_DIR/../
rm -rf $TMP_DIR
系统信息:
qconf -sp orte
pe_name orte
slots 321
user_lists NONE
xuser_lists NONE
start_proc_args /bin/true
stop_proc_args /bin/true
allocation_rule $fill_up
control_slaves TRUE
job_is_first_task FALSE
urgency_slots min
accounting_summary FALSE
【问题讨论】:
-
shell 变量
$PARALLEL被 GNU Parallel 使用。考虑改用$parallel,或者按预期使用$PARALLEL(即用于GNU Parallel的选项。所以你基本上只需要从字符串中删除命令parallel)。 -
他们在等待磁盘 I/O 吗?如果您可以运行更少并且这些将运行在 100%,那么这很好地表明您缺乏 I/O。
-
这行得通吗?并行 -j $JOBS_PER_NODE -S node001,node002,node003,node004,node005 --wd $WDIR --joblog process_glosa.log --resume -a test.lst sh run_TF.sh {}
-
@OleTange 请检查更新的。仍然没有使用 100% cpu。任何建议,谢谢
-
@OleTange 你能更具体一点吗?我将如何在并行命令中使用 n=1 作业? test -a test.lst 应该包含一项任务吗?然后尝试更多?顺便说一句,该列表有大约 3 亿个,每个任务完成不到一分钟。谢谢
标签: bash amazon-ec2 parallel-processing gnu-parallel sungridengine