LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1572|回复: 3

这是我们搭的并行机群ding Beowulf, 欢迎指教。

[复制链接]
发表于 2003-2-10 09:29:53 | 显示全部楼层 |阅读模式
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.

 

 
 楼主| 发表于 2003-2-10 09:38:43 | 显示全部楼层

上传照片:

上传照片:
发表于 2003-2-10 09:46:06 | 显示全部楼层
曾经挺过一个家伙用4个P4算水在不同直径的nanotube里的结构,高出N多种新的相。
 楼主| 发表于 2003-2-10 10:16:08 | 显示全部楼层
最初由 maddy 发布
曾经挺过一个家伙用4个P4算水在不同直径的nanotube里的结构,高出N多种新的相。


这个小东西是个教学性质的玩具,我们小组主要用它来学习基本的并行分子动力学算法和相关的知识。
很快我们会有更大的玩具,用来作大分子的分子动力学模拟。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表