快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

博胜发sbf:利用Beowulf让普通PC变集群



现在,Li博胜发sbfnux在IT业里已经有着异常紧张的影响,除了其具有免费、高效、靠得住等上风外,对付谋略机科学家和那些必要进行大年夜量运算的科学家来说,它照样一个异常强大年夜的对象。自从Donald Becker提议了Beowulf集群谋略今后,在NASA的Goddard Space Flight Center事情的Thomas Sterling又扩展了Linux在高机能并行谋略领域的利用。

现在,Linux在IT业里已经有着异常紧张的影响,除了其具有免费、高效、靠得住等上风外,对付谋略机科学家和那些必要进行大年夜量运算的科学家来说,它照样一个异常强大年博胜发sbf夜的对象。自从Donald Becker提议了Beowulf集群谋略今后,在NASA的Goddard Space Flight Center事情的Thomas Sterling又扩展了Linux在高机能并行谋略领域的利用。本日,大年夜量以通俗PC为根基的集群呈现在了各个级其余实验室、工业科技中间、大年夜学以致是一些小的学院中。假如有人问你是否一个有关科学谋略的问题可以经由过程一些疏松的谋略资本来办理?谜底是当然可以。我们可以应用Beowulf集群,它博胜发sbf可以应用很多通俗的PC做成一个集群来办理我们所面临的问题,并且这种集群所具有的价格上风是传统的并行谋略机所无法相比的。

若何创建一个Beowulf集群

事实上,应用现有的PC或者不用的旧PC,任何人都可以构建一个自己的并行系统来演习并行编程或者进行并交运算。在一个谋略机实验室里,我们可以将PC机做成双启动系统(可以根据必要进入Windows或者Linux),将其用作两种用途。此外,对付那些已经不再应用的机械则可以像Stone SouperComputer一样做成一个并行的运算系统。

没有两个Beowulf集群是完全相同的。事实上,这种系统的硬件和软件的设置设置设备摆设摆设是如斯的机动,乃至于其可以被轻松定制成为不合的组合。虽然每一个Beowulf集群系统都是不合的,并且其设置设置设备摆设摆设也是根据利用法度榜样的必要来进行的,但照样有一些基础要求是相同的。下面我们就来看一看在创建一个集群时必要斟酌的一些基础问题。

创建一个集群的最低需求

要创建一个集群,每一个节点至少应该包孕有一个Intel 486 CPU和主板。虽然Intel 386也可以正常事情,但其机能将不值得我们为之付出劳动。内存的需求则取决于目标利用法度榜样的需求,但每一个节点至少必要16MB的内存。大年夜部分利用法度榜样都邑要求每一个节点具有32MB以上的内存。经由过程应用集中式的磁盘空间,节点可以从软盘、小容量的硬盘或者收集文件系统启动。启动今后,节点可以经由过程收集造访文件系统中属于自己的Root分区,这种造访一样平常都是经由过程NFS(收集文件系统)来实现的。在一个具有高带宽和高机能办事器的情况中,这种设置设置设备摆设摆设的事情状态将异常不错。要想得到更好的机能,应该在本地磁盘上安装有操作系统、互换分区,并且数据可以在每一个节点得到。每一个节点应该至少有200MB的磁盘空间用于寄放操作系统组件和用作互换空间,还应该有400MB或者更多的空间保留用于法度榜样运行中应用。每一个节点至少要包孕有一个网卡(最好是高速网卡)。着末,每一个节点都必要一个显卡,一个硬驱和一个电源。键盘和显示器则只有在进行系统安装和设置设置设备摆设摆设时必要。

必要留意的是,所有选择应用的硬件在Linux中都要有驱动法度榜样或者响应的模块,一样平常来说,除非这些硬件异常迂腐,否则都不是问题。对付必要对全部集群进行治理的主节点来说,为了方便起见,最好安装一个X办事器。安装历程中,假如某一个特定的组件呈现问题或者没有驱动法度榜样,可以到论坛中寻求赞助。

收集连接

假如可能,每一个节点最好处于一个零丁的局域网中,并且拥有一个自己的Hub.这样可以包管收集通信能够顺畅进行。集群中的第一个或者主节点应该具有两个网卡,此中一个与内部收集相连,别的一个与公共收集相连。这对付用户登录和文件传输尤为有用。在内部收集中,必要应用不在 Internet上应用的IP地址。一样平常来说,最简单的法子便是A类10.0.0.0地址,由于这些地址是专门为那些没有路由的收集保留的。在本例中,每一个节点的/etc/hosts文件看起来如下所示:

10.0.0.1 node110.0.0.2 node210.0.0.3 node310.0.0.4 node4

每一个节点的/etc/hosts.equiv文件应该如下所示:

node1node2node3node4.

一个节点号为2,应用Red Hat Linux的ifcfg-eth0设置设置设备摆设摆设文件如下所示:

DEVICE=eth0IPADDR=10.0.0.2NETMASK=255.0.0.0NETWORK=10.0.0.0BROADCAST=10.255.255.255ONBOOT=yes

此外,我们还常常必要一个DNS,对付那些节点名字和地址常常变更的内部收集更是如斯。DNS可以运行在第一个节点来为内部收集的节点供给名字/地址的解析。

本地存储

在加载操作系统的问题上,创建Beowulf集群必要预先做一些博胜发sbf存储方面设置设置设备摆设摆设的抉择。由于一旦安装完成后要进行变动就要从新安装所有的节点,以是必然要进行异常细致的斟酌。虽然大年夜部分基于Linux的Beowulf集群运行的是都是Red Hat Linux发行版,但事实上,基础上所有的Linux发行版都支持基础的集群。Red Hat的安装异常简单,我们可以应用光盘或者经由过程集群的第一个节点进行安装(条件是在节点上已经有一份发行版拷贝)。在实际的应用历程中,很多人发明从主节点经由过程FTP把操作系统加载到每一个节点要比经由过程NFS挂载Root分区好。这种措施避免了一些不需要的收集通信,在利用法度榜样运行时保留带宽用于信息的传送。

