linux代码 PBS提交fluent脚本

#!/bin/bash
#PBS -N fluent
#PBS -l nodes=2:ppn=64
#PBS -o output
#PBS -e error
#PBS -q normal

module load apps/ansys/2022R1
module load compiler/intel/2021.3.0
module load mpi/openmpi/intel/4.0.3

cd $PBS_O_WORKDIR
ulimit -s unlimited

echo "job start at $(date)" >> job_time
FLUENT=/public/software/apps/ansys/2022R1/v221/fluent/bin/fluent

if [ "$PBS_O_WORKDIR" == "$PBS_O_WORKDIR" ]; then
   cat $PBS_NODEFILE > .hostlist-job$PBS_JOBID
fi

mpirun -np $PBS_NP -machinefile .hostlist-job$PBS_JOBID $FLUENT -t $PBS_NP -ssh -g 2ddp -i projectile.jou

rm -f .hostlist-job$PBS_JOBID
echo "job end at $(date)" >> job_time

上述代码使用 PBS(Portable Batch System)脚本在集群环境中提交 ANSYS Fluent 的作业。下面是对脚本各部分的解释:

1. #!/bin/bash
   - 告诉系统使用 Bash 解释器执行脚本。

2. #PBS -N fluent
   - 为作业命名为 "fluent"。

3. #PBS -l nodes=2:ppn=64
   - 请求使用 2 个节点,每个节点上有 64 个处理器核心(ppn=64)。

4. #PBS -o output
   - 指定标准输出文件的名称为 "output"。

5. #PBS -e error
   - 指定标准错误文件的名称为 "error"。

6. #PBS -q normal
   - 指定作业提交到 "normal" 队列。

7. module load apps/ansys/2022R1
   - 载入 ANSYS Fluent 软件模块,版本为 2022R1。

8. module load compiler/intel/2021.3.0
   - 载入 Intel 编译器模块,版本为 2021.3.0。

9. module load mpi/openmpi/intel/4.0.3
   - 载入 Intel MPI 模块,版本为 Open MPI 4.0.3。

10. cd $PBS_O_WORKDIR
    - 切换到脚本所在的工作目录。

11. ulimit -s unlimited
    - 设置堆栈大小为无限制。

12. echo "job start at $(date)" >> job_time
    - 将作业开始的时间写入名为 "job_time" 的文件。

13. FLUENT=/public/software/apps/ansys/2022R1/v221/fluent/bin/fluent
    - 设置 FLUENT 变量为 ANSYS Fluent 可执行文件的路径。

14. if [ "$PBS_O_WORKDIR" == "$PBS_O_WORKDIR" ]; then ... fi
    - 检查当前工作目录是否为 PBS 工作目录,如果是,则将节点列表写入名为 ".hostlist-job$PBS_JOBID" 的文件。

15. mpirun -np $PBS_NP -machinefile .hostlist-job$PBS_JOBID $FLUENT -t $PBS_NP -ssh -g 2ddp -i projectile.jou
    - 使用 `mpirun` 启动 Fluent,使用 `-np` 指定进程数, `-machinefile` 指定节点列表文件,`-t` 指定进程数,`-ssh` 指定使用 SSH 进行通信,`-g 2ddp` 指定并行模式,`-i projectile.jou` 指定 Fluent 输入文件。

16. rm -f .hostlist-job$PBS_JOBID
    - 删除节点列表文件。

17. echo "job end at $(date)" >> job_time
    - 将作业结束的时间写入名为 "job_time" 的文件。

你可能感兴趣的:(linux)