云南大学高性能计算中心曙光集群系统使用指南

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

云南大学高性能计算中心曙光集群系统使用指南
1、使用SSH客户端软件用在高性能计算中心申请的用户名和密码登录到集群系统(Windows系统可使用SSHSecureShellClient-3.2.9软件包,下载地址/structure/download Linux系统可直接使用ssh命令登录)。

登录成功后你所在的节点是登录节点,系统会有一些通知信息显示,操作提示符是[username@node34 ~]$。

这个节点是作用户帐号管理,不要在上面运行程序。

2、编译与调试程序请用rsh转到相关作业区节点。

本集群系统共有32个计算节点(每个节点有4个CPU 8G 内存),分为4个作业区。

小作业区small包含4个节点(node1..node4),中型作业区medium包含8个节点(node5..node13),专用作业区long包含8个节点(node13..node20),大作业区large包含12个节点(node21..node32)。

每一个作业区的第一个节点该作业区的服务节点,small为node1,medium为node5,long为node13,large为node21。

例如从登录节点转到一号节点:
[hbli@node34 ~]$rsh node1
Last login: Mon Aug 28 15:33:16 from node34
[hbli@node1 ~]$
3、编译链接、运行用户程序
串行程序可使用GCC或PGI编译器,并行程序可使用mpicc, mpiCC, mpif77,mpif90进行编译。

以下是一个c使用mpi的例子:
/* hello.c */
/* MPI sample c program */
/* compile "with mpicc -o hello hello" */
/* run with "mpirun -np 8 hello" */
/* or submit with pbs script "qsub hello.pbs" */
/* you can use "qstat" to dislay your job statusa */
#include <stdio.h>
#include "mpi.h"
int main( argc, argv )
int argc;
char **argv;
{
int rank, size;
MPI_Init( &argc, &argv );
MPI_Comm_size( MPI_COMM_WORLD, &size );
MPI_Comm_rank( MPI_COMM_WORLD, &rank );
printf( "Hello world from process %d of %d\n", rank, size );
MPI_Finalize();
return 0;
}
可以用如下命令对上面的程序进行编译:
$ [hbli@node1 sample]mpicc –o hello hello.c
生成可运行的文件hello,用ls –l 命令可以看到生成的可执行文件:
$ [hbli@node1 sample]ls –l
-rwxrwxr-x 1 hbli hbli 507375 Oct 10 10:39 hello
-rw-r--r-- 1 hbli hbli 532 Jun 20 08:01 hello.c
这样就可运行hello 这个程序了。

$ [hbli@node1 sample]$ mpirun -np 8 hello
Hello world from process 5 of 8
Hello world from process 1 of 8
Hello world from process 6 of 8
Hello world from process 4 of 8
Hello world from process 7 of 8
Hello world from process 3 of 8
Hello world from process 2 of 8
Hello world from process 0 of 8
用mpi编写的并行程序必须用mpirun来运行,其中-np 8 用来告诉mpi启动8个并行进程。

4、编写OPENPBS作业脚本和作业控制
Pbs作业脚本可以在windows上用文本编辑程序编写如UtraEdit、记事本等编写,完成通过ssh的ftp上传到你的用户目录中,也可以直接在linux下用vi 来编写。

建议在程序放置目录编写作业脚本
例如:程序放在$HOME/hbli/sample目录,作业脚本名称为hello.pbs。

下面是hello.pbs:
#!/bin/sh
### Job name
#PBS -N hello
### Output files
#PBS -e hello.err
#PBS -o hello.log
### Mail to user
#PBS -m ae
### Queue name (@node1 for small, @node5 for medium,@node13 for long, @node21 for large)
#PBS -q @node1
### 2 nodes 2 cpu per node
#PBS -l nodes=2:ppn=4
# This job's working directory
echo Working directory is $PBS_O_WORKDIR
echo Running on host `hostname`
echo Time is `date`
echo Directory is `pwd`
echo `which mpirun `
#job command line
mpirun -np 8 $PBS_O_WORKDIR/hello
PBS脚本组成:
注释,以“#”开头
PBS指令,以“#PBS”开头
命令,其他开头
#PBS -N hello
指定作业名称
#PBS -o hello.log
指定作业输出(由于作业管理系统无法输出到终端,这个文件内容相当于在终端显示器的输出)
#PBS –e hello.err
#!指定错误输出
#PBS -l nodes=2:ppn=4
指定所需资源,2个节点每节点4CPU
注意:用户提交作业请依照以上脚本规范,否则作业可能得不到运行。

对不依照脚本规范进行提交的作业,系统管理员将对用户进行警告,并删除其作业;对恶意破坏系统正常运行的用户,将依照中心有关规定,对其进行处罚。

提交作业
作业提交使用qsub命令格式如下:
$ [hbli@node1 sample]qsub hello.pbs
作业管理
qsub命令运行成功后,将返回相应的作业号
如:210.node26
用户可使用qstat命令查看作业的运行情况,其中:
R表示运行中
Q表示排队中
H表示暂停
E表示退出
下面是qstat的例子:
[hbli@node34 sample]$ qstat @node5 @node21
Job id Name User Time Use S Queue
---------------- ----------------- --------------- -------- - -----
1034.node5 real sres 50:43:4 R medium 1053.node5 co2 sres 78:16:18 R medium 1054.node5 NSO sres 70:25:15 R medium 1055.node5 YSO sres 70:28:41 R medium 1065.node5 YSO2 sres 21:18:30 R medium 1067.node5 YSO3 sres 15:52:49 R medium 1068.node5 YSO1 sres 18:10:38 R medium 1069.node5 fixed sres 04:16:18 R medium
527.node21 MicA-n-i-f sichuan 340:31:5 R large 571.node21 MicA-n-i-r sichuan 219:02:2 R large 572.node21 MicA-h-i-f sichuan 199:25:4 R large
用户可以使用qdel命令提前结束自己不需要运行的作业。

qdel jobid
作业的运行输出(终端)和出错信息将输出到作业提交脚本指定的输出文件
中,可以使用more或cat命令查看。

PBS 使用-常用命令
qdel - Deletes a task in the queue.
qdel job_identifier ...
qhold - Suspends a job in the queue.
qhold job_identifier ...
qrls - Reactivates a suspended job in the queue.
qrls job_identifier ...
qstat - Displays the state of the tasks in the queue.
qstat [-f] [job_identifier ...]
-f : Displays detailed information on each tasks.
pbsnodes - Displays the state of the nodes.
pbsnodes –a ----a : Displays the list of all nodes and their attributes.。

相关文档
最新文档