手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>操作系统>Linux>列表

Beowulf 中文HOWTO

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!



硬体架构

在硬体上有二种基本的平行电脑:


自有记忆体机器,之间可以交换资讯(Beowulf 电脑群)。
共享记忆体机器,透过记忆体传递资料(SMP机器)。
典型的Beowulf是由一群单CPU机器组成,透过高速乙太网路连接,所以称为自有记忆体机器。4 way SMP是一台共享记忆体机器,可用来作平行计算,平行的应用软体透过共享记忆体传递资料。以电脑贩售店做比喻,自有记忆体机器(单独暂存帐单)在CPU数量上可以很多,但是共享记忆体机器由於记忆体的关系,CPU的数目是有限制的。

但是连接多台共享记忆体机器是可行的,这些混合式共享记忆体机器对使用者看起来就像一台大型的SMP,经常称作驽马(NUMA,non uniform memory access,非均匀记忆体登入),因为使用者看到的是一块大记忆体,由所有的CPU共享,有著各种不同的延迟(latencies)。在某种程度上,驽马机器中各个自有共享记忆体之间是必须互相传递讯息。

把SMP机器当作自有记忆体的计算节点,并将它们连接起来是有可能的。典型的第一类主机板可以有二颗或四颗CPU,使用这类电脑通常可以降低整体的成本,Linux内部排序决定如何共享这些CPU,在这个阶段,使用者无法指定所要执行的工作由哪个CPU负责,但是使用者可以同时执行二个不相干的行程,或是一个有绪的行程(threaded processes),并希望效能比一个CPU的系统好。


软体API架构
基本上有二种方式可以在程式内表现出同时的特性:

在处理器之间使用讯息传送。
使用系统的绪
仍有别种方法,但是这二种是最常用的。有一点必须注意,就是同时不需要由底层的硬体所控制,讯息和绪都可以在SMP、驽马SMP和电脑群上使用,但如上所述,效能和可携性仍是重要的议题。


讯息
从历史的观点来看,讯息传递的技术反应出早期自有记忆体平行电脑的设计过程,当绪需要资料时,讯息被要求需要拷贝,拷贝讯息的延迟和速度变成讯息传递模式的限制因素。讯息传递其实相当简单,一些资料和传递的目的地(处理器)。一般常见讯息传递的API有 PVM 或 MPI,讯息传递可以在一台SMP机器和电脑群上有效地使用绪和讯息,相对於绪,讯息传递在一台SMP上的好处是,未来一旦□决定要使用电脑群,只需要轻易地增加机器。



作业系统绪的发展主要因为共享记忆体的SMP设计允许程式中同时的部份可以有很快地共享记忆体传递和记忆体同步,绪在SMP系统执行地不错,这是因为传递是透过共享记忆体,由於这个原因,使用者必须将当地的资料从整体的资料中独立出来,否则程式将不能正确地执行。相对於讯息传递,因为资料是由行程所共享,大量的资料拷贝可以避免,Linux支援POSIX绪,绪的问题在於很难扩展到一台SMP机器以外,这是因为资料是由CPU所共享,快闪一致性的议题会造成负担。将绪有效地扩展到多台SMP机器必须仰赖驽马技术,但是驽马非常耗时,并且基本的Linux是不支援的。将绪建构在讯息传递之上,曾经有人做过 ( (http://syntron.com/ptools/ptools_pg.htm)),但是绪和讯息传递在一起就变得效果不佳。

以下是和效能有关的资讯

SMP机器效能 电脑群效能 比例增加程度
--------------- ---------------- ----------------
讯息 好 佳 佳

绪 佳 不良* 不良*

* 要求昂贵的驽马技术。


应用软体架构
为了在多CPU下平行地跑应用程式,在同时部份必须被分开来,一个标准的单CPU应用软体不会比它在多处理器下跑的快,有些工具和编译器可以做这种工作,但是将程式平行化可不是“随插即用“。这完全和程式有关,有些程式很容易平行化,有些是极度困难,有些情形受限於algorithm的相关性而根本不可能做到平行。

在讨论软体议题之前,先要介绍合适性的观念。


4.4 合适性(Suitability)
关平行计算的大多数问题都有相同的答案:

全和应用程式本身有关。

在我们进入这个议题之前,有一个非常重要的不同点需要□清□同时(CONCURRENT)和平行(PARALLEL)之间的差异性,为了方便讨论起见,我们先定义这二个观念:

程式内同时的部份是指可以单独个别计算的部份。

程式内平行的部份是指那些可以在同一时间内分别由不同处理器执行的同时部份。

二者相异的地方是非常重要,因为同时是程式本身的特性,而有效的平行则是机器的特性,理想状况下,较快的效能肇因於平行执行,平行效能的限制因素在於计算节点之间的传递速度和延迟(延迟也会出现在绪SMP应用软体,主要来自於快闪(cache)的一致性)。大多数通用的平行测试套件都有很高的平行性,传递和延迟都不是瓶颈,这类问题可以称作“显而易见的平行“(obviously parallel),其他的应用软体就没那麽简单,平行地执行程式中的同时部份可能会造成程式跑得较慢,抵消掉其他同时部份所得到的效能。简单说,传递所花费的时间必须从俭省的计算时间补偿,否则平行执行同时部份会很不经济。

程式设计者的工作是要决定程式哪些同时的部份应该平行化,哪些则不要。这将会决定应用程式的效能,下面的图对程式设计者做了些总结。



占应用程
式的百分比

| *
| *
| *
| *
| *
| *
| *
| *
| *
| *
| *
| ****
| ****
| ********************
-----------------------------------
传递时间 / 计算时间

在一个理想的平行电脑,传递和计算二者相当,任何同时都可以平行化,很不幸地,真实的平行电脑(包括共享记忆体机器)都像上图所示。当设计Beowulf时,使用者必须牢记这图,因为对一特定平行电脑,平行效能决定於传递时间和计算时间之比,应用程式可能可以在各种平行电脑上执行,但是不能保证一定会有较佳的效能。

一般来说,没有既可携性又有效能的平行程式。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!