<center>
06-TUTORIALS-DATARMOR-MPI_PBS_qsub_qstat</center>
参考资料
waves-workshop-exercise-datarmor.pdf
;
- 也就是
COURS/WAVES_SHORT_COURSE/TUTORIALS/TUTORIAL-DATARMOR
里面的内容;- TUTORIAL 是会更新的,此版本为 2017 版本的;
- 链接:https://pan.baidu.com/s/1-TDvbPuSgVyLJDONf5HnmQ
提取码:453w
–来自百度网盘<font color='red'>
在inout和multi都有用到qsub命令,但我不知道怎么安装这个命令,之前尝试安装PBS中的torque和openPBS,失败了;本教程包含这个命令,希望可以为我解惑;</font>
PBS(Protable Batch System) 作业管理系统:https://www.jianshu.com/p/2f6c799ca147
为什么使用PBS
前面我们所给出的各个例程一般都是在单台计算机上直接使用 mpiexec 或 mpirun 执行的,但是在实际应用中,对规模比较大的高性能计算任务,一般会提交到集群或超级计算机平台上进行计算。集群系统具有低成本、高性能的特性,提供了强大的批处理和并行计算能力,代表了高性能计算机发展的新方向。在集群或者超级计算机平台上,一般不能随意地直接以 mpiexec 或 mpirun 运行我们的并行计算程序,而必须通过其上提供的作业管理系统来提交计算任务。作为集群系统软件的重要组成部分,集群作业管理系统可以根据用户的需求,统一管理和调度集群的软硬件资源,保证用户作业公平合理地共享集群资源,提高系统利用率和吞吐率。下面我们将简要地介绍几个常用的集群作业管理系统:PBS,LSF 和 SLURM。下面我们首先简要介绍 PBS 作业管理系统。
…
内容
在本教程练习中,我们将进入集群 datarmor
,设置环境并学习如何传输数据和运行 MPI 作业。
datarmor
是ifremer
中的超级计算机 supercomputer
。waverun
教程有提到。
1-如何在集群datarmor 工作
首先必须让 datarmor
环境文件在你的本地机器上工作:
## 保存原先的环境文件
cp ~/.bashrc ~/.bashrc.save_20220104
## datarmor的环境文件
cp $WAVES_SHORT_COURSE/TUTORIALS/TUTORIAL_DATARMOR/data/bashrc.iuem ~/.bashrc
##
source ~/.bashrc
创建一个不必添加密码的密钥:
## 回到主目录
cd ~
##
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
##
cat .ssh/id_rsa.pub | echo $datapwd | ssh $datalogin@datarmor 'cat >> .ssh/authorized_keys'
##
ssh-add
<img src=”https://raw.githubusercontent.com/Liu-Jincan/PicGo/main/img/20220104232140.png" alt=”ssh-keygen -t rsa -N “” -f ~/.ssh/id_rsa” style=”zoom:100%;” />
datapwd | ssh datapwd | ssh datalogin@datarmor ‘cat >> .ssh/authorized_keys’” />
打开一个新终端,无需输入密码即可将您连接到 caparmor
:
ssh $datalogin@datarmor -X
datapwd | ssh datapwd | ssh datalogin@datarmor ‘cat >> .ssh/authorized_keys’” />
如果这是您的第一次连接,则需要复制一个 cshrc
环境文件 :
## 保存原先的cshrc环境文件(可能原先没有)
cp ~/.cshrc ~/.cshrc.save_20220104
## datarmor的环境文件
cp $COURS/WAVES_SHORT_COURSE/TUTORIALS/TUTORIAL_DATARMOR/data/cshrc.datarmor ~/.cshrc
##
source ~/.cshrc
在 datarmor 上,每个用户有 3 个可用的存储空间,一个用于脚本和程序的 主目录(home)
,一个用于模型结果的 工作目录(work)
和一个用于模型运行的 临时目录(scratch)
。
home : /home1/datahome/login - 50G with a back up system.
work : /home1/datawork/login - 500G with no back up system.
scratch : /home1/datascratch/login - 10T with no back up system and 2 weeks of storage lifespan.
2-从datarmor获取数据+输送数据到datarmor
3-在datarmor运行工作
- 运行ww3程序不要超过几分钟的时间,如果每个人都这样做,系统将变得非常慢,甚至关闭。当你必须长时间运行代码或使用大量内存时,好的做法是使用
qsub
工具在计算节点 computation node
而不是前端节点 front-end node
上运行你的程序。
教程中给出了一个例子:data/job_shel.pbs
。要运行这个程序,使用这个命令行:
qsub -N myShelJob job_shel.pbs
如果你在复制数据,运行
nco
工具,或任何fortran可执行文件的顺序模式 sequential mode
,你必须在队列顺序 queue sequential
上运行。对于
MPI
程序,你可以使用以下更合适的mpi队列 queue
:mpi_1, mpi_2, mpi_3, mpi_4, mpi_6, …, mpi_18 或 big。
- 每个节点有28个
mpi任务 tasks
,因此例如mpi_2在56个mpi任务上运行。- 如果使用big队列,你必须用变量
select
定义使用的处理器数量(例如:#PBS -l select=36:ncpus=28:mpiprocs=28
)。然后使用环境变量$MPI_LAUNCH
调用你的MPI程序(例如:$MPI_LAUNCH ww3_shel >& ww3_shel.out
)。可以进行内存分配(
#PBS -l mem=60G
)或walltime
设置(#PBS -l walltime=2:00:00
)。