需求分析
最近公司新上了一个计算集群,有20+个机器,每个机器有20+的核,提前已经装好了PBS作业管理系统,这个系统在Linux集群中很常用,自己做科学计算所用的商业软件是comsol,目的就是用comsol进行并行计算,期间主要参考了这个英文帖子。很不幸的是,这个帖子中的pbs集群的示例代码有些错误,在此进行一下记录。
前期准备
做集群计算,首先要安装好商业软件,首先要保证每台子节点都能访问到comsol的运行主程序,而且这个文件的目录必须是一致的,这是前提,测试的方法就是ssh到某个节点上,然后运行comsol
,看是否能运行,如果这点保证不了,就无法使用该示例代码。
示例代码
该网站提供的pbs示例代码有一些小错误,我将这错误改正后,发到这里,供参考:
#!/bin/bash # ############################################################################## # export nn=4 export np=8 export inputfile="simpleParametricModel.mph" export outputfile="outfile.mph" # qsub -V -l nodes=${nn}:ppn=${np} <<'__EOF__' # #PBS -N COMSOL #PBS -q dp48 #PBS -o $HOME/cluster/job_COMSOL_$$.log #PBS -e $HOME/cluster/job_COMSOL_$$.err #PBS -r n #PBS -m a -M email@domain.com # echo "------------------------------------------------------------------------------” echo "--- Starting job at: `date`" echo # cd ${PBS_O_WORKDIR} echo "--- Current working directory is: `pwd`" # np=$(wc -l < $PBS_NODEFILE) echo "--- Running on ${np} processes (cores) on the following nodes:" cat $PBS_NODEFILE # cat $PBS_NODEFILE | uniq > comsol_hostfile echo "--- parallel COMSOL RUN" comsol batch -nn $nn -nnhost 1 -np $np -f comsol_hostfile -inputfile $inputfile -outputfile $outputfile -batchlog batch_COMSOL__$$.log echo echo "--- Job finished at: `date`" echo "------------------------------------------------------------------------------” # __EOF__
主要的问题就是原网页中的´ 应改为` ,请忽略双引号。
如果有一点Linux的bash基础,阅读该代码就很顺畅了,有问题请在留言区一起交流讨论。
你好,comsol batch -nn $nn -nnhost 1 -np $np -f comsol_hostfile 这里为啥还要指定hostfile呀,pbs调度的目的是啥呢