LinuxService- MPI实现高性能集群

1 集群介绍

1.1 集群概念

集群(Cluster):是指由一批具备相同或类似功能的物品组成的,提供更大、更强、更稳定功能的这样一种组合。集群通常可以定义为两台或两台以上相互独立的计算机,对外表现为一个整体系统。

节点(Node):简单叙述即集群就是一组计算机在一起合作为用户提供一组网络资源,而集群组中的单一的计算机就被称为“节点(node)”。硬件的型号及系列一般要一致。集群中的两个节点之间一般有2条心跳线连接,用于相互监控彼此的健康状态。

集群必备服务:NTP(时间必须得同步),日志集中管理服务(RSYSLOG),DNS服务,共享存储(ISCSI)

1.2 集群分类

1)高可用集群(high available cluster,简写为HA):就是一个机子宕机了,立马能有其他机子顶上。

计算机系统的可用性(availability) 是通过系统的可靠性(reliability) 和可维护性(maintainability) 来度量的。工程中通常用平均无故障时间(MTTF) 来度量系统的可靠性,而平均维修时间(MTTR) 来度量系统的可维护性。可用性=维修时间/总时间*100% 。

HA 集群的主要目的是为了用户提供不间断的服务。当使用了HA 集群时如果由其中一个node出现了问题,自动会有集群中其他节点接替问题节点对外提供服务。在Linux 系统中实现HA 集群可使用Heartbeat 、keepalived(会讲)、Haproxy

2)高性能集群(high performance cluster,简写为HPC):把计算的东西分配到各个CPU进行运算,再把计算结果整合得出最终的结果

实现高性能集群主要目的是将多台计算机的计算能力合并到一起从而实现一个超越单台计算机计算能力的强力系统。在Linux 平台中实现高性能集群的软件是Beowulf 及MPI(会讲)

3)负载均衡集群(Load Balancing Cluster):减少单个机子的负载

一般使用基于软件(如LVS)的负载均衡集群,当其不够用时就得使用基于硬件的负载均衡器(如F5)

负载均衡(LB):LB 与HA 或高性能有些类似也有一定的区别。负载均衡不仅仅考虑的内容与高可用一样,同时也需要为用户提供不间断的服务。但LB还要保证服务的质量。

LB 在收取到一个客户的响应时会通过某种方法查看集群中的node 能否为用户提供符合质量要求的服务。如果不可以则LB 将把这个请求转发给另一个可以满足质量要求的node 。这样可以降低某个服务node 出现大量资源被占用的情况

在Linux 中要实现LB 集群可采用LVS 、MOSIX等软件

2 高性能集群

实现高性能集群主要目的是将多台计算机的计算能力合并到一起, 使用并行计算软件(MPICH)实现并行计算从而实现一个超越单台计算机计算能力的强力系统。 MPICH 就是符合MPI 标准通讯协议的一套软件语言的函数库

2.1 概念

1)提高CPU计算能力(即逻辑CPU数)的两个方向,横向扩展:增加计算单元;纵向扩展:换硬件。计算公式:

逻辑CPU数=物理CPU数*核数

逻辑CPU数=物理CPU数*核数*2             //如果物理CPU开了超线程则还要*2

2)CPU计算的方式:

串行计算:指在单个计算机( 拥有单个中央中立单元) 上执行软件写操作。CPU 逐个使用一系列指令解决问题。 为了加快处理速度,在原有的串行计算的基础上演变出并行计算   

并行计算:指同时使用多种计算机资源解决计算问题的过程。 为执行并行计算,计算资源应包括一台配有多处理器的计算机、 一个与网络相连的计算机专有编号,或者两者结合。 并行计算的主要目的用于解决大型且复杂的计算问题,还可以利用非本地资源,可以使用多台计算机集合在一起共同处理、计算机来取代昂贵的大型计算机或大型服务器

3)基于高性能集群HPC的并行计算通讯标准MPI(messages passing interface)

MPI 本身并非一个软件,它仅仅是一个规格很严密的通讯标准。其主要功能是在处理并行运算之间节点的资料交换。

2.2 基于MPI的高性能集群(HPC)的实现

1)实验环境:三台同一个网络段的主机,分别为server 192.168.1.2,node1 192.168.1.3,node2 192.168.1.5 。并且为每台主机设置静态的域名解析。在server端配置ssh秘钥登录。

2)在每个虚拟机上都要设置:

第一步 安装软件    #yum  install    gcc   gcc-gfortran   gcc-c++   -y

//安装了支持C语言的插件

第二步 将下载下来的压缩包解压  #tar  xvfz  mpich-3.1.3.tar.gz

然后  #cd  mpich-3.1.3

然后  #./configure  &&  make  &&  make  install

第三步 创建HPC所需的主机说明文件  #vim  /root/hpcnode,该文件的路径可以自己决定,里面为各个主机的主机名。

server

node1

node2

注:可以通过scp将该文件传输到其他虚拟机上,如  #scp  root@server:/root/hpcnode  /root

3)在server端进行测试

#mpiexec  -n   6   -machinefile   /root/hpcnode   /root/mpich-3.1.3/examples/cpi

注:-n:处理几次,后面要指定总计算次数,结果可见处理进程被平均分配至集群内的每台机器上;-machinefile指定hpc文件(里面记录的是哪个是server,哪个是节点),最后的路径/root/mpich-3.1.3/examples/cpi是指要计算的例子的路径。


转载请注明出处,谢谢!

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼刺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值