Andrew Moa Blog

不积小流,无以成江海

最近提供超算试用的平台挺多的,很多平台都有免费试用的申请。因工作需要申请了某超算平台的账号并进行了相关的试用,就超算平台部署STAR-CCM+软件及应用的过程做一个简单的记录,也为后续相关应用提供参考。

1. 超算平台信息

远程登陆超算可以通过SSH连接,某些平台还提供的webSSH、webVNC连接,支持通过浏览器连接命令行或图形界面。具体登陆方式请参考平台提供的相关文档。

首次登陆安装部署软件之前应当先了解超算平台的配置,确定平台是否支持需要安装的软件。通过以下命令了解超算平台的发行版信息。

lsb_release -a

可以了解到该平台发行版为CentOS,版本7.9.2009。

01-发行版信息.png

该超算平台所用并行作业调度系统为开源的Slurm,可以通过以下命令查看可供调用的计算资源。

sinfo -a

输出比较长,这里只截了一部分。下图中amd_256表示计算节点所在分区,记住它,后面编写脚本会用到。

02-计算节点信息.png

2. 软件安装

软件上传及存储请参考平台提供的相关文档。

本文安装的是16.06.010双精度Linux版本。通过以下命令解压tar.gz安装包。

tar xvzf [file-name].tar.gz

安装文件被解压到starccm+_16.06.010目录中,进入该目录运行.sh文件开始安装。注意,此处不需要root用户权限(多数情况下平台是不会提供root账号的,但不影响软件安装)。

./STAR-CCM+16.06.010_01_linux-x86_64-2.17_gnu9.2-r8.sh

用VNC连接的可以通过图形界面安装,不想通过图形界面安装可以用以下命令强制通过控制台安装。

./STAR-CCM+16.06.010_01_linux-x86_64-2.17_gnu9.2-r8.sh -i console

本文采用控制台方式进行安装。首先提示LICENSE,如下图所示,按ENTER继续。

03-LICENSE提示.png

是否接受用户协议,输入YENTER确认继续。

04-LICENSE确认.png

用户体验计划,根据自己需要选择是否接受(Y/N),不影响后续使用。

05-用户体验计划.png

安装位置,本文选择安装在${HOME}/opt/Siemens目录下,按提示输入绝对路径,Y确认。

06-输入安装位置.png

安装信息,ENTER确认,开始复制文件。

07-安装信息.png

安装完成,ENTER确认退出。记住安装路径:

${HOME}/opt/Siemens/16.06.010-R8/STAR-CCM+16.06.010-R8

08-安装完成确认.png

和谐过程就免了,自行参考文档吧。支持正版,打击盗版。

3. 编制SLURM脚本

下面编写SLURM脚本,提交算例简单测试一下。

#!/bin/bash 

#SBATCH --job-name=carbin_tcm 
#SBATCH --partition=amd_256 
#SBATCH --output=%j.out 
#SBATCH --error=%j.err 
#SBATCH -N 2 
#SBATCH --ntasks-per-node=64 

export MPI_TYPE=openmpi # intel platform openmpi 
export DIR=/***/home/***/opt/Siemens/16.06.010-R8/STAR-CCM+16.06.010-R8/star/bin 
export CDLMD_LICENSE_FILE=/***/home/***/opt/Siemens/license.dat 
export SIM_FILE=carbin_tcm.sim 
#export JAVA_FILE=carbin_tcm.java 
export MACHINEFILE=$SLURM_JOBID.node 
scontrol show hostnames $SLURM_JOB_NODELIST > $MACHINEFILE 
$DIR/starccm+ $SIM_FILE -batch $JAVA_FILE -np $SLURM_NPROCS -machinefile $MACHINEFILE -mpi $MPI_TYPE -rsh ssh -power 

--job-name指定的的是案例的名称,可以在squeue命令中显示的名称。

--partition指定的是计算节点所在分区,这里调用的是amd_256分区中的计算节点。

--output指定输出文件名称,%j$SLURM_JOBID表示当前作业ID,由平台自行指定。

--error指定输出错误文件名称。

-N指定该案例调用的节点数,这里调用2个计算节点。

--ntasks-per-node指定每节点进程数,这里指定每节点调用64线程。

变量$SLURM_NPROCS表示总的计算进程数,可以根据以上两个参数自动计算,总的计算进程为128。

参数MPI_TYPE指定调用mpi类型,推荐用intelopenmpiplatform高版本不再支持。

参数DIR指定STAR-CCM+安装路径,就是starccm+文件所在的路径。

参数CDLMD_LICENSE_FILE指定LICENSE的访问路径,可以是文件路径也可以是端口号@主机地址

参数SIM_FILE指定测试案例文件名。

参数JAVA_FILE指定宏文件名。如果使用了宏,可以把这一行的注释去掉,把文件名改成调用的宏文件名即可。

参数MACHINEFILE指定节点文件。

命令scontrol show hostnames SLURM_JOB_NODELIST > MACHINEFILE用于输出主机名到节点文件。

保存算例脚本文件为carbin_tcm.slurm,测试案例文件为carbin_tcm.sim,一共2个文件,上传。计算时间步长、迭代次数等要在.sim文件中先定义好,生成网格、配置好边界条件再行上传计算。

如果算例文件比较大,可以压缩上传再解压。也可以清除掉网格再上传,通过调用宏重新生成网格、定义边界条件、计算。

4. 提交计算任务

通过sbatch命令提交计算任务。

sbatch carbin_tcm.slurm

提交后自动生成ID、排队,本算例ID号为899634。

09-提交计算.png

通过squeue命令查看计算任务队列。

10-计算任务队列.png

计算完成后,打包下载输出文件即可。

11-输出文件.png