公司里使用的是PBS的商业版,PBS商业版包含PBS、PAS、PBSWORKS三个组件:
- PBS 这是PBS的核心,所有作业及资源调度均由此组件完成。
- PAS 该组件用于实现web界面与PBS之间各种参数变量的传递、重组、拆分。
- PBSWORKS 提供web界面框架
所以,添加一个新的应用关键在于PAS组件的配置。
1)修改siteconfig
pas位于/var/spool/pas目录下
第一步先修改/var/spool/pas/repository/site-config.xml
这个文件是PAS所有应用可执行程序的索引文件,新增应用首先需要添加索引信息
cd /var/spool/pas/repository/
cp site-config.xml site-config.backup #养成备份的好习惯
vim site-config.xml
添加以下内容:
<Application id="MCNP"> #id必须和之后在application目录中的目录名一致
<ApplicationVersions>
<ApplicationVersion>
<Option>6</Option>
<Executable>/workplace/apps/mpich/bin/mpirun</Executable> #这里添加的是应用的可执行路径
</ApplicationVersion>
</ApplicationVersions>
</Application>
2)创建应用目录
接着创建一个应用目录,可以使用原有应用的目录拷贝一个过来进行修改
cd /var/spool/pas/repository/applications/
cp -a Ansys/ MCNP #复制一个目录进行修改
mv app-inp-MCNP.xml app-inp-MCNP.xml #重命名对应文件
mv app-conv-MCNP.xml app-conv-MCNP.xml #重命名对应文件
sed -i 's/Ansys/MCNP/g' *.xml #把文件里的应用名都改成新的应用名称
3)修改start.sh文件
start.sh文件是作业提交时的执行文件,当用户在页面上填好参数,提交作业后,所有参数都会传递至start.sh文件,由start.sh文件组合成一条可执行的pbs语句提交给pbs进行处理
(这里也有可能是start.py文件,该如何识别将在之后的文章进行说明)
vim runtime/start.sh
export MPI_RESH='/opt/pbs/bin/pbs_tmrsh'
export MPI_WORKDIR=$PBS_JOBDIR
cd /workplace/apps/mcnp6
# Create the host file:
hostlist=`cat $PBS_NODEFILE|sort|uniq -c|awk '{print $2":"$1}'|tr "\n" ":"`
input_file=`basename ${input_file}`
cmd="$PAS_EXECUTABLE -np ${PAS_CORES} /workplace/apps/mcnp6/mc6.mpi inp=${PBS_JOBDIR}/${input_file} name=/${PBS_JOBDIR}/${output_file}"
env>env.out
echo "this command list is: $cmd"
$cmd
4)添加pbs节点的准入
高性能计算集群为了效率的最佳化,往往会针对应用的性能需求特点设置不同配置的计算节点,最后一步需要设置允许执行新增应用作业的节点。
在这里,我为了方便,提前将允许执行新增应用的节点hostname放入compute_node文件中
cat compute_node
cmm01node01
cmm01node02
cmm01node03
.
.
.
然后使用一条for语句对这些节点批量添加新增应用的准入
for i in `cat /workplace/install/compute_node` ;do qmgr -c "set node ${i} resources_available.pas_applications_enabled += MCNP";done
至此,新增应用就可以正常运行了。
0 条评论