Beowulf 中文HOWTO( 五 )



由於使用多工作业系统,电脑可以同时做很多事情,只要有一颗以上低价CPU就可以达到最自然的平行化 。;
处理器的速度每十八个月就增加一倍,但是记忆体和硬碟的速度呢?很不幸地,它们的速度增加地并没有CPU快,我们必须记得,大多数的应用软体都利用到cache以外的记忆体和硬碟,平行化是可以摆脱这些限制的一种方法 。;
预计在2005年之後,处理器的速度将不会再每十八个月就增加一倍,要达到这种曾加速度的趋势,中间还有许多障碍 。;
平行计算可以有2倍到500倍速度的提升(有时更快),这全看执行的应用程式 。这种提升是无法单靠单一处理器,即使是曾经一度使用特别设计超快处理器的超级电脑,如今也是用多颗市售且随手取得的CPU所组成 。;
假如你因为遇到计算限制(computer;bound)或是输出□输入限制(I/O;bound)而需要速度,平行是值得考虑的方法,因为平行计算可以有很多方式,平行地解决你的问题将要思考许多重要的抉择,这些抉择会严重影响应用程式的可携性、效能和你所花的时间、精神以及金钱 。;

在我们了解平行计算的技术之前,让我们先看看熟悉的真正平行计算问题的实例□在店门前大排长龙 。;


平行计算的商店
想想看一个柜台前有八台同时使用收银机的大型商店,假设每个收银机就是一颗CPU,每个客人就是一个电脑程式,电脑程式的大小(工作的多寡)就是每个客人选点的多少,接下来所作类比的方式就是要说明平行计算的观念 。;


单工作业系统
只有一台收银台打开,一次只能处理一个客人 。;

□例;:;MS;DOS;


多工作业系统
只有一台收银机打开,但是现在一次处理一个客人选点的一部份,然後移到下个客人,处理他选点的一部份,每个人似乎同时都有在移动,假如没有其他人在排队,很快就会轮到你 。;

□例;:;UNIX,使用单一CPU的NT 。;


多颗CPU且多工作业系统
现在我们将其他的收银机打开,每个客人都有一台收银机服务,这时排队的队伍移动地很快,这称为SMP□对称式多行程 。虽然有额外的收银机打开,但是绝快不过只有一台收银机和一个客人 。;

□例;:;UNIX,使用多CPU的NT;



多工多CPU的绪(thread)
假如将你选点的项目拆开来,多台收银机同时使用记帐,你就可以更快一点 。首先我们得假设你买了很多东西,因为你花在拆开项目的时间必须由多台收银机补偿回来,理论上,你可以比以前快N倍,N是收银机的台数 。当收银员需要得到其他部份的小计时,他们可以透过交谈或观望其他收银机,很快地交换他们所需要的资讯,他们甚至可以打探其他的收银机,找寻需要的资料,使得工作更快些 。无论如何都还是有些限制,也就是这家店在各个地方可以有效地放置多少台收银机 。;

Amdals定律也使应用程式增快的速度将受限在循序程式中最慢的部份 。;

□例;:NUIX或是在相同主机板上的多CPU的NT并可以执行多绪(multi-threaded)程式 。;



在多工作业系统上向其他CPU传递讯息
为了改善效能,店家在後头又增加了八台收银机,因为新的帐单离前方柜台很远,收银员必须用电话将小计告诉前方柜台,除了传递外,还加上额外时间的负担,但是假如传递时间很短,它将不会造成问题 。假如□要买的东西很多,需要所有的收银机,这时在使用所有收银机来改进收帐的速度之前,额外的时间负担仍须考虑进去 。有时候,某些商店在各个角落只单独放置一台收银机,每个收银机就只能透过电话联系,这时它们所在的位置就不重要了 。;

推荐阅读