【文章內容簡介】
個移動算法的一個階段到下一個。這東西不適合心臟虛弱的人:你必須使用硬件描述語言如VHDL的FPGA配置,主機系統(tǒng),以及寫作的低級別的代碼到Linux上的程序接口。但是FPGA成本低,尤其是算法操作在低精度的整數(shù)數(shù)據(jù)(實際上,還擅長于SWAR的小超集),F(xiàn)PGA執(zhí)行復雜的操作系統(tǒng)時的速度可以和你輸入的數(shù)據(jù)速度一樣快。例如,簡單的基于FPGA的系統(tǒng)已經(jīng)在基因數(shù)據(jù)庫搜索時間上已經(jīng)優(yōu)于超級計算機系統(tǒng)。還有其他公司在制作合適的基于FPGA的硬件,但下面的兩家公司做了一個很好的示范。虛擬電腦公司提供各種產品的使用動態(tài)可重構SRAM為基礎的賽靈思FPGA。他們的8/16位的“虛擬的ISA樣機板” ,價格低于2000美元。Altera的ARC的PCI(Altera的可重構計算機,PCI總線),是同類型的卡,但是使用的是Altera FPGA和一個PCI總線,而不是ISA總線。許多工具的設計,硬件描述語言,編譯器,路由器,映射器等,作為對象的代碼只運行在Windows和/或DOS下。任何時候當您需要使用它們時,你可以簡單地保持并重新啟動您主機PC上的磁盤分區(qū)為DOS / Windows,然而,許多這些軟件包可以在Linux下使用dosemu或像wine一樣的Windows模擬器。6. 普遍感興趣本節(jié)中所包含的材料,適用于所有四個并行處理模型的Linux。 編程語言和編譯器我是一個比較知名的編譯器研究者,所以我想說,有很多十分棒的編譯器在為Linux系統(tǒng)自動產生有效的并行代碼。不幸的是,現(xiàn)在很難打破的一個事實是,通過各種明確的溝通和帶有C代碼的并行操作一般都是有GCC來編譯的。下面的語言/編譯器項目,是指語言中的一些高級別盡了最大努力從生產走向合理高效的代碼。一般來說,每個目標都有各種各樣有效合理的任務,但沒有一個強大的通用語言和編譯系統(tǒng),這將使你永遠停止編寫由GCC編譯的C程序…哪個更好呢。出于他們的用途來使用這些語言和編譯器,你會更更短的開發(fā)時間,更容易調試和維修等。下面列出了大量的語言和編譯器(排名不分先后)。下面這網(wǎng)站里有許多免費提供的編譯器(其中大部分與Linux并行處理無關)。Fortran 66/77/PCF/90/HPF/95至少在科學計算社區(qū),總是會z有Fortran的存在。當然,現(xiàn)在的Fortran并不意味著還是處理1966年的ANSI標準一樣的事情,F(xiàn)ortran66是一個很簡單的東西。Fortran77增加了大量的圖像功能,其中最明顯的改進是支持字符數(shù)據(jù)和循環(huán)變化。PCF(并行計算論壇)Fortran試圖增加各種功能的支持圖像的并行處理于77型。HPF(高性能的Fortran,),這本身已經(jīng)經(jīng)歷了兩個版本(HPF1和HPF2),基本上是加強,規(guī)范的,版本很多的東西。如我們以前認識的CM Fortran語言,MasPar Fortran,或者Fortran D;它延伸的Fortran90具有增強的并行處理的布局,主要集中在制定的數(shù)據(jù)。最后,F(xiàn)ortran95是一個相對次要的和提高完善的90。就像能運行C程序的一般也能運動f2c,g77(一個不錯的Linux專用概述,),是商業(yè)的Fortran90/95產品從。這是因為所有的這些編譯器最終都歸結為同一代碼生成GCC的使用背景。商業(yè)的Fortran parallelizers,可以生成用于SMPS的代碼從現(xiàn)有的://?,F(xiàn)在尚不清楚,是否這些編譯器會用在SMP Linux上,但它有可能會給出在SMP Linux下工作的標準POSIX線程(即,LinuxThreads)。波特蘭集團,具有商業(yè)并行的可以為SMP Linux生成代碼的HPF Fortran(和C,C++)編譯器;他們也有一個針對使用MPI或PVM的集群。這些在。免費提供的并行Fortrans可能工作于的并行Linux系統(tǒng)包括:(自動數(shù)據(jù)并行翻譯,),它們可以利用MPC或PVM將HPF翻譯成77/90代碼,但沒有提及到Linux。 ~fx/Fx在卡內基梅隆有一些目標工作站集群,是否有Linux?(HPF的原型編譯器,~coelho/)利用PVM可以生成Fortran77代碼。它在Linux集群中可用么?(以分布式內存通用處理機為目的的并行化,)能和Linux一起使用么?,~eigenman/polaris/,能為共享內存處理器生 成Fortran代碼,并有可能很快被重定向于Linux集群。,目標MPI集群...現(xiàn)在還不明確它是否能生成在IA32處理器上運行的代碼。 APT和ADLIB,shpf(子集高性能Fortran編譯系統(tǒng),)是公共域的,并能利用MPI產生Fortran90調用…所以,如果你有一個Linux下的Fortran90編譯器….(斯坦福大學中間形態(tài),請參閱)具有C和Fortran的并行編譯器。這也是國家重點項目的編譯器基礎設施…那么,所有人都會來關注并行Linux系統(tǒng)么?我敢肯定,我遺漏了各種方言的Fortran編譯器,許多潛在的有用的,但有這么多確實難以跟蹤。今后,我寧愿只列出那些運行在Linux上鮮為人知的編譯器。請電子郵件您寶貴的意見或建議到hankd@。GLU(清晰的粒狀結構)GLU(清晰的粒狀結構)是一個非常高層次的建立在混合編程模型上的編程系統(tǒng),結合了內涵和必要的模型。它同時支持PVM和TCP套接字。它能否在Linux下運行呢?更多的信息可以見。Jade和SAMJade是一種并行編程語言,擴展了C的功能來適應連續(xù)的和必要的程序。它假定一個分布式共享存儲模型,這是Sam實施集群工作站PVM的使用。 更多信息可在~scales/。Mentat和LegionMentat是一個可與工作站集群一起運行的面向對象的并行處理系統(tǒng),并且已被移植到Linux。Mentat編程語言(MPL)是一種建立在C++基礎之上的面向對象的編程語言。Mentat執(zhí)行系統(tǒng)使用類似于非阻塞遠程調用技術。更多的信息可以見~mentat/Legion ~legion/建立在Mentat之上,提供了單個虛擬機在廣域網(wǎng)機器的表現(xiàn)。MPL (MasPar 編程語言)為了不與Mentat的MPL混淆,這種語言最初被發(fā)展為專用于MasPar SMID超級計算機的本地并行C語言。然而,MasPar已經(jīng)不再從事這方面的業(yè)務了(它們現(xiàn)在是NeoVista Solutions,一個數(shù)據(jù)采集公司),但他們的MPL建成使用GCC編譯器,所以它仍然是免費提供。在亨茨維爾和普渡大學的共同努力下,MarPar的MPL已經(jīng)可以利用AFAPI實現(xiàn)重定向生成C代碼,因此可以再Linux SMP和集群上運行。然而,編譯器還存在一些問題,請見~laufer/mspls/papers/。PAMS(并行應用管理系統(tǒng))Myrias是一家銷售軟件產品的公司,稱為PAMS(并行應用管理系統(tǒng))。PAMS為虛擬內存并行處理提供了非常簡單的指令。網(wǎng)絡版Linux機組還未被支持。參見。ParallaxisIIIParallaxis III是一個結構化編程語言,它為數(shù)據(jù)并行(一個SIMD模型)擴展了Modula – 2和“虛擬處理器和連接”。該Parallaxis軟件包含了使用于順序和并行電腦系統(tǒng)的編譯器,調試器(gdb和xgbd調試器),和來自不同領域的各種例子算法,尤其是圖像處理方面。這將運行在順序的Linux系統(tǒng)上…舊版本支持各種并行目標,新版本也將會(例如,配置了PVM集群)。更多的信息可見。pC++/Sage++pC++/Sage++是一種擴展到C++語言,它允許通過使用來自于基礎元素族的“收藏對象”來實現(xiàn)數(shù)據(jù)并行操作。這是一個預處理生成可運行于PVM的C++代碼。它能否運行于Linux ?更多的信息可見。SR (同步資源)SR(同步資源)是一個并行編程語言封裝過程中的資源和變量;提供了過程相互作用的主要機制。SR提供了用于調用服務操作的機制和一種新的融合了。因此所有本地和遠程過程調用,教誨,消息傳遞,動態(tài)進程創(chuàng)建,和組播與支持。SR同樣還支持共享全局變量和操作。它已經(jīng)被移植到Linux但目前尚不清楚怎么樣的并行可被執(zhí)行。更多的信息可見。ZPL和IronManZPL是一個數(shù)組為基礎的編程語言,用于支持工程和科學應用。它生成調用一個簡單的消息傳遞接口,稱為鐵人,并通過系統(tǒng)一些功能,構成這個接口可以很容易地實現(xiàn)使用幾乎任何消息。然而,它主要是針對在工作站集群的MPI和PVM的,并支持Linux。更多的信息可見。 性能問題已經(jīng)有很多人花了很多時間去基準特定主機板,網(wǎng)卡等等,試圖確定哪個是最好的。這個方法還存在一個問題,那就是當你能夠基準一些東西的時候,它可能已經(jīng)不再是最好的了,甚至可能已經(jīng)被撤下,取而代之的是市場和屬性完全不同的一個修正模型。購買PC硬件就像買橙汁。 通常,它是用非常好的東西,無論什么公司名字的標簽上。 很少人知道,也不關心,那里的組件(或濃縮橙汁)來源。盡管如此,有一些硬件差異你還是應該注意的。我的建議很簡單,就是你可以從運行于Linux下的這個硬件或者怎樣的預期效果,然后集中你的注意力在獲取快速的驅動,良好的價格和合理的政策。一個很好的概括各種PC處理器的不同在;事實上,整個WWW網(wǎng)站。它也有必要了解一個位的硬件配置有關的具體表現(xiàn),以及Linux的標桿HOWTO。英特爾IA32的處理器有許多精致的細節(jié)特殊寄存器,可用于測量正在運行的系統(tǒng)性能。英特爾VTune,…不行的是不能再Linux下運行。一個可加載模塊的設備驅動程序和庫例程寄存器,訪問現(xiàn)有的奔騰性能從請記住,這些寄存器是處理器的性能在不同的IA32上的不同;此代碼僅適合奔騰,而不是486,奔騰Pro,奔騰II,K6等等。另一個表現(xiàn)是適當?shù)脑u論,尤其是對那些你們誰想要建立的大集群,把他們的空間很小。 至少有一些現(xiàn)代化的處理器采用熱傳感器和電路,用于內部時鐘速度慢,如果工作溫度過高(企圖減少熱輸出,提高可靠性)。我不是說每個人都應該去購買佩爾蒂埃設備(熱泵)來讓每個CPU冷卻,但你應該知道,高工作溫度不只是縮短元件壽命它也可以直接降低系統(tǒng)性能。不要把你的物理配置移動到區(qū)塊的氣流區(qū),還要注意熱陷阱領域限制等。最后,性能不只是速度,而且還有可靠性和可用性。高可靠性意味著你的系統(tǒng)幾乎從不崩潰,甚至當組件失敗... 這通常需要特殊的功能,如主板交換冗余電源和熱,但一般卻不便宜。高可用性的概念,指的是你的系統(tǒng)能利用現(xiàn)有的幾乎所有時間... 系統(tǒng)可能會崩潰當組件失敗,但該系統(tǒng)能迅速修復并重新啟動。有一個高可用性的HOWTO,那里討論了許多問題的基礎。 然而,特別是對于群集,可以實現(xiàn)高可用性只要有幾個備件足以。 我建議至少有一臺備用,并希望有至少一個群集不遺余力地為沒一臺16電腦貢獻自己的力量。舍棄一個硬件故障和更換設備,如果考慮周全不僅可以獲得高的性能更可以有低的成本。 結論這就是我們的方向那么,每個人做并行處理的時候都是用Linux?是的!不久以前,很多人驚嘆到是否并行處理超級計算機公司的滅亡就意味著并行處理的滅亡。我并不這樣認為(參見~hankd/Opinions/),現(xiàn)在似乎很明確,并行處理正在逐漸上升。即便是英特爾,最近剛剛停止了并行超級計算機,一直以并行處理能在MMX和即將推出的IA64上運行為驕傲(顯性并行指令計算機)。如果你用你最愛的搜索引擎搜索“Linux”和“parallel”你會發(fā)現(xiàn)有不少的地方有Linux參與是用并行處理。特別是,Linux PC機群似乎是突然出現(xiàn),到處都是。 Linux的適宜性,再結合PC硬件的低成本和高性能,使得并行處理使用Linux的流行方法為小型超級計算機,還包括預算約束,團體和大型計算機等帶來了便利,同事還具有充足的資金和國家研究的支持。這個文件的各種項目中列出了各個地方相似的并行Linux配置等。然而,在~pplinux/Sites/,有一個超文本文件,以提供本地使用Linux系統(tǒng)的并行處理的圖片,所有不同的描述信息和聯(lián)系等。有關于您的網(wǎng)站的信息發(fā)布有::一個機器的SMP集群,SWAR系統(tǒng),或被配置在Linux下允許用戶并行執(zhí)行程序的個人電腦連接處理器。一個基于Linux的軟件環(huán)境(如PVM,MPI,AFAPI)的直接支持并行處理的系統(tǒng)必須安裝在該系統(tǒng)上。然而,這些硬件則不需要在Linux下專門的并行處理,可能是完全不同的用途用于并行程序時不被運行。將你的信息發(fā)送到hankd@。請參照你在其它完整的網(wǎng)站信息上使用的標準格式。在沒有一個明確的聯(lián)絡人請求的情況下,不會有任何網(wǎng)站被列出?,F(xiàn)今已有14個集群上市,但我們知道當今世上至少有好幾打Linux集群。當然,上市并不意味著宣傳,等等;我們的希望僅僅是提高認識度,研究和協(xié)作包括使用Linux的并行處理。MosixMOSIX modifies the BSDI BSD/OS to provide dynamic load balancing and preemptive process migration across a networked group of PCs. This is nice stuff not just for parallel processing, but for generally using a cluster much like a scalable SMP. Will there be a Linux version? Look at NOW (Network Of Workstations)The Berkeley NOW (Network Of Workstations) project, , has led much of the push toward parallel puting using networks of workstations. There is a lot work going on here, all aimed toward demonstrating a practical 100 processor system in the next few years. Alas, they don39。t use Linux. Parallel Processing