自动化专业英文文献翻译2_第1页
自动化专业英文文献翻译2_第2页
自动化专业英文文献翻译2_第3页
自动化专业英文文献翻译2_第4页
自动化专业英文文献翻译2_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、西 南 交 通 大 学 毕业设计(英文翻译)节能型机房温湿湿度远程控制制系统测控节节点设计年 级: 学 号: 姓 名: 专 业: 指导老师: 二零一一年六月月MosixMosix修改改bsdi上上的BSD/ OS来提提供电脑上的的跨网络的动动态负载平衡衡组和先发制制人进程迁移移。这是不错错的东西,不不只是为并行行处理,但对对于通常使用用一个集群很很像一个可扩扩展的SMPP。是否有LLinux版版本?详细信信息,请看hhttp:/www.cs.huuji.acc.il/mmosix/。NOW (工作作站网络)伯克利工作站网网络项目,htttp:/,已已经极大地推推广了并行计计算中使用工工作站网络

2、,这这里还有很多多工作在进行行中,都致力力于“在未来几年年内展示一个个实际的1000处理器系系统”。唉,他们们不使用liinux。并行处理使用llinux并行处理使用LLinux WWW站点点,httpp:/agggregaate.orrg/LDPP/,是这些些指南和许多多相关文件包包括为全日制制量身订造的的在线幻灯片片的家园。除除了在报纸项项目上,普渡渡大学电机与与计算机工程程系已经是并并行处理的领领先者,这个个网站的设立立是为了帮助助别人申请并并行处理的LLinux电电脑。 自从普渡渡大学的第一一组Linuux个人电脑脑在19944年2月组装装以来,已经经诞生了许多多的Linuux PC集

3、集群,有些还还包括视频墙墙。然而这些些集群使用3386,4886和奔腾系系统(没有奔奔腾Pro系系统),英特特尔最近获得得普渡大学的的捐赠,将允允许它的奔腾腾II系统构构建多个大型型集群(与单单个群集计划划多达1655机)。并且且这些集群都都将有论文网网,也具有最最传统的网络络。奔腾Pro集群群研讨会1997年,44月10-111日,埃姆姆斯实验室在在得梅因,爱爱荷华州举行行了奔腾Prro集群研讨讨会。WWWW在本次研讨讨会,htttp:/wworkshhops/PPPCworrkshopp.htmll,从云集的的参加者中收收集了很多丰丰富的PC集集群信息。TreadMaarks帝斯斯曼(分布

4、式共享享内存)帝斯曼(分布式式共享内存)是是一种技术,即即一个消息传传递系统可以以出现的行为为作为一个SSMP。有不不少这样的系系统,其中大大部分使用OOS页故障触触发消息传输输机制。TrreadMaarks,hhttp:/www.cs.riice.eddu/wiilly/TTreadMMarks/overvview.hhtml,是是这种系统更更有效地之一一,并在Liinux集群群上运行。坏坏消息是“TreaddMarkss”正在由一个个小成本的大大学和非盈利利机构的分配配。欲了解更更多有关该软软件,请联系系treaddmarkss信息息。U型网 (用户户级网络接口口架构)U型网(用户级级网络

5、接口架架构)在康奈奈尔大学, HYPERLINK /U-Net/Default.html hhttp:/u/U-Neet/Deffault.html,项目试图提提供低延迟,高高带宽的网络络硬件使用商商品由虚拟的的网络接口,以以便应用程序序可以发送和和接收邮件没没有作业系统统的干预。在在Linuxx上运行的UU型网,使用用DECchhip DCC211400的快速以太太网卡或前置置系统的主成成分- 2000(不常设设仲裁法院-200E)AATM卡。WWT (威斯斯康星风洞)的确有相当多集集群相关的工工作在威斯康康星州。该WWWT的(威威斯康星风洞洞)项目, HYPERLINK /wwt/ hht

6、tp:/www.cs.wiisc.eddu/wwwt/,正在在致力于对发发展的“标准”之间的并行行编译器和底底层硬件接口口各项工作。还还有就是威斯斯康星牛(集集群工作站),合合作共享内存存和暴风雨的的Paraddyn并行性性能工具等,不不幸的是关于于Linuxx的不是很多多。4. 在A寄存存器的SIMMD (例如,使使用MMX公公司)在A寄存器的SSIMD(单单指令流多数数据流)(SSWAR)并并不是一个新新想法。给定定一个有k位位寄存器,数数据路径和功功能单元机,人人们早已知道道,普通的寄寄存器操作可可以像SIMMD一样并行行操作n,nn/k位,整整数字段值。然然而,这只是是由于对多媒媒体最

7、近有SSIMD推动动的2倍到88倍加速技术术已成为主流流计算的关注注。大多数微微处理器19997的版本本包括硬件SSWAR支持持: HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=/html/products/pcd/techdocs/appnotes/20726a.pdf AMD的K6型型MMX公司司(多媒体扩扩展) HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=:80/process/SUPPORT/isv.htm Cyrix的货货币供应M2 MMMX公司(多多媒体

8、扩展) HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=/pub/Digital/info/semiconductor/literature/alphahb2.pdf 数字Alphaa马克斯(多媒媒体扩展) HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=:80/wsg/strategies/pa2go3/pa2go3.html 惠普的PA - RISCC的最大(多多媒体加速扩扩展) HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN

