How to Build our Ding ?

©中国科学院化学研究所高分子物理实验室 

欢迎转载引用,烦请注明出处 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. rcp /etc/passwd, /etc/shadow, /etc/group to other nodes 

E. su NEWUSER

F. ssh-keygen -t rsa

G. cp id_rsa_pub authorized_key

F. ssh every_nodes

可以用newuser 和 nosshpw 两个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执行文件:

/usr/bin/qstat

/usr/bin/qsub

/usr/bin/qdel

 

DQS基本配置文件:

/etc/dqs/conf_file

/etc/dqs/resolv_file

另外可以用 qconf 来动态配置对列

用qmod -e queue来激活队列

 

DQS Demon:

Master node: /usr/sbin/qmaster

Slave node: /usr/sbin/dqs_execd

 

 

8. DQS使用指南

强调一遍,所有在内部节点上的计算任务都得通过DQS提交,不允许在内部节点上手动执行程序。

用户从本地机器ssh登录到ding后,请不要利用rsh进入内部节点。

所有程序的编译和调试都在中心节点(a01)上完成,然后通过qsub命令提交任务进行排队;然后可以

通过qstat命令查看排队情况。提交任务以后,可以通过qdel命令取消正在执行或排队的任务。

我们在ding上安装了DQS 3.3.2,并且限定了每个用户最多能同时运行四个任务,但是每个任

务的CPU个数没有限制。多余四个的任务将进入最大任务队列中等待。

 

用户可以用 qstat -f 来查看目前各个用户使用CPU的情况

用qsub来提交并行和串行任务

用qdel来删除不在需要的任务

如果发现qdel不能删除任务,请通知系统管理员来处理.

 

如果并行计算过程中有大量数据输出,可以考虑在/scratch目录中进行运算。由于/scratch属于

本地硬盘,数据不通过网络转移到nfs的/home目录,从而减少了对网络带宽的占用。

 

9. Benchmarks

 

THE DL_POLY BENCHMARK

 The benchmark summarized below is designed to reflect the typical range of simulations undertaken by the molecular dynamicist. It includes 6 calculations carried out using the DL_POLY molecular dynamics code, and includes the following functionality

Benchmark 1: Simulation of a sodium-potassium disilicate glass (1080 atoms, 300 time steps);

Benchmark 2: Simulation of metallic aluminium with Sutton-Chen potential at 300K (256 atoms, 8000 time steps);

Benchmark 3: Simulation of valinomycin in 1223 water molecules (3837 atoms, 100  time steps);

Benchmark 4: Dynamic Shell model water structure (768 atoms, 1024 sites, 1000 time steps);

Benchmark 5: Dynamic Shell model MgCl2 structure (768 atoms, 1280 sites, 1000 time steps);

