06-TUTORIAL-DATARMOR-MPI_PBS_qsub_qstat(未实现)


<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 作业。

  • datarmorifremer中的 超级计算机 supercomputerwaverun教程有提到。

1-如何在集群datarmor 工作

首先必须让 datarmor环境文件在你的本地机器上工作:

##	保存原先的环境文件
cp ~/.bashrc ~/.bashrc.save_20220104

##	datarmor的环境文件
cp $WAVES_SHORT_COURSE/TUTORIALS/TUTORIAL_DATARMOR/data/bashrc.iuem ~/.bashrc

##
source ~/.bashrc
source ~/.bashrc | less

创建一个不必添加密码的密钥:

##	回到主目录
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%;” />

cat .ssh/id_rsa.pub | echo <span class=datapwd | ssh datapwd | ssh datalogin@datarmor ‘cat >> .ssh/authorized_keys’” />

ssh-add

打开一个新终端,无需输入密码即可将您连接到 caparmor

ssh $datalogin@datarmor -X

cat .ssh/id_rsa.pub | echo <span class=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
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)。

    wall-time解释(有道翻译中查到的)

4-如何远程在datarmor工作


Author: Jincan
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Jincan !
  TOC