9、&prev=_t&u=/drg/mmx/ 英特尔奔腾III和奔腾MMX公司司与(多媒体体扩展) HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=/www/mediaprc.htm Microunnity MMediapprocesssor SSIGD(单单一数据组指令上) HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=/arch/ISA5/ MIPS的数字字媒体扩展(MDMMX,发音疯狂的麦克斯斯) HYPERLINK /translate?hl=zh-CN&sl=en

10、&tl=zh-CN&prev=_t&u=/sparc/vis/index.html 的Sun SPPARC VV9的VISS(视觉指令集)还有一些新的微微处理器提供了了一个由硬件件支持的几洞洞,怪癖像场场大小只支持持一些操作一一些。 重要要的是要记住,但是,你你不需要任何何SWAR经经营的硬件有效的的支持。 例例如,位操作作是不会被寄存器逻辑分区影响的。4.1 SWAAR:有什么么优势?虽然每个现代处处理器至少具具有一些并行行执行能力的的SWAR,不不幸的是,即即使是最好的的SWAR增增强指令集不支支持非常通用用并行。事实实上,许多人人已经意识到到,奔腾与“带MMX技技术的奔腾”之间性能上上的

11、差异通常常都是由巨大大的L1缓存存存在MMXX造成的。因因此,实际上上,什么是SSWAR(或或MMX)的的优势呢?仅整数,越小越越好。 两个个32位值可安装在664位MMXX寄存器,但但这样做的八单字节字符,更或者者是一个完整整的国际象棋棋板上的一位位。注:将会会有一个浮点点版本的MMMX,虽然在在此篇文章中中很少提及。Cyrix已经发布了一些幻灯片, HYPERLINK /developr/mpf97rm.pdf /developr/mpf97rm.pdf其中包括一些MMMFP的评评论。显然,MMMFP将支支持两个322位浮点数字字装入到一个个64位的MMMX寄存器器,结合这两个MMFFP管

12、道将产产生四个单精度每时钟触发器。SIMD或向量量式并行。相相同的操作同同事应用到各各个领域。有有许多办法来来废止选定域域的作用(即即相当于掩蔽蔽的SIMDD),但它会会带来更为复复杂的编码和和性能的损害害。本地化,有规律律的(完美的的包装),内内存参考模式式。SWARR在一般情况况下,特别是是MMX,在在随机存取方方面很可怕;聚集一个相相当昂贵的xxy向量量(其中y是是一个索引阵阵列)。这些都是严重的的限制,但这这种类型的并并行算法,发发生在许多并并行而不只是是多媒体应用用。对于算法法的正确类型型,SWARR比SMP或或并行群集更更效率得多,而而且它不需要要任何费用。4.2 SWAAR编程导

13、论论SWAR的基本本概念,在AA寄存器里的的SIMD,是是指在字长寄寄存器的操作作能被用于加加速由SIMMD在n,kk/n位表上上的操作运算算。然而,使使用SWARR技术可能会会难以处理,并并且一些SWWAR操作确确实比串行序序列比昂贵的的多,因为他他们需要额外外的指令以执执行实地划分分。为了说明这一点点,让我们考考虑一个大大大简化的SWWAR模型,管管理每一个332位寄存器器里的4个88位字段。两两个寄存器中中的值可以表表示为: PE33 PE2 PEE1 PE0 +Reg0 | D 7:0 | CC 7:0 | B 77:0 | A 7:00 | +Reg1 | H 7:0 | GG 7:

14、0 | F 77:0 | E 7:00 | +这个模型表明每每一个寄存器器都被有必要要地视为一个个包含4个独独立的8位整整型的向量。另另外,把A和和E作为Reeg0和Reeg1来处理理元素0(PPE0),把把B和F视为为PE1的寄寄存器,等等等。本文档的其余部部分简要回顾顾这些整数向向量的SIMMD并行操作作的基本类型型如何将这些些功能都可以以实现。多态操作有些SWAR操操作可以很一一般地使用普普通的32位位整型操作,而而不必担心这这个操作是真真的打算在这这些8位的字字段上并行操操作。我们呼呼吁任何SWWAR操作多多态性,因为为该功能并未未受到字段类类型(大小)的的影响。测试如果任何字字段是非

15、零是是多态的,因因为都是按位位逻辑运算。例例如,一个普普通的位与操操作(C的&操作符)执执行按位与,无无论这个字段段的大小。一一个简单的寄寄存器位与实实例如下: PEE3 PEE2 PEE1 PEE0 +Reg2 | D&H 7:0 | C&G 7:0 | B&F 7:0 | A&E 7:0 | +由于位与操作总总有K值的结结果位值来影影响操作,所所有字段的大大小都支持使使用相同的单单指令。分区操作不幸的是,很多多重要的SWWAR操作都都不具有多态态性。算术运运算,如加,减减,乘,除等等都实行在字字段间进/借借位。我们称称这样的SWWAR操作为为分区,因为为每一个这样样的操作必须须有效地分开开

