在 IBM POWER 服务器上使用 Infiniband 组建高性能计算集群.docx
- 文档编号:23359994
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:12
- 大小:160.92KB
在 IBM POWER 服务器上使用 Infiniband 组建高性能计算集群.docx
《在 IBM POWER 服务器上使用 Infiniband 组建高性能计算集群.docx》由会员分享,可在线阅读,更多相关《在 IBM POWER 服务器上使用 Infiniband 组建高性能计算集群.docx(12页珍藏版)》请在冰豆网上搜索。
在IBMPOWER服务器上使用Infiniband组建高性能计算集群
在IBMPOWER服务器上使用Infiniband组建高性能计算集群
罗明,软件工程师,IBM
卜俊辉,软件工程师,IBM
2011年5月10日
随着服务器处理速度的不断加快,高性能计算用户对网络传输速度也有着越来越高的要求,传统意义上的以太网,已经无法满足这种需求。
InfiniBand网络标准就是在这种情况下应运而生的,它在很大程度上解决了传统以太网络的高延迟瓶颈问题,运行速度可达到每端口2.5Gb/s到10Gb/s。
目前,IBMPOWER服务器和高性能计算软件套件对Infiniband提供了全面的支持,本文将逐一介绍InfiniBand技术架构,以及如何在IBMPOWER服务器的AIX系统上配置InfiniBand网络设备,并使用IBM高性能软件套件构建高性能计算集群。
Infiniband的基本概念
网络是常常被认为是路由器、交换机和插在服务器和存储设备上的电缆的集合。
在大部分人的印象里,网络用来连接服务器到其他服务器、存储和其他网络。
其实,这是一种普遍存在的对网络的片面看法,它将过多的注意力集中在处于网络底层结构的电缆和交换机上。
这是典型的“以网络为中心的”观点:
认为网络的构成架构应该决定应用程序的通讯模式。
Infiniband网络则基于“以应用程序为中心”的新观点。
它的提出来源于一个简单的问题:
如何让应用程序访问其他应用程序以及存储尽可能的简单、高效和直接?
如果以“应用程序为中心”的观点来思考I/O问题,就能得到一种与传统完全不同的网络架构。
Infiniband基于一种非常简单的原则:
提供一种易于使用的消息服务。
这个服务可以被用来与其他应用程序、进程或者存储进行通信。
应用程序不再向操作系统提交访问其他资源的申请,而是直接使用Infiniband消息服务。
Infiniband消息服务是一个非常高效、直接的消息服务,它摒弃了传统网络和应用程序之间消息传递的复杂结构。
直接使用Infiniband服务意味着应用程序不再依赖操作系统来传递消息,这大大提高了通信效率。
如图1,Infiniband消息服务可以在两个应用程序之间创建一个管道,来使应用程序之间直接进行通信,从而绕过了操作系统,大大提高了效率。
图1.Infiniband通信连接原理
回页首
Infiniband在HPC(Highperformancecomputing)领域的应用
高性能计算(HPC)是一个涵盖面很广的领域,它覆盖了从最大的“TOP500”高性能集群到微型桌面集群。
这篇文章里的我们谈及的HPC是这样一类系统,它所有的计算能力在一段时间内都被用来解决同一个大型问题。
换句话说,我们这里讨论的HPC系统不会被用来运行传统的企业应用,例如:
邮件、计费、web等。
一些典型的HPC应用包括:
大气建模、基因研究、汽车碰撞模拟、流体动态分析等。
图2显示了一个标准的高性能集群(HPC)的拓扑结构。
可以看到,在高性能计算集群中,各种设备是通过集群的交换网络连接到一起的。
所以,高性能计算系统除了需要高性能的中央处理器外,还需要高性能的存储和低延迟的进程间通信来满足科学运算的需求。
在大型集群中高速的交换网络扮演了非常重要的角色,甚至比CPU还要关键,处于集群的核心位置。
大量的实验数据表明,集群的性能和可扩展性主要和消息在节点之间的传递速度有关,这意味着低延迟的消息传递是被迫切需求的,而这正是Infiniband的优势。
下面我们就介绍下Infiniband为什么比传统网络更适合高性能计算系统。
图2.高性能计算集群拓扑
根据我们对高性能计算系统的认识,Infiniband的低延迟、高带宽和原生的通道架构对于此类系统来说是非常重要的。
低延迟的Infiniband网络可以在保证性能的前提下,增大集群的规模。
通道I/O架构则可以提供可扩展的存储带宽性能,并且支持并行文件系统。
说道HPC就不能不提MPI(MessagePassingInterface)。
MPI是应用在HPC上主要的消息传递中间件标准。
虽然MPI也可以应用在基于共享内存的系统上,但是,更多的则是被当作通讯层用作连接集群中的不同节点。
MPI通讯服务依赖于底层的提供节点间真正信息传递的消息服务。
Infiniband作为一种底层消息服务为MPI层提供了被称为RDMA(RemoteDirectMemoryAccess)的消息服务。
在上面一章,我们讨论了应用程序之间如何通过Infiniband通讯架构来实现直接的通讯,从而绕过操作系统。
在HPC中,我们可以认为HPC应用程式调用MPI通讯服务,而MPI则利用底层的RDMA消息服务实现节点间通讯。
这就使得,HPC应用程序具备了不消耗集群CPU资源的通讯能力。
IBMPE(ParallelEnvironment)软件作为一种MPI标准的实现,加入了对Infiniband的支持。
本文后面的章节会介绍如何启用PE对Infiniband的支持。
回页首
通过HMC为IBMPOWER服务器配置Infiniband适配器
要想使用Infiniband高速网络,首先需要对硬件进行配置。
IBMPower服务器提供了对Infiniband设备的原生支持,用户可以通过HMC进行统一管理。
通过虚拟化,用户可以方便的将单个12倍速的Infiniband端口分配给最多16个逻辑分区使用。
下面我们就一步步的介绍如何在一个逻辑分区上增加Infiniband设备。
1.首先点选需要配置Infiniband适配器的逻辑分区,在下拉列表中点选ConfigurationManageProfiles
图3.选择逻辑分区(查看大图)
2.在新弹出的窗口中选择Edit:
图4.编辑逻辑分区配置文件
3.在HCA的标签页面中,选中要分配的Infiniband设备,并点击Configure:
图5.选择Infiniband适配器
4.在新弹出的窗口中,为这个适配器分配一个GUIDindex:
图6.配置Infiniband设备属性
到此为止,我们就成功的为一个逻辑分区分配了一个新的Infiniband适配器。
接下来我只需要在AIX系统中配置一下,Infiniband适配器就可以正常使用了。
配置方法可以参考developerWorks中国上的文章“为AIX配置Infiniband”。
回页首
使用NIM安装高性能计算集群上的AIX系统
在使用HMC配置完Infiniband网络设备以后,我们还需要为集群中每台的节点上安装好AIX操作系统,由于集群的节点众多,使用网络安装是最常见快速的方法。
由于篇幅关系,本文在这里不再讲解如何使用AIX再带的网络安装系统(NIM)来自动化的安装AIX操作系统,具体方法请各位读者参考developerWorks相关文章“Unix/Linux系统自动化管理:
网络自动化安装”。
回页首
在IBMPOWER上配置IBMParallelEnvironment使用Infiniband网络
在安装完集群的系统后,要想让HPC应用软件使用Infiniband网络,我们还需要安装配置支持Infiniband网络的MPI通讯软件。
IBMParallelEnvironment(PE)是一个针对HPC并行程序的开发和运行环境,它提供了对Infiniband网络的支持,用户的并行程序可以通过PE运行在高速Infiniband网络上。
IBMPE由消息传递函数库(如:
MPI),并行运行环境(POE),调试工具(PDB)组成。
IBMPE实现了两种通讯库----IP(internetprotocol)和US(userspace)。
这两种通讯库是对于用户来说是完全透明的,它们使用统一的应用程序编程接口。
也就是说使用IP协议的程序可以无需修改就运行在US模式。
US模式是PE专门为Infiniband高速网络设计的通讯子库,能最大限度的发挥Infiniband网络的优势。
从PE5.2版本开始,PE拥有了无需借助资源管理器(例如:
IBMLoadLevler)在Infiniband网络上运行US任务的能力。
下面我们就简单介绍下,如何使用PE在Infiniband网络上运行US模式的任务。
安装IBMParallelEnvironment
在安装IBMParallelEnvironment以前,请保证集群所有节点之间的root用户可以实现免密码的rsh自由登陆。
然后使用下面的步骤安装PE:
1.拷贝IBMParallelEnvironment软件到一个节点的硬盘,这里我们假设拷贝到/tmp目录下
2.使用 install–a–d/tmpppe*命令安装IBMParallelEnvironment到这个节点
3.使用文档编辑器(如:
vi)在/tmp下创建一个节点列表文件(host.list),里面包含所有节点名,例如:
清单1.节点列表文件内容
host1
host2
host3
4.执行 PEinstall/tmp/host命令,IBMParallelEnvironment将会被安装到所有节点列表文件中列出的节点上。
使用IBMParallelEnvironment在Infiniband上进行高性能计算
当使用PE来分配计算节点时,你需要先创建一个节点列表文件,就像上一节我们创建的列表文件一样。
1.如何使用单个Infiniband网络适配器:
如果系统中只有一个IB(Infiniband)适配器,我们只需要设置如下的环境变量就可以使我们的程序利用IB网络进行数据交换:
MP_EUIDEVICE=sn_single
MP_INSTANCES=max
MP_EUILIB=us
2.如何使用多个Infiniband网络适配器
PEMPI支持将消息数据条带化的分配到多个Infiniband适配器上进行传输,以充分利用通信带宽。
如果系统拥有多于一个的IB交换网络,资源管理器将从多个适配器上来获取IB资源。
(一个交换网络是指连接到同一个交换机上的IB设备构成的网络。
)如果系统只有一个交换网络,PE将尽量从不同的适配器上获得资源,但是当其中一个适配器上资源不足时,PE将只从单独的适配器上获得资源。
并且,如果其中一个IB网络通道出现问题,PE会自动将通讯转移到其它替换通道上。
为了激活条带化功能,我们需要设置如下的环境变量:
MP_EUIDEVICE=sn_all
MP_INSTANCES=max(如果只有一个的IB交换网络,无需设置这个环境变量)
MP_EUILIB=us
设置好环境变量后,我们就可以使用poe命令,使用IB网络提交作业了。
清单2.提交作业
bash-3.2#poehello–procs10
虽然从PE5.2开始,PE可以脱离IBMLoadLevler做简单的资源配置工作,但是,对于大型的HPC网络,我们还是建议使用LoadLevler来进行作业调度和资源管理。
下面一节我们就来介绍如何使用LoadLevler配合PE利用Infiniband网络提交作业。
回页首
在IBMPOWER上配置IBMLoadLevler使用Infiniband网络
IBMLoadLevler是一个高性能计算集群上任务管理系统。
它可以最大化的利用现有系统中的资源,使用户能在有限的时间内运行尽量多的任务。
IBMLoadLevler可以在动态的环境中安排任务,并提供高效的提交和处理任务的功能。
快速安装IBMLoadLevler
下面的步骤需要在集群中的所有节点上执行,你可以通过使用IBMxCat中的xdsh命令来同步执行下面的步骤,具体的方法请参考xCat的使用手册。
1.在安装IBMLoadLevler前,需要在集群系统的所有节点上建立一个loadl用户。
清单3.创建loadl用户示例
bash-3.2#mkgroup-aloadl
bash-3.2#mkuserpgrp=loadlgroups=loadlhome=/u/loadlloadl
bash-3.2#lsuserloadl
loadlid=1018pgrp=usersgroups=loadlhome=/u/loadlshell=/bin/bashgecos=loadl
login=truesu=truerlogin=true
2.拷贝IBMLoadLevler软件包到指定目录,这里我们假设拷贝到 /tmp目录下。
可以使用下面的命令安装软件包,或者使用SMIT工具:
清单4.安装loadlevler
installp-Y-X-ddeviceLoadL.resmgr.fullLoadL.scheduler.full
installp-X-B-ddeviceLoadL.resmgr.fullLoadL.scheduler.full
3.初始化LoadLevler配置:
清单5.初始化LoadLevler
bash-3.2#su-loadl
bash-3.2#cd/usr/lpp/LoadL/scheduler/full/bin
bash-3.2#./llinit-local/var/loadl-release/usr/lpp/LoadL/full\
-cm<管理节点hostname>
在LoadL里不需要对Infiniband网卡做专门的配置,LoadL会自动从系统中获得所有网络适配器的信息。
4.检查在LoadL的LoadL_admin文件中定义的集群节点,将他们设置到 pool_list=1
清单6.LoadL_admin文件
…
Hostname1:
type=machine
central_manager=true
pool_list=1
hostname2:
type=machine
pool_list=1
hostname2:
type=machine
pool_list=1
hostname2:
type=machine
pool_list=1
使用LoadL运行高性能计算程序
使用LoadL来自动分配计算资源,可以借助LoadL强大的调度功能,提高高性能集群系统的资源利用率,关于如何使用LoadL来做任务调度请参考相关的LoadL的管理文档,本文不做进一步的介绍。
要使用LoadL来做资源管理器,需要设置 MP_RMPOOL和 MP_RESD环境变量,根据上文,我们在LoadL配置文件中将系统的资源都设置到 pool_list1中,这里我只需要使用命令:
清单7.设置MP_RMPOOL和MP_RESD:
bash-3.2#exportMP_RMPOOL=1
bash-3.2#exportMP_RESD=yes
另外,我们仍然需要设置 MP_EUIDEVICE、MP_INSTANCES、MP_EUILIB,设置方法和第四章的方法相同
设置好环境变量后,我们就可以使用 poe命令,通过IB网络提交作业了。
清单8.提交作业
bash-3.2#poehello–procs10
回页首
小结
本文介绍了为什么新一代的高性能计算集群要使用Infiniband高速网络。
以及如何从头一步步的配置IBMPOWER服务器上的Infiniband设备,并使用IBM的高性能计算软件LoadLevler和PE充分利用Infiniband的优势进行科学计算。
由于篇幅关系,本文并没有介绍如何安装Infiniband硬件和如何安装系统,请读者阅读参考文献中的相关文档。
参考资料
学习
∙IBMPublication:
ParallelEnvironmentforAIXandLinuxV5.2.1Installation:
IBMPE软件的安装文档。
∙IBMPublication:
ParallelEnvironmentforAIXandLinuxV5.2.1OperationandUse:
IBMPE软件的使用指南。
∙IBMPublication:
TivoliWorkloadSchedulerLoadLevelerforAIXV4.1InstallationGuide:
IBMLoadleveler软件的安装指南。
∙Infiniband介绍文档:
Intro_to_IB_for_End_Users:
Infiniband标准组织撰写的,介绍IB基础知识的文章。
∙IBM红皮书:
IntroductiontoInfiniBandforIBMpSeries:
通过本文了解IBMPOWER服务器在infiniband网络方面所做的支持。
∙Unix/Linux系统自动化管理:
网络自动化安装:
本文是Unix/Linux系统管理自动化系列中的一篇,介绍使用AIXNIM软件包批量化安装AIX系统。
∙为AIX配置Infiniband:
介绍如何配置Infiniband和在AIX上设置IPoverInfiniband接口。
∙AIXandUNIX专区:
developerWorks的“AIXandUNIX专区”提供了大量与AIX系统管理的所有方面相关的信息,您可以利用它们来扩展自己的UNIX技能。
∙AIXandUNIX新手入门:
访问“AIXandUNIX新手入门”页面可了解更多关于AIX和UNIX的内容。
∙AIXandUNIX专题汇总:
AIXandUNIX专区已经为您推出了很多的技术专题,为您总结了很多热门的知识点。
我们在后面还会继续推出很多相关的热门专题给您,为了方便您的访问,我们在这里为您把本专区的所有专题进行汇总,让您更方便的找到您需要的内容。
∙AIXandUNIX下载中心:
在这里你可以下载到可以运行在AIX或者是UNIX系统上的IBM服务器软件以及工具,让您可以提前免费试用他们的强大功能。
∙IBMSystemsMagazineforAIX中文版:
本杂志的内容更加关注于趋势和企业级架构应用方面的内容,同时对于新兴的技术、产品、应用方式等也有很深入的探讨。
IBMSystemsMagazine的内容都是由十分资深的业内人士撰写的,包括IBM的合作伙伴、IBM的主机工程师以及高级管理人员。
所以,从这些内容中,您可以了解到更高层次的应用理念,让您在选择和应用IBM系统时有一个更好的认识。
讨论
∙加入 developerWorks中文社区。
查看开发人员推动的博客、论坛、组和维基,并与其他developerWorks用户交流。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IBM POWER 服务器上使用 Infiniband 组建高性能计算集群 服务器 使用 组建 性能 计算 集群