并行計算通信庫測試方法研究及實踐.doc_第1頁
并行計算通信庫測試方法研究及實踐.doc_第2頁
并行計算通信庫測試方法研究及實踐.doc_第3頁
并行計算通信庫測試方法研究及實踐.doc_第4頁
并行計算通信庫測試方法研究及實踐.doc_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

-專業(yè)文檔,值得下載!-專業(yè)文檔,值得珍藏!-并行計算通信庫測試方法研究及實踐熊玉慶1張云泉2(中科院計算所,100080,北京)1(中科院軟件所,100080,北京)21摘要并行計算通信庫的測試在并行計算系統(tǒng)中起一個極其重要的作用。一般對通信庫的測試都是通過設計一些測試程序對庫的各個或幾個部分分別單獨隔離測試。但是許多庫中的錯誤是這種隔離測試方法測不出來的,只有當庫的多個部分以某種復雜的,有機的方式組合運行時才會暴露出來。這種復雜有機的組合方式,從設計庫的測試角度很難形成。本文提出二個新的測試方法,這二方法是根據(jù)通信庫結構的分層特性,利用可移植的上層庫的測試程序來測試下層庫。上層庫的測試程序也可看作是下層庫的應用程序,但與一般的下層庫應用程序不同,它幾乎覆蓋了下層庫的各個部分,且有機地將它們組合起來,運行時形成某種復雜的形態(tài),而僅用下層庫的測試程序往往達不到這種形態(tài)。這樣逃過下層庫測試程序的錯誤就可能暴露出來。關鍵詞并行計算,通信庫,測試方法,MPI,BLACSStudyandPracticeofTestingApproachesofCommunicationLibrariesforParallelComputingXiongYuqing1ZhangYunquan2(TheinstituteofComputingTechnology,ChineseAcademyofSciences,100080,Beijing)1(TheinstituteofSoftware,ChineseAcademyofSciences,100080,Beijing)2AbstractTestingofcommunicationlibrariesforparallelcomputinghasanimportantroleinparallelcomputingsystems.Ingeneral,testingofcommunicationlibrariesisdonebysometestersdesignedtotesteveryorseveralpartsofthelibrariesseparately.However,manyerrorsoflibrariesnottestedbytheseparatemethodscanbeexposedwhenmanypartsoflibrariesarerunningbycombinationofthemintermofakindofcomplicatedandorganicways.Butitisratherdifficultthatthecomplicatedandorganiccombinationsresultfromthedesignoflibrarytestersthemselves.Thispaperproposestwonewtestingapproaches,whicharebasedonthefeatureoflayeredlibraryarchitecturesandtestslowerlibrariesbyportabletestersofupperlibraries.Thetestersofupperlibrariescanalsoberegardedasapplicationprogramsoflowerlibraries,buttheyaredifferentfromgeneralapplicationprogramsoflowerlibraries.Theyalmostcoververypartsoflowerlibraries,combinethemorganically,andformacomplicatedsituationinruntime,whichcannotbeeasilyobtainedonlybytestersoflowerlibraries.Inthiscase,theerrorsmaybeexposedwhichcanescapefromtestersoflowerlibraries.Keywords:parallelcomputing,communicationlibrary,testingapproach,MPI,BLACS1引言并行計算通信庫的測試對并行計算系統(tǒng)至關重要,因為一個正確的通信庫是并行計算系統(tǒng)的基礎。對通信庫的測試,一般是對庫的各個或幾個部分分別隔離測試12。雖然也有所謂的系統(tǒng)測試,但也往往只是考慮到有限的方面。然而,庫中的許多錯誤是在多個成分以某種有機的方式組合起來相互作用時才暴露出來,而人們很難從測試角度有意識地構造出這種情形。本文根據(jù)通信庫的結構特性,提出二個新的測試方法。一般地,通信庫結構都是分層的。例如,用于線性代數(shù)計算的通信庫BLACS3(BasicLinearAlgebraCommunicationSubprograms)是建立在MPI4和PVM5等通信庫上的,而MPI的一個實現(xiàn)MPICH6又是建1本文完成于中國科學院軟件研究所并行軟件研究開發(fā)中心,并得到國家863計劃資助。-專業(yè)文檔,值得下載!-專業(yè)文檔,值得珍藏!-立在P47上的。這二個新的測試方法就是利用某平臺上正確的上層通信庫的可移植測試程序來測試另一平臺上的下層通信庫。上層通信庫測試程序也可看作下層通信庫的應用程序,但是由于上層庫的實現(xiàn)一般覆蓋了下層庫的各個部分,上層庫的測試程序又覆蓋了上層庫的各個部分。因而與一般的下層庫應用程序不同,上層庫的測試程序也覆蓋了下層庫的幾乎所有部分,且將它們有機地組合起來,在運行時,它們形成一種對下層庫來說極復雜的情形。這種復雜的情形從下層通信庫測試角度很難人為地構造出來。在這種情形下,許多下層庫測試程序不能測的錯誤就可能暴露出來。本文以成功地在HitachiSR2201和曙光2000上運行的,建立在MPI和PVM上的BLACS的測試程序來測試其他并行計算系統(tǒng)(在本文中我們統(tǒng)稱它們?yōu)閄系統(tǒng))上已通過MPI測試程序測試的MPI系統(tǒng)為例,證明本文提出的測試方法的可行性。2通信庫測試新方法原理測試方法一:設LC是一個在平臺上的要測試的通信庫,UC是建立在LC上的可移植通信庫(如圖1)。TEST_UC是UC的一個測試程序,在另一平臺上TEST_UC成功地通過對UC的測試。因而在平臺上TEST_UC的正確性被確保。為了對上的LC庫進行測試,把TEST_UC在上運行。由于UC是可移植的,因而如果上的LC是正確的話,TEST_UC應該與在上一樣成功通過;若不能,則應該可以判定是上的LC或其下層庫有錯誤。圖1通信庫UC的結構(對于方法一)測試方法一只能確定LC或其下層庫有錯誤。如果需要準確確定錯誤位置,則可應用下面的測試方法二。測試方法二:設LCa和LCb是二個在平臺上的要測試的通信庫,它們是建立在另一較低層通信庫LLC上。UC是建立在LCa和LCb上的可移植通信庫(如圖2)。TEST_UC是UC的一個測試程序,在另一平臺上TEST_UC成功地通過對UC的測試。因而在平臺上TEST_UC的正確性被確保。為了對上的LCa和LCb庫進行測試,把TEST_UC在上運行。由于UC是可移植的,因而如果上的LCa和LCb是正確的話,TEST_UC應該與在上一樣成功通過;若不能,則若對建立在LCa上的UC,TEST_UC不能通過而對建立在LCb上的UC,TEST_UC能通過,則應該可以判定是上的LCa有錯誤;若對建立在LCb上的UC,TEST_UC不能通過而對建立在LCa上的UC,TEST_UC能通過,則應該可以判定是上的LCb有錯誤;若都不能通過,則上LLC有錯誤的可能性比LCa和LCb都錯的可能性大。UCLC-專業(yè)文檔,值得下載!-專業(yè)文檔,值得珍藏!-UCUC圖2通信庫UC的結構(對于方法二)在上述二個測試方法中UC的可移植性很關鍵,否則的話,當TEST_UC在上不能通過時,就不能判定是上的LC(對方法一)或LCa或LCb或LLC(對方法二)有錯誤。因為這時候的錯誤可能是UC不可移植帶來的。測試方法一比測試方法二簡單,快捷。但測試方法二可更準確地定位錯誤。當用測試方法一確定LC或其下層庫有錯誤,但很難確定錯誤的準確位置時,可用測試方法二。若滿足測試方法二中的條件,則錯誤出在LC下層庫的可能性很大。這時,可將注意力集中在LC的下層庫中進行排錯。3BLACS,BLACS測試程序及MPICH測試程序BLACS是一個面向線性代數(shù)計算的,可移植的通信庫,它是建立在MPI和PVM等較低層的通信庫上的。在并行計算系統(tǒng)X上BLACS的結構如圖3所示.BLACS系統(tǒng)基本上由二部分組成:通信子程序和支撐子程序。通信子程序由點到點通信,廣播通信和組合操作組成。支撐子程序主要由系統(tǒng)初始化,退出系統(tǒng)及邏輯進程網(wǎng)格信息獲取組成。建立在MPI和PVM上的BLAC的這些部分幾乎涉及MPI和PVM的各個部分。圖3通信庫BLACS在系統(tǒng)X上的結構BLACS測試程序對BLACS的上述各個部分分別進行測試,重點對通信子程序,尤其是廣播通信和組合操作測試較多,對各種矩陣的形狀,大小,各種數(shù)據(jù)類型,各種邏輯進程網(wǎng)格形狀,及群通信時數(shù)據(jù)在進程之間的流向等進行多種組合測試。MPICH是MPI的一個著名實現(xiàn)1。MPICH測試程序也是對MPICH的各個部分分別進UCLCaLCbLLC-專業(yè)文檔,值得下載!-專業(yè)文檔,值得珍藏!-行測試。這些測試是由很多小的測試程序來執(zhí)行的。它們分成下面幾類:測試各種點到點通信子程序;測試各種群通信子程序;測試通信上下文(context)操作;測試環(huán)境子程序;測試拓撲子程序;一些其他的測試程序。它們進行一些所謂的系統(tǒng)測試,但考慮的情形很簡單。由此可看出,MPICH的測試程序并沒有對MPICH的各個部分進行復雜的混合的測試。事實上,很多復雜的情形從測試程序的設計角度,也很難構造出來。BLACS測試程序雖然是為測試BLACS而進行設計的,考慮的情況是有限的。然而它對于下層的MPI來說,卻是一個極復雜的應用程序。由于BLACS幾乎涉及MPI的各個部分,而BLACS測試程序又完全覆蓋了BLACS的所有部分。因而與一般的MPI應用程序不同,它幾乎覆蓋了MPI的各個部分,且將它們有機地組合在一起,運行時呈現(xiàn)出一個極其復雜的狀態(tài),這種狀態(tài)是MPICH測試程序達不到的。這樣,逃過了MPICH測試程序的錯誤可能這時就暴露出來了?;谶@一情況利用第2節(jié)的方法,我們用已經在曙光2000和HitachiSR2201上順利運行了的BLACS測試程序來測試新的并行系統(tǒng)上的MPI實現(xiàn)。4BLACS測試程序對X系統(tǒng)上的MPI的測試X系統(tǒng)上的MPI(其實現(xiàn)是MPICH)已經通過MPI(即MPICH)測試程序的測試。但運用上述測試方法及BLACS測試程序,我們發(fā)現(xiàn)這些系統(tǒng)的MPI的下列問題:MPI同步及進程掛起問題。由于BLACS測試程序提供了輸入?yún)?shù)的組合測試(數(shù)據(jù)精度,實現(xiàn)算法(邏輯拓撲),進程網(wǎng)格,消息長度),使得用戶很容易通過修改輸入文件參數(shù)改變測試的組合數(shù)目及測試模式。改變了原有MPI軟件包中同一種通信模式多次重復測試的做法使得整個測試具有動態(tài)的效果。由于有些系統(tǒng)在實現(xiàn)MPI的同步時,為了提高同步速度,采用硬件實現(xiàn)所有進程的同步。但未考慮到只有部分進程參與同步時的情況。這導致部分進程同步時的掛起現(xiàn)象。這種情況在原有MPI軟件包單一重復的測試情況下,是不可能查出來的。而運用前述的測試方法一和BLACS測試程序,通過不斷改變參與同步的進程數(shù)目,使該問題暴露出來。消息處理器與MPI通信buffer之間的Cache一致性問題。MPI軟件包在進行正確性測試時,只選取小規(guī)模問題進行測試,這就使得系統(tǒng)的某些關鍵參數(shù)不能受到充分的測試。而這些關鍵參數(shù)正是消息系統(tǒng)設計時的分支點(重新判斷分包及buffer重用等操作),極易發(fā)生意想不到的問題。由于BLACS測試程序可以很容易地產生大量不同類型和長度的消息傳遞測試。我們運用測試方法一和BLACS測試程序,在消息量大,buffer出現(xiàn)重用時,發(fā)現(xiàn)了有的系統(tǒng)消息處理器與MPI通信buffer之間的Cache一致性問題。更底層庫中出現(xiàn)的問題:利用方法一,找到MPI的上述Cache一致性問題后,我們沒有在MPI上發(fā)現(xiàn)問題所在。于是又利用測試方法二。由于BLACS是建立在MPI和PVM等底層通信庫上的,而且PVM和MPI版的BLACS測試程序都在HitachiSR2201和曙光20

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論