How to Build our Ding ?
©中国科学院化学研究所高分子物理实验室
欢迎转载引用,烦请注明出处 2003.1.24
*************************************
5. 与Beowulf相关的服务:NFS, SSH, RSH
*************************************
我们搭建的四节点八处理器微机机群“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,如果有
重要变化,我会及时更新说明。
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月北京中关村的市场价格。
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里面又让
厂家加装了两个风扇。
我们在每一个节点上都用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)
进行切换。
所有的用户信息都存储在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。
我们采用目前流行的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
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
强调一遍,所有在内部节点上的计算任务都得通过DQS提交,不允许在内部节点上手动执行程序。
用户从本地机器ssh登录到ding后,请不要利用rsh进入内部节点。
所有程序的编译和调试都在中心节点(a01)上完成,然后通过qsub命令提交任务进行排队;然后可以
通过qstat命令查看排队情况。提交任务以后,可以通过qdel命令取消正在执行或排队的任务。
我们在ding上安装了DQS 3.3.2,并且限定了每个用户最多能同时运行四个任务,但是每个任
务的CPU个数没有限制。多余四个的任务将进入最大任务队列中等待。
用户可以用 qstat -f 来查看目前各个用户使用CPU的情况
用qsub来提交并行和串行任务
用qdel来删除不在需要的任务
如果发现qdel不能删除任务,请通知系统管理员来处理.
如果并行计算过程中有大量数据输出,可以考虑在/scratch目录中进行运算。由于/scratch属于
本地硬盘,数据不通过网络转移到nfs的/home目录,从而减少了对网络带宽的占用。
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)
---------------------------------------------------
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.