Beowulf 中文HOWTO(6) 单工作业系统 只有一台收银台打开,一次只能处理一个客人。 □例 : MS DOS 多工作业系统 只有一台收银机打开,但是现在一次处理一个客人选点的一部份,然後移到下个客人,处理他选点的一部份,每个人似乎同时都有在移动,假如没有其他人在排队,很快就会轮到你。 □例 : UNIX,使用单一CPU的NT。 多颗CPU且多工作业系统 现在我们将其他的收银机打开,每个客人都有一台收银机服务,这时排队的队伍移动地很快,这称为SMP□对称式多行程。虽然有额外的收银机打开,但是绝快不过只有一台收银机和一个客人。 □例 : UNIX,使用多CPU的NT 多工多CPU的绪(thread) 假如将你选点的项目拆开来,多台收银机同时使用记帐,你就可以更快一点。首先我们得假设你买了很多东西,因为你花在拆开项目的时间必须由多台收银机补偿回来,理论上,你可以比以前快N倍,N是收银机的台数。当收银员需要得到其他部份的小计时,他们可以透过交谈或观望其他收银机,很快地交换他们所需要的资讯,他们甚至可以打探其他的收银机,找寻需要的资料,使得工作更快些。无论如何都还是有些限制,也就是这家店在各个地方可以有效地放置多少台收银机。 Amdals定律也使应用程式增快的速度将受限在循序程式中最慢的部份。 □例 :NUIX或是在相同主机板上的多CPU的NT并可以执行多绪(multi-threaded)程式。 在多工作业系统上向其他CPU传递讯息 为了改善效能,店家在後头又增加了八台收银机,因为新的帐单离前方柜台很远,收银员必须用电话将小计告诉前方柜台,除了传递外,还加上额外时间的负担,但是假如传递时间很短,它将不会造成问题。假如□要买的东西很多,需要所有的收银机,这时在使用所有收银机来改进收帐的速度之前,额外的时间负担仍须考虑进去。有时候,某些商店在各个角落只单独放置一台收银机,每个收银机就只能透过电话联系,这时它们所在的位置就不重要了。 □例:多台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的系统好。