16、操作数和结结果之间的相相互作用,以以防止字段间间相互影响。然然而,实际上上有三种不同同的方法来获获得这样的效效果。分区说明也许最明显的方方法来实现分分区操作是字字段间提供硬硬件支持的“分区并行指指令”来进行字段段见的进/借借位。这种方方法可以产生生最高的性能能,但它需要要改变处理器器的指令体系系,但一般存存在许多限制制(例如,88位字段可能能得到支持,但但12位的并并不能)。AMD/Cyrrix/Inntel MMMX, DDigitaal MAXX, HP MAX和 Sun VIS都实实现分区指令令限制版本。不不幸的是,这这些不同的指指令集扩展有有不同的限制制,使得他们们之间的算法法有些不简

17、便便。例如,分分析下面的采采样分区操作作: 指令 AMMD/Cyrrix/Inntel MMMX DEC MMAX HP MAAX SSun VIIS+| 绝对差别 | | 8 | | 8 |+| 相融最大值值 | | 8, 16 | | |+| 比较 | 8, 166, 32 | | | 16, 32 |+| 相乘 | 16 | | | 8xx16 |+| 相加 | 8, 166, 32 | | 16 | 16, 32 |+在这个表中,这这些数字表明明了字段的大大小,以位为为单位,因此此每个操作都都是支持的。即即便此表省略略了绝大多部部分的外来指指令,还是可可以清楚地看看到有许多差差异。直接

18、结结果是高级语语言(HLLLS)并没有有编程模型那那样有效,并并且可移植性性普遍较差。未划分的操作与与校正码用分区指令来实实现分区操作作一定是有效效的,但如果果你所需要的的分区操作并并不被硬件所所支持时该如如何解决?方方法是你可以以使用一连串串普通指令来来实现字段见见的进/借位位操作,来改改正那些不受受欢迎的限制制。这是一个纯软件件的方法,并并且做了上层层介绍,但它它能在通用字字段分区环境境下工作。这这种做法也是是完全通用的的,因为它不仅可以被用来来填补空白,说明硬件支持持的分区,也也可以用来提提供完整的功功能在所有的的目标机器没有硬硬件支持。事事实上,如CC一样的表达达语言,这种种方法使得S

19、SWAR方案案得到充分的的可移植性。问题立即出现了了:很明显,使使用带纠错码码的未分区操操作来模拟SSWAR分区区操作是多么么的无效?因因此,这是一一个类似于$64K的问问题但许多操作作并不像人们们想象中的那那么难。考虑推行使用四四个原色的88位整型向量量通过使用普普通32位操操作来实现两两个源向量的的相加操作。一个普通的322位加法实际际上可能产生生正确的结果果,但8位字字段进位操作作排除在外。因因此,我们的的目标仅仅是是确保这一的的进位不会发发生。因为两两个k位字段段的数相加最最少会产生kk+1位的结结果,我们能能通过简单地地掩盖每个字字段最有效的的位来确保没没有进位发生生。下面是一一个通

20、过与00 x7f7ff7f7f的的与操作来实实现普通322位的加操作作。t = (xx & 0 xx7f7f77f7f) + (y & 0 x77f7f7ff7f);很显然结果是正正确的,除了了每个字段里里的最有效位位。计算每个个字段的正确确值仅仅是一个个分区的问题题做两个1位位增加了7位位最重要的位位从x和y进进行计算的结果。幸运的是是,1位分区区加操作是有有一个普通的的异或操作来来实现的。因因此,结果很很简单:(t (x yy) & 00 x808008080)好吧,也许事实实远非如此简简单。毕竟,这这是通过6次次操作仅仅来来实现4次相相加。然而,请请注意操作数数并不是由一一个功能有多多少

21、字段来表表示的因此,在更更多的领域,我我们需要进步步。事实上,我们可能会加速反正只是因为字段被装和操作存储在一个单一(整数向量),寄存器的供应情况可能会有所改善,并且会有更少的动态代码调度依赖(因为部分字词引用以被避免)。控制字段值而另外两个分区区的操作方法法来执行两个寄存存器中心得到到利用的最大大空间,可以更有有效地计算,而不是是控制字段值值,使不同字段段间的进/借借位永远不会发生。例如,例如,如如果我们知道所有的的字段值被添加的字字段溢出,这这样会不会发生,分区添添加操作可实实现使用一个个普通的ADDD指令,事事实上,由于这个限制,一一个普通的AADD指令出出现多态性,是代码可用的大小小没

22、有收到有有效的校正。因因此,问题变变成了如何确确保字段值不不会引起进/借位事件。确保这一点的一一个方法是实实施分区指令令来限制字段段值的范围。Digital MAX的最低和最高指令可以被视为由硬件支持的避免内部字段的进/借位。然而,假设我们们没有分区才才做指令来有有效地限制字字段值的范围围是否有充分分的条件,能能以廉价地确确保进/借位位事件不会干干扰相邻字段段?答案在于于性能分析算算法。两个kk位数相加最最多会生成kk+1位的结结果;因此,一一个k+1位位字段可以安安全地使用这这样的操作尽尽管使用普通通指令来操作作。因此,假设前面面例子中的88位字段现在在改成7位并并带有1位“进/借位”操作的