Red Hat Linux运行情况只必要每一个节点有大年夜约100MB的磁盘空间,不过,在实践中发明在每一个节点包孕一个编译和一些其它的对象照样异常需要。是以,在设置设置设备摆设摆设中,每一个操作系统必要大年夜约175MB的磁盘空间。虽然有一些集群将互换分区设置设置设备摆设摆设在了通俗的文件系统上,但在本地磁盘上应用一个专门的互换分区才是一个更高效的选择。一样平常而言,节点的互换空间的大年夜小应该是内存的2倍,而当内存大年夜于64MB时,互换空间应该即是内存的大年夜小。在实际中,当内存为64MB至 128MB时,我们平日将互换分区设为128MB.是以,假如某一个节点有32MB内存,有2个硬盘,那么我们就应该将Linux系统加载至主驱动上,而将别的一个硬盘用作互换空间(64MB)和本地运行空间(138MB)。

集群治理

系统治理和掩护是一件异常乏味的事情,对付大年夜型的集群更是如斯。不过,我们可以从网上找到一些对象和脚原先简化这些事情。比如,一个节点必须在光阴和系统文件(/etc/passwd、/etc/group、/etc/hosts、/etc/hosts.equiv等)上与其它的节点维持同步,那么一个简单的可以被cron准时履行的脚本将可以来完成这个同步历程。

一旦所有的节点都加载和设置设置设备摆设摆设完成后,我们就可以来开拓和设计并行利用法度榜样来充分使用新系统的运算能力。

为集群谋略开拓并行利用法度榜样

在Linux下,我们可以应用商业编译器,也可以应用免费的编译器。GCC、g++和FORTRAN(g77)编译器被包孕在了大年夜部分的Linux发行版中。此中C和C++编译器已经异常优秀,而FORTRAN编译器也在赓续的进步之中。商业编译器则可以从Absoft、 Portland Group、The Numerical Algorithms Group等公司获取。假如设置设置设备摆设摆设适当,一些商业的FORTRAN-90编译器可以自动实现并行谋略。一样平常来说,开拓并行代码必要在处置惩罚器之间应用PVM (并行虚拟机)、MPI(信息传送接口)或者其它的通信库来进行清晰的信息通报。PVM和MPI都是免费的,并且可以在谋略的历程中经由过程简单的库调用来实现节点的之间的信息通报。

当然,并不是所有的谋略义务都得当用并行谋略来实现。一样平常而言,为了充分使用并行谋略的上风,平日要对针对义务进行一些开拓事情。很多科学问题都可以进行细分,也便是可以将其分化为相对自力的模块,以使其可以在各个自力的节点进行处置惩罚。比如,图像处置惩罚义务平日可以再细分,让每一个节点都可以处置惩罚某一部分的图像。当某一图像可以被自力处置惩罚时(比如处置惩罚这部分图像不必要其它部分的信息),效果更好。

对付并行谋略来说,最危险的缺陷便是将一个谋略问题变成了一个通信问题(不管是应用现有的并交运算代码照样自己新开拓代码)。这种问题一样平常发生在将义务过分细化,从而使得各个节点为了维持同步而传输数据的光阴跨越了CPU进行谋略的光阴。在这种环境下,应用更少的节点反而可能会得到更多的运行光阴和更充分地使用资本。这便是说,对付不合的并行利用法度榜样而言,要根据本地节点谋略的负载和通信来进行调剂和优化。

着末要说的是,在开拓并行算法时,假如所应用的集议论况的节点各不相同,那么就要充分斟酌到这个问题。事实上,在运行并行利用法度榜样时,各个节点间CPU的速率是异常关键的,是以,在一个设置设置设备摆设摆设不合的集群中,只简单地将义务匀称分配,那么速率对照快的CPU就必须要等待速率对照慢的 CPU完成自己的义务,这显然是分歧理的。是以,设计适当的算法可以很好地处置惩罚这种环境,当然,不管采纳什么样的算法,必然要充分斟酌到通信过载问题。

并行处置惩罚可以以很多种要领来组织,然则master/Slave的组织要领是最易于理解和编写法度榜样的。在这种模式中,一个节点作为master,而别的一个则作为Slave.Master节点平日抉择若何瓜分义务,以及批示信息的传送,而Slave节点则只认真处置惩罚分配到的义务,并在义务完成的时刻向master申报。

总结

事实上,在开拓并行代码时,并没有严格的规定,而是要根据实际环境来进行。优化硬件设置设置设备摆设摆设和博胜发sbf算法的条件是要知道所要运行的利用法度榜样的细节。在各个节点设置设置设备摆设摆设不合的集群中,在各个节点中进行负载平衡以及各个节点中的通信都取决于硬件的详细环境。在通信速率快的情况里,可以将义务分得更细,反之则不宜将义务过分细化。

应该说“Beowulf运动”将并行谋略大年夜众化了。在Beowulf系统中应用标准信息传送库开拓的并行代码可以不颠末任何变动就直接运行在商业级的超级谋略机之上。是以,Beowulf集群可以作为一个入门的切入点,在必要时再将其过渡到大年夜型机上。此外,廉价、通用的集群意味着并行谋略机情况可以用于特定的义务,而大年夜型的商业超级谋略机因为其过于昂贵,故弗成能使其专注于某个单一的利用法度榜样。很显然,跟着并行情况越来越多地被利用到现实事情,将会更进一步匆匆进其在各个领域的利用。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: