计算化学公社

 找回密码 Forget password
 注册 Register
Views: 12817|回复 Reply: 14
打印 Print 上一主题 Last thread 下一主题 Next thread

[集群维护] 本地HPC高性能集群的建立

[复制链接 Copy URL]

216

帖子

3

威望

4470

eV
积分
4746

Level 6 (一方通行)

跳转到指定楼层 Go to specific reply
楼主
本帖最后由 youyno 于 2016-11-27 22:02 编辑

网上有许多关于建立集群的相关网文,但是感觉都是在虚拟机上实现的,实际操作过程中其实会遇到很多问题,所以在这里写一个我最近建立HPC集群的经验。
       这个集群是基于24台全新的DELL OptiPlex7040商务台式机,CPU是I7 6700 3.4GHz 四核八线程,每台机器两条8G DDR4 2133MHz内存,其中3台配置四条用于高水平大体系的计算,这样的配置四核跑高斯简直就是飞起来了,比超算强太多。除此之外,我们更看重的是DELL的三年质保,也就是三年之内随便你折腾,三年之后再把淘汰下来的机子直接办公使用也是很不错的选择。说了他的优点,这个集群的缺点在于很难跨节点并行,虽然我们所用的网线、交换机、网卡都是千兆,但是毕竟不是专业的,要不然要超算有何用。
所需器材:机柜2个(PDU已配好)、24口千兆交换机、网线24根(长度视机器与交换机的距离而定)、24台DELL OptiPlex7040商务台式机、千兆网卡1张、Centos7.0系统盘一张
过程:
1、主节点的安装:24台机器要一台台去装系统实在是太费时,通过了解知道有一个基于centos的Rockcluster系统是专门用集群的建立的,于是我先在虚拟机上尝试成功,发现确实装好一台机器之后就可以以这台机器为主节点直接控制分节点系统的安装。带着这样的思路我以主节点的配置在一台机器(这台机器插入了两张网卡,一张系统自带一张自行购买的)上安装好Rockcluster,然后将主节点和另一台新机器同时插入到一台千兆交换机中,企图用DHCP技术让其控制新机器的安装,结果经过百般调试,发现无法完成。从后来的安装中我发现,Rockcluster安装时必须要有两张网卡,而Rockcluster只能识别我新买的那张网卡而无法识别本机自带的网卡,导致系统无法把消息传递出去。另一方面,在我配置好网卡之后还是没有办法自动完成DHCP安装系统,至于原因,到现在还是没有想明白。但是主节点我还是安装好了,两张网卡,一张用于使用者在实验室登陆,一张用于集群内部通讯。虽然安装的是Rockcluster但是我们实际上在后面的配置中是没有用到任何他作为集群系统的功能。
安装完主节点后设置主机名为Frontend,并在/etc/hosts中将主节点的两张网卡的IP分别写入,如下:
10.1.1.101      Frontend  #主节点连接到交换机的网卡IP
192.168.88.12  Frontend #学校内网IP用于从外部访问,直接与学校局域网相连
同时最好此时将分节点需要设置的IP也放进来如下
10.1.1.102     node002
.......
10.1.1.124     node024

2、分节点的系统安装:给23台机子用光盘装centos7.0,我花了一天的时间装好,centos的安装很简单,需要注意:
a、选择安装类型时选择Compute node,并把右边所有的安装包选项都选中;
b、安装过程中可以把网卡和主机名在网络设置处配置好,分节点设置IP分别为10.1.1.102~124,主机名分别为node002~nodes024(由于这款机子并不能兼容centos,所以在安装时看不见可用于配置的网卡,我只能待系统安装好之后,在网上下载驱动配置网卡);
c、所有系统都安装好之后,将其通过网线与交换机相连,这时应该可以相互之间ping通的。
d、主节点和分节点都要关闭防火墙

3、SSH无密码访问:其实这个功能对于集群构建可有可无,但是为了之后配置方便需要在root用户下形成ssh无密码访问,具体做法:
a、切换到主节点的root用户根目录,执行命令ssh-keygen -t rsa 一直回车,在.ssh下生成id_rsa id_rsa.pub
b、执行cat id_rsa.pub >> authorized_keys
c、用scp将authorized_keys传递到分节点node002的/root/.ssh/目录下,命令为scp authorized_keys root@node002:/root/.ssh/authorized_keys;
d、通过ssh root@node002命令切换到node002节点上并执行a、b步骤所提到的命令,并将其传至下一节点,以此类推一直到node024;
e、这是node024节点中的authorized_keys应该包含了所有节点的公钥,只需将其分别传递到各个节点的/root/.ssh/目录下即可完成ssh的无密码访问。

4、NFS文件共享
相关的博文很多没有必要重复可参考http://www.linuxidc.com/Linux/2015-05/117378.htm
或自行baidu
需要注意的是:
a、需要把挂出和挂载信息分别写入主节点的/etc/exports和分节点的/etc/fstab,用于开机启动;
b、共享出去的目录名称和路径必须与分节点接收的目录名称和路径完全一致,如果没有,就需要自行创建挂载点(如果不一致,稍后进行NIS时会无法定位到每个用户的根目录);
c、在以后的使用过程中出现开关机的时候,必须先打开主节点,不然分节点无法接收到相关的挂载信息,要想恢复就需要到没有挂载上的分节点上执行mount -a;

5、NIS的配置
a、现在NIS的配置已经十分简单,root下直接执行setup命令进入到Authentication configuration中用空格键选中Use NIS然后用Tab键切换到Next,设置域名和主机名,所有的机器中这两项应该设置为相同,主机名必须为管理节点的主机名,我这里是Frontend,而域名则随便设置;
b、root到分节点执行命令时会发现NIS服务的安装包没有安装完整,这时你需要将你下载的Centos-7.0的iso镜像文件解压,在Packages中找到ypbind-1.37.1-7.el7.x86_64.rpm和yp-tools-2.14-3.el7.x86_64.rpm两个安装包将其用SSH传递到主节点中某个挂载出去的目录下,然后以root用户分别在各个分节点上执行 rpm -ivh yp*;
c、安装完成后用setup将NIS服务配置好,为了测试NIS是否配置好可以执行yptest测试一下;
d、将所有节点的NIS服务配置好之后可以开始在主节点上创建用户,创建的用户的根目录必须设置到挂载出去的目录,将用户和密码都设置好之后需要同步一下在主节点上以root用户分别执行:
/usr/lib64/yp/ypinit -m     
/etc/init.d/ypserv restart
/etc/init.d/yppasswdd restart
这是你可以切换到你刚刚创建的普通用户下并可以在该用户下用ssh node002登陆到任何一个节点上,至此NIS服务配置完成。

6、Torque的安装与配置
a、torque的安装很简单就是下载-解压-configure-make-make install具体配置过程可参考
http://wenku.baidu.com/link?url=Gwb5v1LL59vfWmozkvmGsDvuJ0KXKXJpIpBulzSZ1xmqL1t1uyPe9IXdB8AG278ROqR71-h518ebVDdVYds1cLhOFjUqi6NRx9ZT_tSRyje
b、nodes文件中需要指定每一个节点可用的核数,由于这批机器是四核八线程的,所以你如果没有关闭超线程的话可以将每个节点和核数设为8,如果你不想使用超线程而且有懒得一台台机器去关闭超线程,直接在这里设置每个节点的核数为4就好,如下
node002 np=4
......
node024 np=4
这里没有把主节点写入是为了让它更好的分配任务处理数据,而不用于计算
b、将主节点的服务都Torque都安装好之后就可以开始创建队列,注意由于机器都是四核的你必须设置限制每个任务的最大可用核数(resources_max.ncpus)为4,如果你要用到超线程就把b中np=8并把resources_max.ncpus设置为8
c、至此整个集群的配置就已经完成,你可以用qsub 脚本提交任务了,提交任务时也需要将在脚本和输入文件中限制核数为4节点数为1。

最后重申一下,本文的目的不在于手把手教你如何创建HPC集群,有很多网文已经讲了不想赘述,而是理清整个思路,以及实际安装过程中可能遇到的各种各样的问题。

评分 Rate

参与人数
Participants 11
威望 +1 eV +38 收起 理由
Reason
hxmals + 4 赞!
zin + 1 好物!
Mikasa + 5 好物!
linuxprobe + 1
负暄 + 1 好物!
wugaxp + 5 好物!
qwoop + 5
greatzdk + 5 好物!
liyuanhe211 + 5 好物!
jason + 6
sobereva + 1

查看全部评分 View all ratings

Monte Carlo

17

帖子

0

威望

68

eV
积分
85

Level 2 能力者

2#
发表于 Post on 2018-5-20 21:28:03 | 只看该作者 Only view this author
cluster还好,Lustre安装是个大坑,openhpc不错,以后arm hpc也可以用,ansible不错。

353

帖子

0

威望

2027

eV
积分
2380

Level 5 (御坂)

真 掘墓者

3#
发表于 Post on 2018-5-20 23:45:16 | 只看该作者 Only view this author
本帖最后由 kyuu 于 2018-5-21 00:03 编辑

这位同学,你一定是对集群,高性能和HPC有什么误解

评分 Rate

参与人数
Participants 1
eV +1 收起 理由
Reason
一颗赛艇 + 1 赞!

查看全部评分 View all ratings

圣诞刨坟忙

593

帖子

12

威望

4720

eV
积分
5553

Level 6 (一方通行)

密度泛函·小卒

4#
发表于 Post on 2018-5-21 08:26:41 | 只看该作者 Only view this author
kyuu 发表于 2018-5-20 23:45
这位同学,你一定是对集群,高性能和HPC有什么误解

2007年我刚做本科毕设。那时候我看我师兄就跟楼主这样玩儿的。
刀片?机架?不存在的!穷穷穷。
当然我师兄跟楼主有一个不同。师兄是万年攒机党。这个“坏”习惯深深影响了我……