23、字段段: PEE3 PE2 PPE1 PE00 +Reg0 | D | D 6:0 | CC | CC 6:0 | B | B 66:0 | A | A 6:00 | +7位向量之间的的加操作的实实现如下:让让我们假设一一下,行动开开始之前的任任何分区,所所有的执行间间隔位(A的的,B的,CC的,和D的的)的值为00.只需执行行一个普通的的加操作,所所有字段即可可获得正确的的7位值;尽尽管,一些间间隔位可能会会是1。我们们可以通过一一个更传统的的操作来改正正它,如掩盖盖间隔位。这这样7位的整整型向量x与与y相加,是是这样的:(x + yy) & 00 x7f7ff7f7f)这只用了两个操操作就

24、实现了了四次相加,很很明显效果良良好。锐利的读者可能能已经注意到到,设置间隔隔位为0不适适合减操作。然然而,这次修修改却非常简简单。为了计计算x-y,我我们只需确保保所有x里的的间隔位为11,而在y里里的所有间隔隔位为0。最最坏的情况下下,我们可以以得到:(x | 0 x8088080800) - yy) & 00 x7f7ff7f7f)然而,更多的按按位或操作往往往可以得到到优化,确保最后后一步操作生生成的值是用用X|0 x8808080080而来的的,而不是用用&0 x7ff7f7f77f而来的。哪种方法更适合合用于SWAAR分区操作作?答案很简简单“能产生最好好的加速比”。有趣的是是,理

25、想的方方法,不同的的是可在相同同的机器上运运行相同程序序见的不同字字段。通信与类型转换换操作虽然一些并行计计算,包括许许多在图像像像素上的操作作,所具备的的性能是,一一个向量里的的第i个值是是一个出现在在第i个位置置的仅值功能能,通常却不不是这样的。例例如,例如,即即使像素的FFFT变换一样的操作,如如需要相邻像素值从操作数,并并作为平滑需要更更复杂的(较少本地化)的的通讯模式。有效地实现一维维邻近沟通来来让SWARR使用未分区区的移位操作作并不难。例例如,移动一一个值从PEE(i)到PPE(i+11),就是一一个简单的例例子。如果字字段是8位长长的话,我们们将使用:(x 8) & 0 x00

26、ffffffff)加入“缠绕连接接”也是合理有有效地使用未未分区的变化化。例如,环环绕式地移动动一个值从PPE(i)到到PE(i+1):(x 24) & 0 xx0000000ff)真正的问题是当当更一般的沟沟通模式必须须得到执行。只有HP MAX指令集支持任意的表,就是所谓的Permute。它确实是一个名不副实的表,不仅可以执行任意置换的字段,更可以允许重复。总是它实现了一个任意xy操作。不幸的是,xy在没有有如此的指令令下很难实现现。一般的代代码序列都很很长而且效率率低下;实际际上它是连续续的代码。这这样非常另人人失望。在MMasParr MP1/MP2 和和具有思维的的CM1/CCM2/

27、CMM200 SSIMD上执执行相对高速速的xy操作是这些些机器运行良良好的关键因因素。然而,xxy以后后都慢于邻近近的沟通计算算机,即便是是这些超级计计算机,所以以许多算法的的目的是为了了尽量减少xxy操作作的需要。总总之,没有硬硬件的支持,最最好的做法就就是发展SWWAR算法,即即便xy并不合法,更更或者说至少少不便宜。复发操作(约化化,扫描等)复发是一种在被被计算的质之之间存在明显显的连续关系系的计算。然然而,如果这这些复发包含含关系操作,它它很有可能会会重新编码计计算使用树结结构的并行算算法。并行发生的最常常见的类型是是可能的减少少关联的类称称。例如,要要计算一个向向量的值的综综合,一

28、个纯纯粹的连续CC写法如下:t = 0;for (i=0; i 88) & 00 x00fff00ff);第二步是将这些些两个16位位字段的9位位值进行运算算而产生一个个10位的结结果:(t + (t 16) & 0 x00000033ff)其实,第二步执执行两个166位字段的相相加但前16位位加法是没有有意义的,这这就是为什么么结果是一个个伪10位的的结果。扫描,也被称为为“并行前缀”行动,一般般情况下比较较难以有效地地实现。这是是因为,不像像减少,扫描描会产生分区区结果。居于于这个原因,扫扫描可以实现现于使用一个个相当明显的的并行操作序序列。4.3 Linnux下的MMMX SWWAR对于

29、Linuxx,IA322处理器是我我们首要关注注的。好消息息是,AMDD公司,Cyyrix和英英特尔都实现了同样的MMX指指令。不过,MMX公公司的表现各不相同,例例如,在K66型只有一个个MMX的管管道-的MMMX奔腾有两个。 唯一真正的的坏消息是,英英特尔仍然在运行行那些愚蠢的的MMX的广广告.实际上有三种方方法可以使用用MMX ffor SWWAR:1.从MMX公公司使用程序序库。 特别是,英特尔已经开发了几个“性性能库” HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=/drg/tools/ad.htm http:/drg/

30、ttools/ad.httm ,能够向用户提供各种任任务的手,共同同优化多媒体程程序。 随着着一点点努力力,许多非多媒体体算法可以返返工来确保一一些计算密集集型来实现使用一一个或多个这这些库例程。这些库库目前没有可可用的Linnux,但可可以移植。2.直接使用MMMX指令。出出于两个事实实,这确实有有点复杂。第第一个问题是是,MMX公公司可能并不不使用于处理理器,因此另另一种实现还还必须提供。第第二个问题是是,IA322的Linuux使用的汇汇编器目前通通常还无法识识别MMX指指令。3.使用高级语语言或模块的的编译器,可可以直接生成成相应的MMMX指令。这这些工具目前前正在发展,但还没有一个在

31、在Linuxx下充分发挥挥作用。例如,在美美国普渡大学学( HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=/hankd/SWAR/ htttp:/u/hannkd / SWAR / ),我我们正在开发一个编译器,将采采取方言的CC函数写在一一个显式并行,并并会产生SWARR模块的调用为C的功能,以以此来使用现现有的SWAAR支持技术术,包括MMMX。第一个个原型模块的的编译器,建建于19966年秋季,然然而,使用这这种技术将会会比我们原先先预期的更多多的时间。总之,MMX SWAR仍仍然难以使用用。然而,随随着一点点额额外的努力,

32、上上述第二种方方法目前可以以使用了。下下面是一些基基础:1.你不能使用用MMX如果果你的处理器器不支持它。下下面的GCCC代码将被用用于测试MMMX是否被你你的处理器所所支持。如果果返回0则表表示不支持,如如果返回非00则表示支持持。inline exterrnint mmxx_initt(voidd) int mmx_aavailaable; _asmm_ _volattile_ ( /* Geet CPUU verssion iinformmationn */ movl $1, %eaxnt cpuiddnt andl $0 x8000000, %eddxntt movl %edxx, %

33、0 : =q (mmxx_avaiilablee) : /* nno inpput */ ); retuurn mmmx_avaailablle;2.一个MMXX寄存器基本本上长期持一一个在GCCC里称之为无无符号双字型型。因此,这这种类型的内内存基础变量量成为了MMMX模块与CC程序之间的的沟通机制。或或者,你可以以声明你的MMMX数据为为64位数据据结构的数据据(这样便于于确保64位位队列能通过过声明你的数数据类型为一一个带无符号号双字字段的的联合体)。3.如果MMXX可用,你可可以在你的MMMX代码中中使用字节的的汇编指令,使使每个指令进进行编码。通通过手工来制制作确实是一一件痛苦的事事

34、情,但对于于一个编译器器来生成却不不是一件难事事。例如,MMMX指令PPADDB MM0,MMM1可被编编码为GCCC里的如下代代码:_asm_ _voolatille_ (.bytte 0 x00f, 0 xxfc, 00 xc1nnt);请记住,MMXX通常使用一一些同样类型型的能被用于于浮点操作的的硬件,所以以代码与MMMX混合使用用不得援引任任何浮点运算算。浮点堆栈栈在执行任何何MMX代码码之前必须为为空;浮点堆堆栈通常在不不适用浮点的的C函数功能能前是空的。4.通过执行EEMMS指令令的方式退出出您的MMXX代码,它可可被编码为:_asm_ _voolatille_ (.bytte

35、0 x00f, 0 xx77nt);是否上面看起来来很尴尬很粗粗糙?然而,MMMX还相当当年轻.这个文件件的未来版本本将提供更好好的方法来使使用MMX SWAR。5. Linuux的托管附附加处理器尽管这种方法最最近失宠了,这几乎是不可可能的并行处处理方法,以以达到举办一个附加加的并行计算系统的低成本,高高性能的可能能,使用Liinux系统统。 问题是,很少少提供软件支持,几乎乎都是关于自自己的研究。5.1 Linnux的PCC是良好的主主机在一般情况下,往往往附加并行行处理器是专专门履行职能能的具体类型型。在知道几乎所有有研究都是居居于自己之前前,理解一个个道理:尽管管它可能很难难找到一个适

36、适当的Linnux PCC主机特定的的系统,在LLinux平平台PC是一一个非常适合合少数这种使使用类型。对对以后的学习习将会有很大大的帮助。PC机作为主机机有两个主要要原因。首先先是价格低廉廉,且易于扩扩展的能力;资源如:更更多的内存,磁磁盘,网络等等等,都是平平凡地添加到到个人电脑。第第二个是连接接方便。不仅是ISA和和PCI总线线原型卡的广泛使用,并并行端口提供供合理的性能能侵入接口更更是一个优势势。在在IAA32的独立立的I/O空空间也便于借借口提供单独独的I/O端端口地址,以以起到硬件II/O地址的的保护作用。Linux也成成为了一名优优秀的主机操操作系统。源源代码免费提供全面和和广

37、泛的“黑黑客”导游,显然是一个巨巨大的帮助。然然而,Linnux还提供了良好好的近实时调调度,甚至有有一个真正的的实时Linuux版本在 HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=/rtlinux/ http:/luzz.cs.nnmt.eddu/RTTLinuxx的/。也许更为重要的是,同同时提供一个完完整的UNIIX环境中,Liinux可以以支持开发Windoows工具,比如那些在微软DOS和/或Windows。MSODS的程序可以在Linux中使用dosemu MSDOS的情况下执行,并且提供一个受保护的并且能真正运行M

38、SDOS的虚拟机。Linux程序支持Windows 3.xx系列更是直接:免费软件比如wine, HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=http:/www.linpro.no/wine/ http:/www.linpro.no/wine/,对于大多数的程序它模拟Windows 3.11十分的恰到好处,便于在UNIX/X环境下正确而且有效地执行。以下两部分将举举一些结合了了并行系统的的例子,我也也希望它能在在Linuxx下被支持。5.2 你的DDSP是这样样么?有一个处理器繁繁荣的高性能能DSP(数数字信号处理理)处理器市市

39、场。虽然这这些芯片通常常都被设计为为嵌入式特定定应用系统中中,但他们与与并行电脑也也有极大的关关系,为什么么呢?1.他们中的许许多,如德州州仪器( HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=/ http:/wwww.ti.ccom/)TTMS3200和模拟装置置( HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=/ httpp:/wwww.anaalog.ccom/)的的SHARCC DSP家家族,被设计计来利用小或或者无“胶”的逻辑来构构建并行机器器。2.他们很便

40、宜宜,特别是每每MIP或MMFLOP。包包括基本逻辑辑支持在内的的成本,DSSP处理器的的成本仅仅是是PC电脑成成本的十分之之一,对于DDSP来说这这并不是闻所所未闻。3.他们不需要要太多的电量量,也不会带带来太多的热热量。这意味味着,有可能能有这样一些些芯片的所有有的功率都是是有传统的PPC电脑来提提供,在封闭闭的情况下你你的PC电脑脑就不会变成成一个烤箱。4.大多数DSSP指令集里里都具有看起起来奇怪的东东西,那些高高级(例如,CC)编译器好好像是用得并并不怎么好,例例如,“反向位”是用一个附附加的并行系系统,它可以以最直接地编编译和运行主主机的代码,同同时能在DSSP上仔细手手工调整代码

41、码一样运行最最耗时算法。5.这些DSPP处理器并不不是真正设计计于运行类UUNIX操作作系统,而且且一般都不是是很便于作为为独立的通用用计算机处理理器。例如,许许多处理器没没有内存管理理硬件。换句句话说,他们们能工作得到到更好,当他他们被当作一一个更通用目目的的电脑主主机来使用时时如Linuux电脑。虽然有些声卡和和调制解调器器包括DSPP处理器的LLinux驱驱动程序可以以访问,大收收益来自使用用一个附加的的有四个或更更多的DSPP处理器的并并行系统。由于德州仪器TTMS3200系列, HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&

42、u=/sc/docs/dsps/dsphome.htm htttp:/m/sc/ddocs/ddsps/ddsphomme.htmm,已经流行了了非常久,但但这仅仅是微微不足道的建建设TMS3320,已经经有好一些这这样的系统可可用。现在已已经有仅整型型和浮点能力力的TMS3320版本,点格式旧的设计采用了不同寻常的单精度浮点,但新机型支持IEEE格式。老TMS320C4x(又名C4x)达到80 MFLOPS使用TI的专用单精度浮点格式,相反,一个C67x将提供高达1 GFLOPS的单精度或420 MFLOPS双精度为IEEE浮点运算,使用一个VLIW的芯片架构称为VelociTI。它不仅是易

43、于配置多处理器集团作为这些芯片,但在一个单一芯片中,C8x多处理器将提供100 MFLOPS IEEE浮点DSP的主从处理器的RISC随着两个或四个整数。 其他的DSP处处理器家族最最近已经被用用于连接并行行系统,有AADI公司的的SHARCC(又名,AADSP-22106x) HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=/ / 。这些芯片可以配置为一个六处理器共享内存多处理器技术而不需要额外的胶逻辑,而且更大的系统也可以配置使用6个4位链接/芯片。大多数规模较大的系统似乎针对军事应用,但是有点昂贵。然而,综合计算引擎公司 HY

44、PERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=/ /,制作了一个有趣的小双板PCI卡组,称为GreenICE。本单元包含一个16SHARC处理器阵列,并能够提供格式精度IEEE峰值速度大约为190 GFLOPS的处理器。GreenICE成本还不到5000美元。在我看来,并行行DSP处理理器真的值得得在Linuux并行操作作社区里引起起极大的关注注。5.3 FPGGA可重构逻逻辑运算如果并行处理是是所有关于获获得最高的提提速,那么为为什么不建立立定制的硬件件? 好吧,我我们都知道答案案,它的成本本太大,开发发时间太长,当当我们略微改改变

