中国科学院化学研究所高分子物理实验室之Beowulf.docx
《中国科学院化学研究所高分子物理实验室之Beowulf.docx》由会员分享,可在线阅读,更多相关《中国科学院化学研究所高分子物理实验室之Beowulf.docx(12页珍藏版)》请在冰豆网上搜索。
![中国科学院化学研究所高分子物理实验室之Beowulf.docx](https://file1.bdocx.com/fileroot1/2023-1/22/a794e422-81e0-4ed1-8350-e154d7f03592/a794e422-81e0-4ed1-8350-e154d7f035921.gif)
中国科学院化学研究所高分子物理实验室之Beowulf
HowtoBuildourDing?
©中国科学院化学研究所高分子物理实验室
欢迎转载引用,烦请注明出处2003.1.24
*************************************
1.什么是Beowulf?
2.节点硬件
3.网络硬件
4.Linux操作系统的安装
5.与Beowulf相关的服务:
NFS,SSH,RSH
6.手动并行的实现:
LAMMPI
7.Beowulf的任务管理:
DQS的安装与设置
8.DQS使用指南
9.Benchmark
10.MPI入门
*************************************
1.什么是Beowulf?
我们搭建的四节点八处理器微机机群“ding”,属于典型的Beowulf。
Sterling在他的经典著作中给出的Beowulf的定义是:
“ABeowulfisacollectionofpersonalcomputers(PCs)interconnetedbywidely
avaiblenetworkingtechnologyruninganyoneofsevralopen-sourceUnix-like
operationsystems.”
从这个定义,Beowulfcluster的设计思想强调硬件(包括单个节点和内部互连的网络)
和软件(包括操作系统和并行协议)在市面上易于获得。
只有这样,才能从根本上保证
Beowulf的成本标度性(scalability),也就是成本与计算能力的线性关系。
任何导致
成本与计算能力不成比例的“技术改进”,都违反了Beowulf设计思想的初衷。
网上关于Beowulf的资料浩如烟海,但中文的不多,可能与不喜欢归档的习惯有关。
这也是
我主要用中文写这个说明的原因。
ding是我们的第一个机群,还没有仔细的tuning,如果有
重要变化,我会及时更新说明。
2.节点硬件
CPU:
AMDAthlonMP2000+(1600MHz)withfun ____ 8X¥1,850
主板:
TyanS2466-4MwithAMD760MPXchipset ____ 4X¥1,950
8XKingston512MDDRRAM ____ 8X¥1,200
Seagate80GIDEHardDisk ____ 4X¥ 865
TNT16M ____ 4X¥200
Case&Power ____ 4X¥950
DellFlatMonitor19" ____ 1X¥3,200
Keybord,mouse ____ 1X¥170
CDROMinmasternode ____ 1X¥300
KVMswitch ____ 1X¥500
购买KVMswitch和显示卡是为了调试方便,其实TyanS2466主板支持displayredirection
可以不要显示卡启动。
购买价格是2002年10月北京中关村的市场价格。
3.网络硬件
D-linkDES1016R+100M16portswitches ____ 1X¥1000
3COM905C-TXNICintegrestedinMainborad ____ N/A
3COM905C-TXNICinmasternode ____ 1X¥200
total:
____ ¥47,500(taxincluded)
整个系统的购买和安装约耗时一个星期左右。
在每个CASE里面又让
厂家加装了两个风扇。
4.Linux操作系统的安装
我们在每一个节点上都用CDROM安装了同样的Redhatlinux8.0,选择安装“everything”,
免得以后单独安装组件。
由于只有一个CDROM,从光盘分别安装显得十分笨拙,以后需要学习
如何从网络远程启动进行安装。
硬盘分区表(所有节点都一样):
had1 /boot ext3 102M
hda2 /scratch ext3 20,003M
hda3 swap 2,000M
hda4 extended 54,212M
hda5 / ext3 54,212M
单独划出/scratch分区是为了有并行任务时候作为临时存储空间。
我们的masternode配有双网卡,一个对外的网卡IPaddressis159.226.76.25,昵称为ding,
对内的网卡IPaddressis192.168.0.1,即a01节点。
其余内部节点设定为a02,a03,a04,
做为slavenodes,IPaddress依此设定为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
所有的用户信息都存储在masternode上的/etc/passwd,/etc/shadow和/etc/shadow上。
其他
节点具有与masternode一样的上述三个文件。
我们通过NFS使各节点使用masternode的/usr和/home,这样可以只在masternode进行
软件的安装,升级和管理。
所有非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.loginasrootata01
B.useraddNEWUSER
C.passwdNEWUSER
D.rcp/etc/passwd,/etc/shadow,/etc/grouptoothernodes
E.suNEWUSER
F.ssh-keygen-trsa
G.cpid_rsa_pubauthorized_key
F.sshevery_nodes
可以用newuser和nosshpw两个script来做这个增加新用户的任务。
这么做能够消除口令的前提是
所有非root用户具有一样的位于a01上的目录。
这是用前述NFS来实现的。
其他无关的服务均可关闭,以减少网络通信。
实际上,测试表明rsh比ssh更有效。
因此为了兼故
安全与效率,我只在master节点上让外部登录的用户使用SSH而禁止使用RSH;进入ding后禁止
使用SSH而只使用RSH。
6.手动并行的实现:
LAMMPI
我们采用目前流行的MPI标准实现并行。
redhatlinux8.0带有lamMPI,不用另外安装。
完成上述设置之后,就可以“手动地”进行并行计算了。
所谓“手动”,就是用户自己分配
CPU,而不是通过排队系统进行管理。
这在单用户的情况下是可以的,但如果有多个用户,难免
会出现CPU争用,导致loadunbalance。
这里暂时考虑单用户情况,因为这是实现并行的基础。
sometricks:
A.Bydefault,theremoteshellissshforlambootinredhatlinux8.0.Ifyouprefer
rsh(itisalittlefasterthanssh),youcandoitbyadding
exportLAMRSH=rsh
in/etc/profile
B.HowtouselambootwithoutdefiningCPU#
/etc/profile:
exportLAMHOST=/etc/bhost.def
/etc/bhost.def:
a02 CPU=2
a03 CPU=2
a04 CPU=2
因为我们是双CPU的节点。
这样设置之后,我们就可以用如下命令编译和运行欢迎程序hello.c(见sterlingp166)
mpicc-ohellohello.c
lamboot
mpirun-np6hello
wipe
7.Beowulf的任务管理:
DQS的安装与设置
DQS(DistributedQueueingSystem)是一个任务管理系统,能够在homogeneous和heterogenous
计算机网络上实现负载均衡,任务优先和简化。
简单地说,它根据用户任务的优先级进行排对,
如果有合适的CPU,它自动进行分配。
我们在ding上安装了DQS3.3.2,并且限定了每个用户最多能同时运行四个任务,但是每个任务的
CPU个数没有限制。
DQS执行文件:
/usr/bin/qstat
/usr/bin/qsub
/usr/bin/qdel
DQS基本配置文件:
/etc/dqs/conf_file
/etc/dqs/resolv_file
另外可以用qconf来动态配置对列
用qmod-equeue来激活队列
DQSDemon:
Masternode:
/usr/sbin/qmaster
Slavenode:
/usr/sbin/dqs_execd
8.DQS使用指南
强调一遍,所有在内部节点上的计算任务都得通过DQS提交,不允许在内部节点上手动执行程序。
用户从本地机器ssh登录到ding后,请不要利用rsh进入内部节点。
所有程序的编译和调试都在中心节点(a01)上完成,然后通过qsub命令提交任务进行排队;然后可以
通过qstat命令查看排队情况。
提交任务以后,可以通过qdel命令取消正在执行或排队的任务。
我们在ding上安装了DQS3.3.2,并且限定了每个用户最多能同时运行四个任务,但是每个任
务的CPU个数没有限制。
多余四个的任务将进入最大任务队列中等待。
用户可以用qstat-f来查看目前各个用户使用CPU的情况
用qsub来提交并行和串行任务
用qdel来删除不在需要的任务
如果发现qdel不能删除任务,请通知系统管理员来处理.
如果并行计算过程中有大量数据输出,可以考虑在/scratch目录中进行运算。
由于/scratch属于
本地硬盘,数据不通过网络转移到nfs的/home目录,从而减少了对网络带宽的占用。
9.Benchmarks
THEDL_POLYBENCHMARK
Thebenchmarksummarizedbelowisdesignedtoreflectthetypicalrangeofsimulationsundertakenbythemoleculardynamicist.Itincludes6calculationscarriedoutusingtheDL_POLYmoleculardynamicscode,andincludesthefollowingfunctionality
Benchmark1:
Simulationofasodium-potassiumdisilicateglass(1080atoms,300timesteps);
Benchmark2:
SimulationofmetallicaluminiumwithSutton-Chenpotentialat300K(256atoms,8000timesteps);
Benchmark3:
Simulationofvalinomycinin1223watermolecules(3837atoms,100timesteps);
Benchmark4:
DynamicShellmodelwaterstructure(768atoms,1024sites,1000timesteps);
Benchmark5:
DynamicShellmodelMgCl2structure(768atoms,1280sites,1000timesteps);
Benchmark8:
Simulationofamodelmembranewith2membranechains,202solutemoleculesand2746solventmolecules(3148atoms,1000timesteps).
********SYSTEM1***********************************
Hardware
MachineName--baobab.isis.unc.edu
3MasterNodesand39ComputeNodesBeowulfClusterwithatotalof84Processors
TyanThunderMPMotherboard
DualAMDAthlon1600+1.4GHzMPProcessor
2GBDDRRAMoneachnode
20GBEIDEHardDriveforOperatingSystem
MyrinetFiberPCIAdapterwith2MB
MasternodesinstalledwithRAID5SCSIControllerconnectedto376GBHardDrives
MyrinetSwitchwith64portenclosure
OperatingSystem
RedHatLinux7.2withXFSFileSystem
2.4.9-13SGI_XFS_1.0.2smpKernel
absoftProFortranCompilers
FORTRAN77(f77):
AbsoftFORTRAN77compilerversion5.0
FORTRAN90(f90/f95):
AbsoftFortran90/95compilerversion3.0
NumberofProcessors124816
------------------------------------------------------
Benchmark1(seconds)112.556.531.622.517.7
Benchmark2(seconds)111.959.837.030.533.8
Benchmark3(seconds)111.256.532.618.813.9
Benchmark4(seconds)100.349.632.826.630.4
Benchmark5(seconds)179.962.239.833.637.5
Benchmark8(seconds)112.556.531.622.517.7
------------------------------------------------------
********SYSTEM2***********************************
Hardware
MachineName--gandalf.chem.unc.edu
1MasterNodesand32ComputeNodesBeowulfClusterwithatotalof33Processors
Intel(R)Pentium(R)4CPU1700MHz
1GBDDRRAMoneachnode
20GBEIDEHardDriveforOperatingSystem
100MetherPCIAdapter
OperatingSystem
RedHatLinux7.1
FortranCompilers
FORTRAN77(f77):
GNUFortran0.5.2620000731(RedHatLinux7.12.96-81)(g77)
FORTRAN90(f90):
VAST/f90compiler(workswithg77)
NumberofProcessors124816
----------------------------------------------------
Benchmark1(seconds)142.085.461.571.487.0
Benchmark2(seconds)168.0122.0122.1----
Benchmark3(seconds)160.087.861.5----
Benchmark4(seconds)131.0123.7128.0----
Benchmark5(seconds)212.0131.7158.2----
Benchmark8(seconds)121.098.9115.7----
---------------------------------------------------
********SYSTEM3***********************************
Hardware
MachineName--ding.simugroup
1MasterNodesand6ComputeNodesBeowulfClusterwithatotalof8Processors
TyanS2466Motherboard
DualAMDAthlon2000+1.66GHzMPProcessor
1GBDDRRAMoneachnode
80GBEIDEHardDriveforOperatingSystem
100MetherPCIAdapter
OperatingSystem
RedHatLinux8.0
FortranCompilers
FORTRAN77(f77):
GNUFortran0.5.2620000731(RedHatLinux7.12.96-81)(g77)
FORTRAN90(f90):
VAST/f90compiler(workswithg77)
NumberofProcessors124816
----------------------------------------------------
Benchmark1(seconds)76.7838.6036.8553.82--
Benchmark2(seconds)73.9438.73549.7106.7--
Benchmark3(seconds)78.7740.4735.2536.75--
Benchmark4(seconds)81.6540.00583.8686.6--
Benchmark5(seconds)144.345.5282.20154.2--
Benchmark8(seconds)60.6638.1276.88112.4--
---------------------------------------------------
********SYSTEM4***********************************
Hardware
MachineName--Legend1000Methernet
1MasterNodesand8ComputeNodesBeowulfClusterwithatotalof18Processors
Intel(R)Pentium(R)XEONCPU2.4GHz
1000MetherPCIAdapter
OperatingSystem
RedHatLinux
FortranC