用户指南
时间:2006-06-11 来源:shaolin821116
用户指南
[ 2006-04-13 22:49:24 | Author: nbstar ]
此文档还很不完善,如果您发现有任何错误或者不妥的地方,麻烦请联系我们。
如果您在使用集群系统过程中发现一些好方法,心得体会,或者觉得本文档有
必要补充,也请您联系我们。 联系地址:xxxxx
ChangLog:
2006年4月16日 nbysy 初稿
----------------------------------------------------------------
TODO: 1.帐号申请步骤
2.需要补充些图片资料
3.intel 编译器还未安装,资料不全
4.PVM 编译这块我不知道是否有简单的方法
5. 集群的简单介绍
6. 各种手册的链接,如SGE用户手册,MPICH用户手册等
一些约定:
1. $HOME 代表用户的家目录,默认为 /home/$USERNAME
$USERNAME 为相应的用户名
2. 命令使用 黑体字
1.帐号申请
2.系统登录
为了保证数据传输安全,本系统要求用户一律采用SSH登录。
2.1 Windows 平台
如果您使用的是 Windows 平台,推荐您使用 putty。
putty是一套开源的SSH客户端工具,小巧且功能强大。
下载地址:
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
下载过来后,不需要安装即可使用,双击putty.exe 出现如下界面
在 Host Name 栏 输入 nbstar.nbu.edu.cn
点击Open打开连接,按照提示输入用户名及密码即可登录。
2.2 Linux/Unix 平台
如果您使用的是Linux/Unix平台,系统应该自带有SSH客户端工具。
在命令行输入:
ssh 用户名@nbstar.nbu.edu.cn
按提示输入密码,即可登录。
每个用户有一个家目录(Home),位置为 /home/$USERNAME, $USERNAME为相应的用户名.用户对自己的家目录拥有读写权限, 并通过网络文件系统在各节点之间共享,因此您可以将程序,程序源码, 各种数据放在家目录中。
3. 编译环境
2.1 串行程序编译
本系统安装了gcc 3.4.4,可以使用它编译一般的串行C/C++程序。
2.2 MPICH 编译器
MPICH是MPI的一个实现版本。
MPICH安装目录为 /opt/mpich/gnu/
MPICH C 编译器 /opt/mpich/gnu/bin/mpicc
MPICH C++编译器 /opt/mpich/gnu/bin/mpiCC
MPICH Fortan编译器 /opt/mpich/gnu/bin/mpif77
2.3 LAM/MPI 编译器
LAM 是MPI 的一个实现版本
LAM 安装目录 /opt/lam/gnu/
LAM C 编译器 /opt/lam/gnu/bin/mpicc
LAM C++编译器 /opt/lam/gnu/bin/mpic++
LAM Fortan编译器 /opt/lam/gnu/bin/mpif77
PVM 程序需要静态链接,而且PVM没有提供自制的编译器,因此编译PVM程序需要费些周折。
pvm 的安装目录为 /usr/share/pvm3/
pvm 的头文件为 /usr/share/pvm3/include/
pvm 的静态lib库目录为 /usr/share/pvm3/lib/LINUXX86_64/
假设您有一个 pvm 的C源程序,hello.c
可以通过以下命令编译该程序
gcc -I/usr/share/pvm3/include -o hello hello.c \
-L/usr/share/pvm3/lib/LINUXX86_64/
PVM自带了一个make工具: aimk, 您可以写个Makefile 自动化编译过程,具体做法请参考/usr/share/pvm3/examples/Makefile.aimk
另外,PVM搜索可执行程序的默认路径为 $HOME/pvm3/bin/LINUXX86_64/($HOME为家目录),建议您将PVM的程序放置于此目录,以便MPMD程序正常运行。
3. 作业管理系统
宁大之星采用SGE(Sun Grid Engine)作业管理系统。作业管理系统的目的是平衡整个集群的资源使用, 发挥集群的最大计算能力。因此建议您不要绕过作业管理系统自行运行计算程序,这样不但扰乱了系统的正常运行,而且您的计算任务也得不到良好的调度, 结果事倍功半。
3.1 登录到计算子节点
您可以使用 qlogin 命令登录到某台计算节点上进行交互式操作。SGE(作业管理系统)会选择一台最合适的计算子节点让您登录(如负载最小,可用内存最多等)。
接着您可以在子节点上进行一些工作量比较大的操作,比如编译大型程序, 这样做往往可以取得好的效果,并减轻头节点(登录节点)的压力。
3.2 提交作业
以下介绍使用向SGE提交和控制作业
可以使用 qsub 向SGE 提交作业,每项作业被赋于一个唯一的数字标识符: Job ID.
使用 qstat 查看当前所有作业的的情况。
qstat -j "Job ID" 查看单个作业的详细情况。
默认情况下,作业的标准输出(stdout),标准错误输出(stderr)分别写入 $HOME/"JobName".o."Job ID"
和 $HOME/"JobName".o."Job ID"
3.2.1 提交串行作业
以下是一个串行作业脚本的例子
#!/bin/sh
# 串行作业脚本示例
#
# 指定shell 为 /bin/sh
#$ -S /bin/sh
#
date
sleep 20
date
以#开始的为注释行, #$ 开头的是传递给SGE的选项参数。
这里, #$ -S /bin/sh 告诉SGE使用/bin/sh 解释运行此脚本。
这个脚本先显示日期时间,再睡眠20秒,接着再显示日期时间,然后脚本结束。
将此脚本保存为 $HOME/first.sh
接着运行:
qsub first.sh
这样就将此脚本提交给了 SGE,SGE接着调度该作业到合适的计算节点上运行,并将结果和错误信息存入$HOME/"JobName".o."JobID" 和 $HOME/"JobName".e."JobID"
您可以通过 qstat 命令查看作业的状态。
3.2.2 提交 MPICH 并行作业
在SGE中已经设好了MPICH的并行运行环境。假设您的 MPICH程序为 mpich_program
可以使用以下脚本运行MPICH并行程序:
#!/bin/sh
#提交MPICH程序的示例脚本
#指定 sheel 为 /bin/sh
#$ -S /bin/sh
# 指定 并行环境为 MPICH, 并申请2个处理器
#$ -pe mpich 2
# 1.这里为了防止与lam的mpirun搞混,建议使用绝对路径
# 2.$TMPDIR/machines是并行环境分配的节点列表 $NSLOTS是并行环境分配的节点数
/opt/mpich/gnu/bin/mpirun -machinefile $TMPDIR/machines -np $NSLOTS mpich_program
提交方法与串行程序是一样的,并行环境的标准输出和标准错误会被写入$HOME/"JobName".po."JobID"
及 $HOME/"JobName".pe."JobID"
mpirun 的各种不同参数请参考 mpich 的用户手册。
3.2.3 提交 LAM/MPI 并行作业
在 SGE中已经设好了 LAM 的并行运行环境。假设您的LAM/MPI 程序为 lam_program
可以使用以下脚本运行 LAM 并行程序
#!/bin/sh
# 提交LAM/MPI 程序的示例脚本
# 指定sheel 为 /bin/sh
#$ -S /bin/sh
# 指定 并行环境为 LAM, 并申请2个处理器
#$ -pe lam 2
# 1.这里为了防止与mpich的mpirun搞混,建议使用绝对路径
# 2.$TMPDIR/machines是并行环境分配的节点列表 $NSLOTS是并行环境分配的节点数
/opt/lam/gnu/bin/mpirun C lam_program
mpirun 的各种不同参数请参考 lam 的用户手册。
3.2.4
在 SGE中已经设好了PVM 的并行运行环境。假设您的PVM程序为 pvm_program
注意:建议您将 pvm程序放置在 $HOME/pvm3/bin/LINUXX86_64/
# 提交PVM程序的示例脚本
# 指定sheel 为 /bin/sh
#$ -S /bin/sh
# 指定 并行环境为 LAM, 并申请2个处理器
#$ -pe pvm 2
pvm_program