给PBS添加新的应用

        公司里使用的是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 条评论
发表一条评论