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

由 qiliao 在 02-10-2003 09:29 发表:

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

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

计算机网络上实现负载均衡,任务优先和简化。简单地说,它根据用户任务

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus