Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

Beowulf 中文HOWTO

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]


直接架设第一类Beowulf,然後想办法让□的应用程式来适应这套系统,或者在Beowulf上直接跑一个现成的平行应用程式(必须注意上述所提的可携性和效能的议题)。 
先思考一下□将要在□的Beowulf上跑的应用程式,然後估计何种类型的硬体和软体是□所需要的。 
两种情形□都要考虑效能的议题,一般而言,有三件事□需要做: 

决定□的程式中的同时部份。 
估计平行效能。 
描述出程式中的同时部份。 
让我们一一详述。 


决定□的程式中的同时部份
这个步骤通常是要考虑将□的程式平行化,如何平行化将在第二个步骤,现在□要决定资料的关连性。 

>从实际操作的角度来看,应用程式可能有二种形态的同时性:计算(数字的计算)和I/O(资料库)。虽然大部分情形,计算和I/O同时性是相互正交的(orthogonal),但是有些程式是两者都需要,有些工具程式可以对现有的程式做同时性的分析,这些工具大部分是为Fortran程式语言设计的,使用Fortran语言有两种理由:很早以来,大部分的数字计算程式是用Fortran语言写的,另外Fortran是很容易分析的。假如没有可利用的工具,这个步骤对现存的应用程式将是非常困难。 


估计平行效能
没有工具程式的帮助,这个步骤将需要不断地尝试错误,或是根据旧有经验来猜测。假如□心目中已经有特定的应用程式,想要决定这个应用程式是CPU限制(计算限制),还是硬碟限制(I/O限制),根据□的需求,□的Beowulf可能会有很大的差异。举例来说,一个计算限制的问题可能需要一些很快的CPU,高速且低延迟的网路,但是一个I/O限制的问题可能需要较慢的CPU和高速乙太网路。 

这个建议令大多数人觉得很讶异,一般的想法是处理器越快越好,这想法当然是正确的,但是□必须要有不受限制的预算经费,实际情形是要在有限的经费得到最高效能的系统,对一个I/O限制的问题,已有现成的规则(称作Eadline-Dedkov定律)可供利用。 

对两套有相同累积CPU效能指数的平行电脑而言,一个拥有较慢处理器(一个较慢的处理器间的传输网路)对I/O主导的应用程式将会有较佳的效能。 

要证明这项规则将会超出本文件的□围,□若觉得有趣,可以下载这篇论文 I/O主导应用程式在平行电脑上的效能考量(Performance Considerations for I/O-Dominant Applications on Parallel Computers) (Postscript 格式 109K ) (ftp://www.plogic.com/pub/papers/exs-pap6.ps)

一旦□已经决定程式中的同时性是何种形态,□将需要估计一旦平行处理的话,效能将会如何。参见 Software 有对软体工具的描述。 

若没有这些工具,□可以透过这个步骤,自行考量,假如每次计算是以分钟计,资料传输则以秒计,那它将是很好的平行对象,但是记住,假如□将16分钟的计算时间拆成32份,而每份的资料传递需要数秒钟,那麽事情将变得严重。 


描述出程式中的同时部份
有几种方法找出程式中的同时部份: 

明确地平行执行 
隐含地平行执行 
这二者主要的差别在於明确地平行化取决於使用者,隐含地平行化取决於编译器。 


明确的方法
有一些基本的方法是要靠使用者专为平行电脑来修改原始码,使用者必须使用 PVM 或 MPI在程式内增加资讯, 或是使用POSIX绪(无论如何要牢记心中,绪无法在SMP主机板之间移动)。 

明确的方法在实行和除错上最为困难,使用者通常在标准Fortran 77或 C/C++原始码中加入函式。MPI程式库加入一些函式,使得一些标准平行方法容易实行(例如分散和收集函式),另外还可以使用已经被平行化的标准程式库。无论如何要将可携性和效能之间的平衡牢记心中。 

从历史上的理由,大多数数值计算的程式是用Fortran语言所写的,因此在平行计算中,Fortran是受最大的支援(工具、程式库等)。现在大多数的程式设计者都是用C语言,或是认为C语言可以执行地更快,而用C语言重新改写现存的Fortran应用程式。由於C语言最接近通用的机器语言,C语言较快可能是正确的,但是它也有一些重要的缺陷。C语言使用指标(pointer)会让资料相关性的决定极度困难,自动分析指标也是极度困难,假如□有现成的Fortran程式,并且未来想要变成平行程式□千万不要把它转成C语言。 


隐含的方法
隐含方法是使用者放弃一些或全部放弃自行平行,改用编译器的一种方法,例如 FORTRAN 90, 高效能Frotran (High Performance Fortran,HPF), 大量协同平行(Bulk Synchronous Parallel,BSP)还有许多正在发展当中。 


隐含方法仍要求使用者对於程式同时的特性提供一些资讯,但是编译器必须对如何平行地执行同时性做出许多决定,这些方法提供某种程度的可携性和效能,但是对一个平行编译器,仍然没有一个最好的方法来描述同时性的问题。 




--------------------------------------------------------------------------------

    
--------------------------------------------------------------------------------

5. Beowulf资源


5.1 起点 


Beowulf mailing list. 只要电子邮件寄到 beowulf-request@cesdis.gsfc.nasa.gov ,在邮件内容填上 subscribe 。 
Beowulf 网页 http://www.beowulf.org 
Extreme Linux http://www.extremelinux.org 
在RedHat网站上的Extreme Linux 软体 http://www.redhat.com/extreme 


5.2 文件 


Beowulf HOWTO最新版本 http://www.sci.usq.edu.au/staff/jacek/beowulf. 
架设一个Beowulf系统 http://www.cacr.caltech.edu/beowulf/tutorial/building.html 
Jacek的 Beowulf 连结 http://www.sci.usq.edu.au/staff/jacek/beowulf. 

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:The Linux BootPrompt-HowTo 中译版   下一篇:Sound Blaster AWE 32/64 HOWTO 如何在Linux设定声卡

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号