|
How to Build our Ding ?
http://pplas.icas.ac.cn/~qiliao/
©中国科学院化学研究所高分子物理实验室
欢迎转载引用,烦请注明出处 2003.1.24
*************************************
1. 什么是Beowulf?
2. 节点硬件
3. 网络硬件
4. Linux操作系统的安装
5. 与Beowulf相关的服务:NFS, SSH, RSH
6. 手动并行的实现:LAM MPI
7. Beowulf的任务管理:DQS的安装与设置
8. DQS使用指南
9. Benchmark
10. MPI 入门
*************************************
1. 什么是Beowulf?
我们搭建的微机机群“ding”, 属于典型的Beowulf。Sterling在他的经典著作中给出的
Beowulf的定义是:
“A Beowulf is a collection of personal computers (PCs) interconneted by widely
avaible networking technology runing any one of sevral open-source Unix-like
operation systems.”
从这个定义,Beowulf cluster的设计思想强调硬件(包括单个节点和内部互连的网络)
和软件(包括操作系统和并行协议)在市面上易于获得。只有这样,才能从根本上保证
Beowulf 的成本标度性(scalability), 也就是成本与计算能力的线性关系。任何导致
成本与计算能力不成比例的“技术改进”,都违反了Beowulf设计思想的初衷。
网上关于Beowulf的资料浩如烟海,但中文的不多,可能与不喜欢归档的习惯有关。这也是
我主要用中文写这个说明的原因。ding是我们的第一个机群, 还没有仔细的tuning,如果有
重要变化,我会及时更新说明。
2. 节点硬件
CPU: AMD Athlon MP 2000+ (1600M Hz) with fun ____ 8 X ¥ 1,850
主板:Tyan S2466-4M with AMD 760MPX chipset ____ 4 X ¥ 1,950
8 X Kingston 512M DDR RAM ____ 8 X ¥ 1,200
Seagate 80G IDE Hard Disk ____ 4 X ¥ 865
TNT 16M ____ 4 X ¥ 200
Case & Power ____ 4 X ¥ 950
Dell Flat Monitor 19" ____ 1 X ¥ 3,200
Keybord,mouse ____ 1 X ¥ 170
CDROM in master node ____ 1 X ¥ 300
KVM switch ____ 1 X ¥ 500
购买KVM switch 和显示卡是为了调试方便,其实Tyan S2466主板支持display redirection
可以不要显示卡启动。购买价格是2002年10月北京中关村的市场价格。
3. 网络硬件
D-link DES 1016R+ 100M 16 port switches ____ 1 X ¥1000
3COM905C-TX NIC integrested in Mainborad ____ N/A
3COM905C-TX NIC in master node ____ 1 X ¥ 200
total: ____ ¥ 47,500 (tax included)
整个系统的购买和安装约耗时一个星期左右。在每个CASE里面又让
厂家加装了两个风扇。
4.Linux操作系统的安装
我们在每一个节点上都用CDROM安装了同样的Redhat linux 8.0, 选择安装“everything”,
免得以后单独安装组件。由于只有一个CDROM,从光盘分别安装显得十分笨拙,以后需要学习
如何从网络远程启动进行安装。
硬盘分区表(所有节点都一样):
had1 /boot ext3 102 M
hda2 /scratch ext3 20,003 M
hda3 swap 2,000 M
hda4 extended 54,212 M
hda5 / ext3 54,212 M
单独划出/scratch分区是为了有并行任务时候作为临时存储空间。
我们的master node配有双网卡,一个对外的网卡 IP address is 159.226.76.25,昵称为ding,
对内的网卡IP address is 192.168.0.1 ,即a01节点。 其余内部节点设定为a02, a03, a04,
做为slave nodes, IP address 依此设定为192.168.0.2--192.168.0.4。
虽然我们安装了X-window,但一般启动隐含的是文本登陆界面,这可以通过修改/etc/inittab
文件中的
id:5:initdefault (图形login)
id:3:initdefault (文本login)
进行切换。
5.与Beowulf相关的服务:NFS, SSH, RSH
所有的用户信息都存储在master node上的/etc/passwd,/etc/shadow和/etc/shadow上。其他
节点具有与master node一样的上述三个文件。
我们通过NFS使各节点使用master node 的/usr 和/home, 这样可以只在master node 进行
软件的安装,升级和管理。所有非root用户具有一样的位于a01上的目录。如果用户有并行
任务,可以利用各个节点上的/scratch分区进行临时空间暂存数据。详细NFS的设置可以方便地
在一本LINUX使用手册上找到。其中/scratch分区是有盘Beowulf与无盘Beowulf的区别之一。
对ssh 和rsh配置的目的是为了在Beowulf内部节点间消除口令。
为了用户rsh登录到具有alias的内部节点,需要设置/etc/hosts,/etc/hosts.equiv, /etc
pam.d/rsh, /etc/pam.d/rlogin等文件。
为了减少服务,我们关闭了NIS。
rsh的配置:/etc/hosts, /etc/hosts.equiv, /root/.rhosts
详见sterling 的书p120-121页有关rsh 的叙述。
近年来逐渐趋向于使用ssh作为远程命令执行shell。对应于rsh, rlogin和rcp, 有ssh, slogin
和scp。
ssh的用户配置:
A. login as root at a01
B. useradd NEWUSER
C. passwd NEWUSER
D. su NEWUSER
E. ssh-keygen -t rsa
E. copy /etc/passwd, /etc/shadow, /etc/group to other nodes
F. ssh every_nodes
有空的时候可以写个小script来做这个增加新用户的任务。这么做能够消除口令的前提是
所有非root用户具有一样的位于a01上的目录。这是用前述NFS来实现的。
其他无关的服务均可关闭,以减少网络通信。实际上,测试表明rsh比ssh更有效。因此为了兼故
安全与效率,我只在master节点上让外部登录的用户使用SSH而禁止使用RSH; 进入ding后禁止
使用SSH而只使用RSH。
6.手动并行的实现:LAM MPI
我们采用目前流行的MPI标准实现并行。redhat linux 8.0 带有 lam MPI,不用另外安装。
完成上述设置之后,就可以“手动地”进行并行计算了。所谓“手动”,就是用户自己分配
CPU,而不是通过排队系统进行管理。这在单用户的情况下是可以的,但如果有多个用户,难免
会出现CPU争用,导致load unbalance。这里暂时考虑单用户情况,因为这是实现并行的基础。
some tricks:
A. By default, the remote shell is ssh for lamboot in redhat linux 8.0. If you prefer
rsh ( it is a little faster than ssh), you can do it by adding
export LAMRSH = rsh
in /etc/profile
B. How to use lamboot without defining CPU #
/etc/profile :
export LAMHOST=/etc/bhost.def
/etc/bhost.def:
a02 CPU=2
a03 CPU=2
a04 CPU=2
因为我们是双CPU的节点。
这样设置之后,我们就可以用如下命令编译和运行欢迎程序hello.c (见sterling p166)
mpicc -o hello hello.c
lamboot
mpirun -np 6 hello
wipe
7.Beowulf的任务管理:DQS的安装与设置
DQS(Distributed Queueing System)是一个任务管理系统,能够在homogeneous和heterogenous
计算机网络上实现负载均衡,任务优先和简化。简单地说,它根据用户任务的优先级进行排对,
如果有合适的CPU,它自动进行分配。
我们在ding上安装了DQS 3.3.2,并且限定了每个用户最多能同时运行四个任务,但是每个任务的
CPU个数没有限制。
DQS配置文件:
/etc/dqs/conf_file
/etc/dqs/resolv_file
DQS Demon:
/usr/sbin/qmaster
/usr/sbin/dqs_execd
DQS执行文件:
/usr/bin/qstat
/usr/bin/qsub
/usr/bin/qdel
8. DQS使用指南
强调一遍,所有在内部节点上的计算任务都得通过DQS提交,不允许在内部节点上手动执行程序。
用户从本地机器ssh登录到ding后,请不要利用rsh进入内部节点。
所有程序的编译和调试都在中心节点(a01)上完成,然后通过qsub命令提交任务进行排队;然后可以
通过qstat命令查看排队情况。提交任务以后,可以通过qdel命令取消正在执行或排队的任务。
我们在ding上安装了DQS 3.3.2,并且限定了每个用户最多能同时运行四个任务,但是每个任
务的CPU个数没有限制。多余四个的任务将进入最大任务队列中等待。
如果并行计算过程中有大量数据输出,可以考虑在/scratch目录中进行运算。由于/scratch属于
本地硬盘,数据不通过网络转移到nfs的/home目录,从而减少了对网络带宽的占用。
9. Benchmark of ding
10. MPI 入门
Happy Computing !
©中国科学院化学研究所高分子物理实验室
欢迎转载引用,烦请注明出处 2003.1.24
如有问题请与廖琦联系。Email: qiliao@iccas.ac.cn Phone:+86-10-6256-4829
_______
References:
1. How to Build a Beowulf: a guide to the Implementation and Application of PC
cluster,By T. L. Sterling, J. Salmon, D. J. Becker and D. F. Savarese. The MIT
Press. 1999.
|
|