Beowulf 中文HOWTO( 六 )



□例:多台UNIX或多CPU的NT,可能在同一张主机板或许多主机板上,彼此能相互联系 。;

上述说明虽然不够精准,但对平行系统的限制来说,算是不错的描述,不像单一CPU的传递仍是个议题 。;


4.3;平行计算的架构;
平行计算的方法和架构将在下节介绍,虽然描述将会很广泛,但是也足以了解Beowulf设计的一些相关议题 。;


硬体架构

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


自有记忆体机器,之间可以交换资讯(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)),但是绪和讯息传递在一起就变得效果不佳 。;

以下是和效能有关的资讯;

推荐阅读