45、算法时便便变得无用等等。但是,最最近进展中的的电可编程FFPGA(现现场可编程门门阵列)已废废止了那些反反对。现在,门密度足够高,使整个个simplle FPGGA的内置处处理器可以在在一个单一,时间来重新配配置(重新设设定)的FPPGA也已经经下降到一个个合理水平,这是重新配置,甚至是从一个移动算法的一个阶段到下一个。这东西不适合心心脏虚弱的人人:你必须使用硬件描描述语言如VHDDL的FPGGA配置,主主机系统,以及写作作的低级别的代码到Linuux上的程序序接口。但是是FPGA成成本低,尤其其是算法操作作在低精度的的整数数据(实实际上,还擅擅长于SWAAR的小超集集),FPGGA执行复杂杂

46、的操作系统统时的速度可可以和你输入入的数据速度度一样快。例例如,简单的的基于FPGGA的系统已已经在基因数数据库搜索时时间上已经优优于超级计算算机系统。还有其他公司在在制作合适的的基于FPGGA的硬件,但但下面的两家家公司做了一一个很好的示示范。虚拟电脑公司提提供各种产品的使用动态态可重构SRRAM为基础的赛灵思FPGGA。他们的的8/16位位的“虚拟的ISSA样机板” HYPERLINK /products/isa.html http:/pproduccts/issa.htmml,价格低低于20000美元。Altera的的ARC的PPCI(Alltera的的可重构计算机,PCCI总线) HY

47、PERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=/html/new/pressrel/pr_arc-pci.html http:/wwww.alteera.coom/htmml/neww/presssrel/pr_arrc-pcii.htmll,是同类型的的卡,但是使使用的是Alltera FPGA和和一个PCII总线,而不不是ISA总总线。许多工具的设计计,硬件描述述语言,编译器,路由由器,映射器器等,作为对对象的代码只只运行在Wiindowss和/或DOOS下。任何何时候当您需需要使用它们们时,你可以以简单地保持并并重新启动您主机P

48、CC上的磁盘分区为DOS / Winddows,然然而,许多这这些软件包可可以在Linnux下使用用dosemmu或像wiine一样的的Windoows模拟器器。6. 普遍感兴兴趣本节中所包含的的材料,适用用于所有四个个并行处理模模型的Linnux。6.1 编程语语言和编译器器我是一个比较知知名的编译器器研究者,所所以我想说,有有很多十分棒棒的编译器在在为Linuux系统自动动产生有效的的并行代码。不不幸的是,现现在很难打破破的一个事实实是,通过各各种明确的沟沟通和带有CC代码的并行行操作一般都都是有GCCC来编译的。下面的语言/编编译器项目,是指语言中的一些些高级别尽了最大大努力从生产产走向

49、合理高高效的代码。一般来说,每每个目标都有有各种各样有有效合理的任任务,但没有有一个强大的通用语言和编译系统,这将使你永永远停止编写写由GCC编编译的C程序序哪个更好呢呢。出于他们们的用途来使使用这些语言言和编译器,你你会更更短的的开发时间,更更容易调试和和维修等。下面列出了大量量的语言和编编译器(排名名不分先后)。下下面这网站里里有许多免费费提供的编译译器(其中大大部分与Liinux并行行处理无关) HYPERLINK /free-compilers/ /free-compilers/。Fortrann 66/777/PCFF/90/HHPF/955至少在科学计算算社区,总是是会z有Foor

50、trann的存在。当当然,现在的的Fortrran并不意意味着还是处处理19666年的ANSSI标准一样样的事情,FFortraan66是一一个很简单的的东西。Foortrann77增加了了大量的图像像功能,其中中最明显的改改进是支持字字符数据和循循环变化。PPCF(并行行计算论坛)FFortraan试图增加加各种功能的的支持图像的的并行处理于于77型。HHPF(高性性能的Forrtran, HYPERLINK /HPFF/home.html /HPFF/home.html),这本身已经经历了两个版本(HPF-1和HPF-2),基本上是加强,规范的,版本很多的东西。如我们以前认识的CM For

51、tran语言,MasPar Fortran,或者Fortran D;它延伸的Fortran90具有增强的并行处理的布局,主要集中在制定的数据。最后,Fortran95是一个相对次要的和提高完善的90。就像能运行C程程序的一般也也能运动f22c,g777(一个不错错的Linuux专用概述述, HYPERLINK http:/linux.uni-regensburg.de/psi_linux/gcc/html_g77/g77_91.html httpp:/liinux.uuni-reegensbburg.dde/psii_linuux/gccc/htmll_g77/g77_991.htmml),是

52、商商业的Forrtran990/95产产品从 HYPERLINK http:/extweb.nag.co.uk/nagware/NCNJNKNM.html htttp:/eextwebb.nag.co.ukk/nagwware/NNCNJNKKNM.httml中可以以获得相关资资料。这是因因为所有的这这些编译器最最终都归结为为同一代码生生成GCC的的使用背景。商业的Forttran pparalllelizeers,可以以生成用于SSMPS的代代码从现有的的 HYPERLINK / http:/和和 HYPERLINK /vast/vast_parallel.html http:/vast/v