Benchmark 8: Simulation of a model membrane with 2 membrane chains, 202 solute  molecules and 2746 solvent molecules (3148 atoms, 1000 time steps).

 

 ******** SYSTEM 1 ***********************************

 Hardware

                Machine Name -- baobab.isis.unc.edu

                3 Master Nodes and 39 Compute Nodes Beowulf Cluster with a total of  84 Processors

                Tyan Thunder MP Motherboard

                Dual AMD Athlon 1600+ 1.4GHz MP Processor

                2GB DDR RAM on each node

                20GB EIDE Hard Drive for Operating System

                Myrinet Fiber PCI Adapter with 2MB

                Master nodes installed with RAID 5 SCSI Controller connected to 3  76GB Hard Drives

                Myrinet Switch with 64 port enclosure

 Operating System

                RedHat Linux 7.2 with XFS File System

                2.4.9-13SGI_XFS_1.0.2smp Kernel

 absoft ProFortran Compilers

           FORTRAN 77 (f77): Absoft FORTRAN 77 compiler version 5.0

           FORTRAN 90 (f90/f95): Absoft Fortran 90/95 compiler version 3.0

 

  Number of Processors  1       2      4    8     16

 ------------------------------------------------------

 Benchmark 1(seconds)  112.5  56.5  31.6  22.5  17.7

 Benchmark 2(seconds)  111.9  59.8  37.0  30.5  33.8

 Benchmark 3(seconds)  111.2  56.5  32.6  18.8  13.9

 Benchmark 4(seconds)  100.3  49.6  32.8  26.6  30.4

 Benchmark 5(seconds)  179.9  62.2  39.8  33.6  37.5

 Benchmark 8(seconds)  112.5  56.5  31.6  22.5  17.7

 ------------------------------------------------------

 

 ******** SYSTEM 2 ***********************************

 Hardware

                Machine Name -- gandalf.chem.unc.edu

                1 Master Nodes and 32 Compute Nodes Beowulf Cluster with a total of 33 Processors

                Intel(R) Pentium(R) 4 CPU 1700MHz

                1GB DDR RAM on each node

                20GB EIDE Hard Drive for Operating System

                100 M ether PCI Adapter

 Operating System

                RedHat Linux 7.1

 Fortran Compilers

           FORTRAN 77 (f77): GNU Fortran 0.5.26 20000731 (Red Hat Linux 7.1 2.96-81)  (g77)

           FORTRAN 90 (f90): VAST/f90 compiler (works with g77)

 

 Number of Processors  1       2      4    8     16

 ----------------------------------------------------

 Benchmark 1(seconds)  142.0  85.4  61.5  71.4  87.0

 Benchmark 2(seconds)  168.0  122.0 122.1 --    --

 Benchmark 3(seconds)  160.0  87.8  61.5  --    --

 Benchmark 4(seconds)  131.0  123.7 128.0 --    --

 Benchmark 5(seconds)  212.0  131.7 158.2 --    --

 Benchmark 8(seconds)  121.0  98.9  115.7 --    --

 ---------------------------------------------------

 

 ******** SYSTEM 3 ***********************************

 Hardware

                Machine Name -- ding.simugroup

                1 Master Nodes and 6 Compute Nodes Beowulf Cluster with a total of 8 Processors

                Tyan S2466 Motherboard

                Dual AMD Athlon 2000+ 1.66GHz MP Processor

                1GB DDR RAM on each node

                80GB EIDE Hard Drive for Operating System

                100 M ether PCI Adapter

 Operating System

                RedHat Linux 8.0

 Fortran Compilers

           FORTRAN 77 (f77): GNU Fortran 0.5.26 20000731 (Red Hat Linux 7.1 2.96-81)  (g77)

           FORTRAN 90 (f90): VAST/f90 compiler (works with g77)

 

 Number of Processors  1       2      4      8     16

 ----------------------------------------------------

 Benchmark 1(seconds)  76.78  38.60  36.85  53.82  --

 Benchmark 2(seconds)  73.94  38.73  549.7  106.7  --

 Benchmark 3(seconds)  78.77  40.47  35.25  36.75  --

 Benchmark 4(seconds)  81.65  40.00  583.8  686.6  --

 Benchmark 5(seconds)  144.3  45.52  82.20  154.2  --

 Benchmark 8(seconds)  60.66  38.12  76.88  112.4  --

 ---------------------------------------------------

 

 ******** SYSTEM 4 ***********************************

 Hardware

                Machine Name -- Legend 1000M ether net

                1 Master Nodes and 8 Compute Nodes Beowulf Cluster with a total of 18 Processors

                Intel(R) Pentium(R) XEON CPU 2.4GHz

                1000 M ether PCI Adapter

 Operating System

                RedHat Linux

 Fortran Compilers

           Intel Linux FORTRAN 90

 

 Number of Processors  1       2      4       8     16

 ----------------------------------------------------

 Benchmark 1(seconds)  66.67  39.63  28.26  25.75  31.34

 Benchmark 2(seconds)  65.04  44.53  39.62  41.45  61.54

 Benchmark 3(seconds)  71.92  41.92  27.54  26.56  22.81

 Benchmark 4(seconds)  56.34  35.39  28.62  30.76  51.99

 Benchmark 5(seconds)  77.01  53.25  52.85  67.04  87.94

 Benchmark 8(seconds)  59.28  40.69  32.46  43.97  36.16

 ---------------------------------------------------

 

 ******** SYSTEM 5 ***********************************

 Hardware

                Machine Name -- Legend Myrinet

                1 Master Nodes and 8 Compute Nodes Beowulf Cluster with a total of 18 Processors

                Intel(R) Pentium(R) XEON CPU 2.4GHz

                1000 M ether PCI Adapter

 Operating System

                RedHat Linux

 Fortran Compilers

           Intel Linux FORTRAN 90

 

 Number of Processors  1       2      4    8     16

 ----------------------------------------------------

 Benchmark 1(seconds)    

 Benchmark 2(seconds)  

 Benchmark 3(seconds)  

 Benchmark 4(seconds)  

 Benchmark 5(seconds)  

 Benchmark 8(seconds)  

 ---------------------------------------------------

 

 

10. MPI 入门

 

Happy Computing !

©中国科学院化学研究所高分子物理实验室

欢迎转载引用,烦请注明出处 2003.1.24

如有问题请与廖琦联系。Email: [email protected] 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.