一出生响亮登场,十几岁快乐成长,
二十岁天天向上,三十岁基本定向,
四十岁拼命打创,五十岁回首一望,
六十岁告老还乡,七十岁搓搓麻将,
八十岁躺在床上,九十岁挂在墙上,
人生一世,匆匆忙忙,生得嘹亮,走得凄凉!
生活就像五味瓶,酸甜苦辣难消停!
该吃吃,该喝喝,遇事别去心里搁,
想哭哭,想笑笑,烦恼就往云外抛,
记住甜,忘掉苦,亲人朋友好相处,
心情好,最重要,自我麻痹乐逍遥!

516

帖子

1

威望

5052

eV
积分
5588

Level 6 (一方通行)

5#
发表于 Post on 2018-5-21 08:46:36 | 只看该作者 Only view this author
选development work station,就可以直接安装NIS服务了

353

帖子

0

威望

2027

eV
积分
2380

Level 5 (御坂)

真 掘墓者

6#
发表于 Post on 2018-5-21 13:15:56 | 只看该作者 Only view this author
yjcmwgk 发表于 2018-5-21 08:26
2007年我刚做本科毕设。那时候我看我师兄就跟楼主这样玩儿的。
刀片?机架?不存在的!穷穷穷。
当然我 ...

密度泛函·卒

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
一颗赛艇 + 5 233333

查看全部评分 View all ratings

圣诞刨坟忙

593

帖子

12

威望

4720

eV
积分
5553

Level 6 (一方通行)

密度泛函·小卒

7#
发表于 Post on 2018-5-21 14:32:30 | 只看该作者 Only view this author

你没卒是因为你一直富
一出生响亮登场,十几岁快乐成长,
二十岁天天向上,三十岁基本定向,
四十岁拼命打创,五十岁回首一望,
六十岁告老还乡,七十岁搓搓麻将,
八十岁躺在床上,九十岁挂在墙上,
人生一世,匆匆忙忙,生得嘹亮,走得凄凉!
生活就像五味瓶,酸甜苦辣难消停!
该吃吃,该喝喝,遇事别去心里搁,
想哭哭,想笑笑,烦恼就往云外抛,
记住甜,忘掉苦,亲人朋友好相处,
心情好,最重要,自我麻痹乐逍遥!

353

帖子

0

威望

2027

eV
积分
2380

Level 5 (御坂)

真 掘墓者

8#
发表于 Post on 2018-5-21 14:36:41 | 只看该作者 Only view this author
yjcmwgk 发表于 2018-5-21 14:32
你没卒是因为你一直富

还好吧,不能富可敌国,至少从来没为钱愁过
圣诞刨坟忙

6

帖子

0

威望

19

eV
积分
25

Level 2 能力者

9#
发表于 Post on 2019-8-19 11:21:52 | 只看该作者 Only view this author
请问楼主  24个结点间的通信问题怎么解决的  这样的集群结点间通信效率低  有实用价值不

545

帖子

0

威望

3117

eV
积分
3662

Level 5 (御坂)

10#
发表于 Post on 2019-8-19 13:58:27 | 只看该作者 Only view this author
dyp 发表于 2019-8-19 11:21
请问楼主  24个结点间的通信问题怎么解决的  这样的集群结点间通信效率低  有实用价值不

正常使用时尽量避免跨节点通信……

6

帖子

0

威望

19

eV
积分
25

Level 2 能力者

11#
发表于 Post on 2019-8-19 14:09:04 | 只看该作者 Only view this author
k64_cc 发表于 2019-8-19 13:58
正常使用时尽量避免跨节点通信……

那怎么实现多结点并行呢  如mpi

545

帖子

0

威望

3117

eV
积分
3662

Level 5 (御坂)

12#
发表于 Post on 2019-8-19 14:19:02 | 只看该作者 Only view this author
dyp 发表于 2019-8-19 14:09
那怎么实现多结点并行呢  如mpi

装MPI,就实现了。但是对于穷人来说跨节点并行往往得不偿失,所以不推荐。

6

帖子

0

威望

19

eV
积分
25

Level 2 能力者

13#
发表于 Post on 2019-8-19 14:32:26 | 只看该作者 Only view this author
k64_cc 发表于 2019-8-19 14:19
装MPI,就实现了。但是对于穷人来说跨节点并行往往得不偿失,所以不推荐。

那不还涉及结点间通信吗

545

帖子

0

威望

3117

eV
积分
3662

Level 5 (御坂)

14#
发表于 Post on 2019-8-19 15:04:19 | 只看该作者 Only view this author
dyp 发表于 2019-8-19 14:32
那不还涉及结点间通信吗

你问节点间通信效率低有没有实用价值,我说正常使用时应该尽量避免节点间通信。然后你问如何使用MPI,我说你装一个MPI就能直接用了。

“要不要用”和“怎么用”是两个不相关的问题。

2301

帖子

1

威望

5473

eV
积分
7794

Level 6 (一方通行)

15#
发表于 Post on 2019-8-19 20:37:44 | 只看该作者 Only view this author
dyp 发表于 2019-8-19 11:21
请问楼主  24个结点间的通信问题怎么解决的  这样的集群结点间通信效率低  有实用价值不

本来我写了一些回复, 然后被提示”存在不良信息无法发表“。 那就算了。

建议看关于贝奥武夫集群相关内容。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 15:34 , Processed in 0.183509 second(s), 22 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list