Running Frealign as an Array

Forums

Hey everybody,

I am by no means a programmer, and I have limited experience working on a cluster, but I was wondering if anyone has tried to modify the submission scripts in mult_refine.com to submit the multiple refinement jobs as an array to free up nodes on the cluster.

I was thinking something along these lines might work (The lines I inserted are comments right now, also I run on a PBS cluster):

if ( $sym == "H" || $sym == "HP" ) then
echo ${bin_dir}/mult_hrefine_n.com $fst $lastn $start $nc 1 0 0 0 0 0 >> $SCRATCH/pbs_${fst}_${nc}.com
else
echo ${bin_dir}/mult_refine_n.com $fst $lastn $start $nc 1 0 0 0 0 0 >> $SCRATCH/pbs_${fst}_${nc}.com
endif
# if (`echo $nproc` != 0 && $nproc != "") then
# if ( $firstn = $first ) then
# cat $SCRATCH/pbs_${fst}_${nc}.com >> $SCRATCH/pbs_${nc}_a1.com # 'a' denotes the job is running as array
# else if ( $incr * $procnd - 1 >= $lastn ) then
# set setnum = 1
# cat $SCRATCH/pbs_${fst}_${nc}.com >> $SCRATCH/pbs_${nc}_a{setnum}.com
# else if ( $lastn >= $incr * $procnd - 1 ) then
# @ setnum = ( ($lastn + 1) / $incr / $procnd )
# cat $SCRATCH/pbs_${fst}_${nc}.com >> $SCRATCH/pbs_${nc}_a{setnum}.com
# endif
# set pid = `qsub -V $stn -t 1-$proncd -l walltime=100:00:00,nodes=1:ppn=$procnd -o $SCRATCH -e $SCRATCH $SCRATCH/pbs_${nc}_a${setnum}.com`
# else
set pid = `qsub -V $stn -l walltime=100:00:00,nodes=1:ppn=$procnd -o $SCRATCH -e $SCRATCH $SCRATCH/pbs_${fst}_${nc}.com`
# endif
set pid = `echo $pid | awk -F. '{print $1}'`
endif
endif
endif

In addition, you'll notice I added two more parameters procnd (processors to use per node), nd (Number of nodes to use) to the mparameters file. If anyone can build on this, or already has done this, or would recommend against this, please thread.

Thanks, but I am not aware of anybody who has made such changes to the script. We do not have a PBS cluster. If you would like to make the changes, test them on your cluster and then send them to me I will include them in future distributions of Frealign.