53、ast_paralllel.hhtml。现现在尚不清楚楚,是否这些些编译器会用用在SMP Linuxx上,但它有有可能会给出出在SMP Linuxx下工作的标标准POSIIX线程(即即,LinuuxThreeads)。波特兰集团, HYPERLINK /translate?hl=zh-CN&sl=en&tl=zh-CN&prev=_t&u=/ hhttp:/m/,具有商业并并行的可以为为SMP LLinux生生成代码的HHPF Foortrann(和C,CC+)编译译器;他们也也有一个针对对使用MPII或PVM的的集群。这些些在 HYPERLINK %20/ httpp:/m/ 的FORGGR

54、/spff/xHPFF产品有可能能对SMP或或集群有用。免费提供的并行行Fortrrans可能能工作于的并并行Linuux系统包括括:1.ADAPTTOR(自动动数据并行翻翻译, HYPERLINK http:/www.gmd.de/SCAI/lab/adaptor/adaptor_home.html htttp:/wwww.gmmd.de/SCAI/lab/aadaptoor/adaaptor_home.html),它它们可以利用用MPC或PPVM将HPPF翻译成777/90代代码,但没有有提及到Liinux。2.FX HYPERLINK /fx/Fx htttp:/fx/FFx在卡内基基梅

55、隆有一些些目标工作站站集群,是否否有Linuux?3.HPFC(HHPF的原型型编译器, HYPERLINK http:/www.cri.ensmp.fr/coelho/hpfc.html hhttp:/www.cri.eensmp.fr/ccoelhoo/hpfcc.htmll)利用PVVM可以生成成Fortrran77代代码。它在LLinux集集群中可用么么?4.PARADDIGM(以以分布式内存存通用处理机机为目的的并并行化, HYPERLINK /Paradigm/ htttp:/www.ccrhc.uuiuc.eedu/Paaradiggm/)能和和Linuxx一起使用么么?5.北极

56、星编译译器, HYPERLINK /eigenman/polaris/ htttp:/eece.wwww.ecnn.purddue.eddu/eiigenmaan/pollaris/,能为共享享内存处理器器生 成Foortrann代码,并有有可能很快被被重定向于LLinux集集群。6.PREPAARE, HYPERLINK http:/www.irisa.fr/EXTERNE/projet/pampa/PREPARE/prepare.html htttp:/www.iirisa.fr/EXXTERNEE/projjet/paampa/PPREPARRE/preepare.html,目目标MPI

57、集集群.现现在还不明确确它是否能生生成在IA332处理器上上运行的代码码。7.集合AD APT和AADLIB,sshpf(子子集高性能FFortraan编译系统统, HYPERLINK http:/www.ccg.ecs.soton.ac.uk/Projects/shpf/shpf.html httpp:/wwww.ccgg.ecs.sotonn.ac.uuk/Proojectss/shpff/shpff.htmll)是公共域域的,并能利利用MPI产产生Forttran900调用所以,如果果你有一个LLinux下下的Forttran900编译器.8.SUIF(斯斯坦福大学中中间形态,请请参阅

58、HYPERLINK / htttp:/ssuif.sstanfoord.eddu/)具有有C和Forrtran的的并行编译器器。这也是国国家重点项目目的编译器基基础设施那么,所有有人都会来关关注并行Liinux系统统么?我敢肯定,我遗遗漏了各种方方言的Forrtran编编译器,许多潜在的有有用的,但有有这么多确实难以跟踪踪。今后,我我宁愿只列出出那些运行在在Linuxx上鲜为人知知的编译器。请请电子邮件您您宝贵的意见见或建议到 HYPERLINK /HOWTO/hankd hhankdengr.uky.eedu。GLU(清晰的的粒状结构)GLU(清晰的的粒状结构)是是一个非常高高层次的建立立在

59、混合编程程模型上的编编程系统,结结合了内涵和和必要的模型型。它同时支支持PVM和和TCP套接接字。它能否否在Linuux下运行呢呢?更多的信信息可以见 HYPERLINK /GLU.html hhttp:/www.csl.ssri.coom/GLUU.htmll。Jade和SAAMJade是一种种并行编程语语言,扩展了了C的功能来来适应连续的的和必要的程程序。它假定定一个分布式式共享存储模型,这是Sam实施集群工作作站PVM的的使用。 更更多信息可在在 HYPERLINK /scales/sam.html http:/scalles/saam.htmml。Mentat和和LegioonMent

60、at是是一个可与工工作站集群一一起运行的面面向对象的并并行处理系统统,并且已被被移植到Liinux。MMentatt编程语言(MMPL)是一一种建立在CC+基础之之上的面向对对象的编程语语言。Menntat执行行系统使用类类似于非阻塞塞远程调用技技术。更多的的信息可以见见 HYPERLINK /mentat/ http:/wwww.cs.vvirginnia.eddu/meentat/Legion HYPERLINK /legion/ http:/wwww.cs.vvirginnia.eddu/leegion/建立在Meentat之之上,提供了了单个虚拟机机在广域网机机器的表现。MPL (Ma

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论