国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      在Quadrics網(wǎng)絡中執(zhí)行并行虛擬機處理的方法

      文檔序號:7590840閱讀:109來源:國知局
      專利名稱:在Quadrics網(wǎng)絡中執(zhí)行并行虛擬機處理的方法
      技術領域
      本發(fā)明涉及并行虛擬機(PVM)技術,特別是在Quadrics網(wǎng)絡中執(zhí)行PVM處理的方法。
      背景技術
      Quadrics網(wǎng)絡是一種可應用于機群等分布式系統(tǒng)的高帶寬、低延遲的高性能網(wǎng)絡。目前Quadrics網(wǎng)絡已經(jīng)在很多機群系統(tǒng)中得到了應用,并已經(jīng)成長為世界范圍內性能最高的機群系統(tǒng)域網(wǎng)之一。Quadrics網(wǎng)絡可實際連接上千個結點的網(wǎng)絡規(guī)模,支持消息傳遞接口(MPI)等并行編程環(huán)境。Quadrics網(wǎng)絡是目前國際上最先進的系統(tǒng)網(wǎng)絡(SAN)解決方案之一。為了解決大規(guī)模并行計算中的高帶寬、低延遲的通信問題,很多高性能服務器采用了Quadrics網(wǎng)絡。Quadrics網(wǎng)絡主要包括Quadrics網(wǎng)卡、Quadrics網(wǎng)線和Quadrics交換機。
      目前必須由外部命令啟動運行在Quadrics網(wǎng)絡中的程序,而且也必須由外部命令來完成運行在Quadrics網(wǎng)絡中程序的初始化。運行在Quadrics網(wǎng)絡中程序的初始化包括兩個階段,分別為進程啟動前的Quadrics網(wǎng)絡初始化和進程啟動后的Quadrics進程初始化。為了完成Quadrics網(wǎng)絡初始化,外部命令必須獲取所有結點所對應的Quadrics網(wǎng)絡交換機端口號。在Quadrics網(wǎng)絡中,必須在主機名中靜態(tài)地體現(xiàn)Quadrics交換機端口號,然后再由外部命令通過主機名獲取Quadrics交換機端口號。
      PVM是一個在網(wǎng)絡上的虛擬并行機系統(tǒng)的軟件包。PVM允許將網(wǎng)絡上基于UNIX/Linux操作系統(tǒng)的并行機和單處理機的集合當成一臺單一的“并行虛擬機”來使用。PVM支持用戶采用消息傳遞方式編寫并行程序。PVM的主要組成部分是PVM守護進程(pvmd)和PVM程序庫,其中pvmd進程是PVM運行時所必須的后臺服務進程。
      PVM程序可以運行在以太網(wǎng)、Myrinet等網(wǎng)絡上。在這些網(wǎng)絡上運行時,PVM程序主要以兩種機制運行在這些網(wǎng)絡上,分別為主從式和單程序多數(shù)據(jù)(SPMD)方式。主從式方式為首先啟動一個主進程,再由這個主進程通過pvmd進程啟動若干從進程,其中可以在任意指定結點上啟動任意數(shù)目的從進程,然后主從進程通過一定的任務分配、數(shù)據(jù)交換而最終共同完成作業(yè),而且其中各個進程可以是不同的程序。SPMD方式則是同時啟動若干進程,各個進程協(xié)同完成作業(yè),其中各個進程必須是相同的程序。無論是主從式方式或者SPMD方式都要求各個參加計算的結點上已經(jīng)啟動一個pvmd進程,各個進程在被啟動后都必須馬上進行PVM初始化,包括與pvmd進程建立聯(lián)系,然后才能參加到任務中來。
      雖然PVM程序可以運行在以太網(wǎng)、Myrinet等網(wǎng)絡上,但是由于Quadrics網(wǎng)絡為了追求高性能而對應用程序做了很多特殊的要求,而PVM程序,尤其是主從式PVM程序又往往不能滿足這些限制,從而導致PVM程序無法運行在Quadrics網(wǎng)絡上。首先,在Quadrics網(wǎng)絡中要求程序中所有的進程都必須同時Quadrics初始化,而PVM程序允許從進程在主進程之后初始化;而且在Quadrics網(wǎng)絡中,所有的進程都是由某個外部命令進程所啟動,而PVM則要求先運行殼進程(shell)命令啟動主進程,再由pvmd進程啟動從進程;并且Quadrics網(wǎng)絡中還要求所有的結點上必須啟動相同數(shù)目的進程,而PVM程序中經(jīng)常要求各結點上進程數(shù)不同。
      Quadrics網(wǎng)絡對程序的這些特殊要求使得目前PVM程序不能夠運行在Quadrics網(wǎng)絡中,進而使得PVM程序不能享受到Quadrics網(wǎng)絡的極高性能,嚴重限制了高性能計算中機群通信的進一步發(fā)展。

      發(fā)明內容
      有鑒于此,本發(fā)明的主要目的是提出一種在Quadrics網(wǎng)絡中執(zhí)行PVM處理的方法,使得PVM處理可在Quadrics網(wǎng)絡中執(zhí)行。
      為達到上述目的,本發(fā)明的技術方案是這樣的一種在Quadrics網(wǎng)絡中執(zhí)行PVM處理的方法,其特征在于,包括以下步驟A、設置PVM主進程啟動工具,并將Quadrics網(wǎng)絡的外部啟動命令集成到pvmd進程和PVM程序庫中;B、進行Quadrics網(wǎng)絡初始化;C、所述PVM主進程啟動工具啟動主進程,主進程將自身所需要啟動的從進程參數(shù)傳遞給pvmd進程,所述的pvmd進程啟動從進程,同時為每一個結點分配相應的空進程,從而使每個結點上的Quadrics進程數(shù)目相同,然后pvmd進程啟動所述空進程;D、同時對每一個結點的主進程、從進程和空進程進行Quadrics進程初始化。
      步驟A所述的設置PVM主進程啟動工具的方法為獲取要啟動的主進程的信息,向pvmd進程發(fā)送PVM任務啟動消息;步驟C中PVM主進程啟動工具啟動主進程為pvmd進程收到所述的PVM任務啟動消息后進行主進程的啟動。
      所述的獲取要啟動的主進程的信息的方法為接收用戶輸入或提取命令行參數(shù)。
      所述的獲取的要啟動的進程的信息為可執(zhí)行文件路徑、命令參數(shù)。
      所述的Quadrics網(wǎng)絡的外部啟動命令進行的操作為加載驅動程序、生成端口映像、啟動進程。
      步驟B所述的進行Quadrics網(wǎng)絡初始化包括訪問每個結點的遠程文件系統(tǒng)中的Quadrics驅動程序所提供的文件,獲取Quadrics交換機端口號。
      步驟C所述的為每一個結點分配相應的空進程為為每一個結點分配 個空進程,其中M為所有結點要啟動的PVM進程的數(shù)目,N為結點的數(shù)目,X為每一個結點分別已經(jīng)啟動的PVM進程數(shù)。
      從以上的技術方案可以看出,本發(fā)明首先實現(xiàn)了PVM主進程啟動工具和將Quadrics網(wǎng)絡的外部啟動命令分別集成到pvmd進程和PVM程序庫,將Quadrics網(wǎng)絡的外部啟動命令分別集成到pvmd進程和PVM程序庫使得PVM程序在編譯后,可以自動在pvmd進程啟動的前后自動完成Quadrics網(wǎng)絡初始化和Quadrics進程初始化。PVM主進程啟動工具從命令行中獲取任務的可執(zhí)行文件名和命令行參數(shù),并且將所獲取的任務的可執(zhí)行文件名和命令行參數(shù)傳遞給pvmd進程,再由pvmd進程啟動主進程,然后主進程再將所需要啟動的從進程的各參數(shù)傳遞給pvmd進程,并由pvmd進程啟動從進程,從而實現(xiàn)了在Quadrics網(wǎng)絡中各進程都是由一個父進程,即pvmd進程所啟動。
      同時,主進程只有在pvmd進程啟動了從進程后才進行Quadrics初始化,而從進程再被啟動后就立即進行Quadrics初始化,從而保證了所有的進程同時進行了Quadrics初始化。同時,本發(fā)明采用啟動空進程的方法既保證了在初始化時各個結點啟動的Quadrics進程數(shù)目相同,又保證了可以在各個結點上啟動不同數(shù)目的PVM進程。
      本發(fā)明通過PVM主進程啟動工具、將Quadrics網(wǎng)絡的外部啟動命令分別集成到pvmd進程和pvm程序庫、延遲主進程Quadrics進程初始化實現(xiàn)了在Quadrics網(wǎng)絡的異步啟動,通過啟動空進程實現(xiàn)了在各個結點上啟動相同數(shù)目的Quadrics進程。所以本發(fā)明實現(xiàn)了在Quadrics網(wǎng)絡上運行PVM程序,使得PVM程序可以享受Quadrics網(wǎng)絡的極高性能。例如同百兆以太網(wǎng)上的PVM程序相比,在Quadrics網(wǎng)絡上運行的PVM程序的帶寬和延遲都有了數(shù)量級上的改善,在Quadrics網(wǎng)絡上運行的PVM程序的帶寬提高了大約20倍,而延遲則降低到百兆以太網(wǎng)上的PVM程序的1/8左右,因此PVM程序可以享受Quadrics網(wǎng)絡的極高性能,進而極大地提高了PVM程序的整體性能。
      同時,本發(fā)明通過訪問結點上文件系統(tǒng)中的Quadrics驅動程序所提供的文件,實現(xiàn)了動態(tài)即時地獲取端口號,使得端口號與主機名無關,進而使得Quadrics網(wǎng)絡的配置更加靈活方便。


      圖1為本發(fā)明一實施例的在Quadrics網(wǎng)絡中執(zhí)行PVM處理的流程示意圖。
      具體實施例方式
      為使本發(fā)明的目的、技術方案和優(yōu)點表達得更加清楚明白,下面結合附圖及具體實施例對本發(fā)明再作進一步詳細的說明。
      本發(fā)明的主要思想是首先實現(xiàn)PVM主進程工具和將Quadrics網(wǎng)絡的外部啟動命令集成到pvmd進程和PVM程序庫,為啟動主進程和Quadrics網(wǎng)絡初始化和Quadrics進程初始化做準備。PVM主進程工具從命令行中獲取任務的可執(zhí)行文件名和命令行參數(shù),并將它們傳遞給pvmd進程,然后由pvmd進程啟動主進程,主進程再將所需要啟動的從進程的各參數(shù)傳遞給pvmd進程,然后再由pvmd進程啟動從進程,從而保證各個進程都是由同一個父進程所啟動。將Quadrics網(wǎng)絡的外部啟動命令集成到pvmd進程使得PVM程序在編譯后,pvmd進程會在進程啟動前完成部分必需的初始化操作,即Quadrics網(wǎng)絡初始化。將Quadrics網(wǎng)絡的外部啟動命令集成到PVM程序庫使得PVM程序在編譯后,能在進程被啟動后自動地完成Quadrics進程初始化。同時,當主進程被啟動時只進行PVM初始化而不進行Quadrics進程初始化,只有在主進程啟動了從進程之后,主進程才進行Quadrics進程初始化,而從進程在被啟動時就進行Quadrics進程初始化,因此可以保證所有進程在異步啟動的條件下還可以同時進行Quadrics進程初始化。同時,對于進程數(shù)較少的結點啟動相應數(shù)量的空進程以保證各個結點上既能啟動相同數(shù)目的Quadrics進程,又能保證了各結點上可啟動不同數(shù)目的PVM進程。
      圖1為本發(fā)明一實施例的在Quadrics網(wǎng)絡中執(zhí)行PVM處理的流程示意圖。如圖1所示,包括以下步驟步驟101實現(xiàn)PVM主進程啟動工具,將Quadrics網(wǎng)絡的外部啟動命令集成到pvmd進程和PVM程序庫。
      首先接收用戶輸入或者提取命令行參數(shù)以獲取要啟動的主進程的信息,其中這些信息包括可執(zhí)行文件路徑、命令參數(shù)等,然后通過pvm_spawn函數(shù)向pvmd進程發(fā)送pvm任務啟動的消息,并且把剛剛獲取的要啟動的主進程的信息作為該函數(shù)的參數(shù),使得這些信息被附在消息中傳遞給pvmd進程,而pvmd在收到該消息后會自動完成對主進程的啟動。
      將Quadrics網(wǎng)絡的外部啟動命令集成到pvmd進程是為后面步驟102的網(wǎng)絡初始化做準備,Quadrics網(wǎng)絡的外部啟動命令集成到PVM程序庫是為后面步驟104的Quadrics進程初始化做準備。其中這些外部啟動命令可包括加載驅動程序、生成端口映像、啟動進程等。在將Quadrics網(wǎng)絡的外部啟動命令集成到pvmd進程和PVM程序庫的過程中,需要使得Quadrics網(wǎng)絡初始化的代碼適用于PVM程序的運行機制和符合pvm程序的進程派生協(xié)議。將Quadrics網(wǎng)絡的外部啟動命令集成到pvmd和PVM程序庫后,PVM程序在編譯后就可以自動完成Quadrics網(wǎng)絡初始化和Quadrics進程初始化。
      步驟102Quadrics網(wǎng)絡初始化。
      在pvmd進程啟動主進程前需要進行Quadrics網(wǎng)絡初始化。Quadrics網(wǎng)絡初始化主要完成以下工作pvmd進程首先創(chuàng)建每個程序的上下文(Capability),然后向Quadrics網(wǎng)絡注冊所產(chǎn)生的每個上下文,接著向各個需要啟動從進程的其它結點上的pvmd進程傳播此上下文,這些結點也向Quadrics網(wǎng)絡注冊收到的上下文,從而使得這些結點稍后啟動出來的從進程也擁有相同的上下文。
      步驟103pvmd分別啟動主進程和從進程,需要啟動空進程的結點上的pvmd進程啟動相應數(shù)目的空進程。
      PVM主進程啟動工具在啟動主進程后,主進程再將所需要啟動的從進程的各參數(shù)傳遞給pvmd進程,由pvmd進程再啟動從進程。Quadrics網(wǎng)絡在初始化時要求各個結點上的Quadrics進程數(shù)必須相同,而這與PVM程序中各個結點上可以啟動任意數(shù)目的進程所矛盾。
      本發(fā)明采用啟動空進程的方法來克服這個矛盾。即在PVM進程數(shù)較少的結點上啟動相應數(shù)目的空進程以保證所有結點上的Quadrics進程數(shù)目是相同的。例如假設一共有N個結點,這N個結點一共需要啟動M個PVM進程,如果M剛好是N的整數(shù)倍,那么這個矛盾將不存在,每個結點剛好啟動(M/N)個PVM進程,而不需要啟動空進程。如果M不是N的整數(shù)倍,假設某個結點啟動了X個PVM進程(其中 那么該結點還需要啟動 個空進程,以保證各個結點上的Quadrics進程數(shù)相同,即保證N個結點中的每個結點都啟動 個Quadrics進程。其中函數(shù) 代表對x向下取整。例如假設一共需要在2個結點上啟動7個進程,即此時M等于7,N等于2,而某一個結點上已經(jīng)啟動了3個PVM進程,即此時X等于3,那么該結點上需要啟動的空進程數(shù)為 所以此時該結點上需要啟動的空進程個數(shù)為1。
      步驟104Quadrics進程初始化,其中延遲主進程Quadrics進程初始化。
      通過Quadrics進程初始化主要獲得進行Quadrics進程初始化的所有進程的進程號和獲得總進程數(shù)目,而且需要延遲主進程Quadrics進程初始化,以使得所有進程可同時進行Quadrics進程初始化。Quadrics網(wǎng)絡中要求程序中的所有進程都必須同時進行Quadrics進程初始化,而PVM程序允許從進程在主進程之后進行PVM初始化,通過延遲主進程Quadrics進程初始化以解決這個矛盾。假設主進程通過pvmd進程已經(jīng)啟動的從進程的數(shù)目為A,而該PVM程序所需要啟動的進程個數(shù)為B,主進程在啟動后將對A與B進行比較,其中當A=B-1時,即表示已經(jīng)不再需要啟動其它從進程,此時主進程和從進程再開始同時進行Quadrics進程初始化。
      主進程在自己被pvmd進程啟動時只進行PVM初始化,而不進行Quadrics初始化,只有當主進程啟動了從進程之后,主進程才進行Quadrics初始化,而從進程再被啟動后就立即進行Quadrics初始化,從而保證PVM程序的所有進程都同時進行Quadrics初始化。其中如果在步驟103中pvmd進程啟動了空進程,那么這些空進程在被啟動之后只參加Quadrics進程初始化,既不參加也不影響PVM初始化以及以后的任何通信或計算,并且在程序結束后這些空進程自動終止。
      以上過程中,在步驟102中的Quadrics網(wǎng)絡初始化中,可以通過訪問每個結點上文件系統(tǒng)中Quadrics驅動程序所提供的文件,動態(tài)即時地獲取端口號,使得端口號與主機名無關,進而使得網(wǎng)絡的配置更加靈活方便。
      以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
      權利要求
      1.一種在Quadrics網(wǎng)絡中執(zhí)行并行虛擬機(PVM)處理的方法,其特征在于,包括以下步驟A、設置PVM主進程啟動工具,并將Quadrics網(wǎng)絡的外部啟動命令集成到PVM守護進程(pvmd)和PVM程序庫中;B、進行Quadrics網(wǎng)絡初始化;C、所述PVM主進程啟動工具啟動主進程,主進程將自身所需要啟動的從進程參數(shù)傳遞給pvmd進程,所述的pvmd進程啟動從進程,同時為每一個結點分配相應的空進程,從而使每個結點上的Quadrics進程數(shù)目相同,然后pvmd進程啟動所述空進程;D、同時對每一個結點的主進程、從進程和空進程進行Quadrics進程初始化。
      2.根據(jù)權利要求1所述的在Quadrics網(wǎng)絡中執(zhí)行PVM處理的方法,其特征在于,步驟A所述的設置PVM主進程啟動工具的方法為獲取要啟動的主進程的信息,向pvmd進程發(fā)送PVM任務啟動消息;步驟C中PVM主進程啟動工具啟動主進程為pvmd進程收到所述的PVM任務啟動消息后進行主進程的啟動。
      3.根據(jù)權利要求2所述的在Quadrics網(wǎng)絡中執(zhí)行PVM處理的方法,其特征在于,所述的獲取要啟動的主進程的信息的方法為接收用戶輸入或提取命令行參數(shù)。
      4.根據(jù)權利要求2所述的在Quadrics網(wǎng)絡中執(zhí)行PVM處理的方法,其特征在于,所述的獲取的要啟動的進程的信息為可執(zhí)行文件路徑、命令參數(shù)。
      5.根據(jù)權利要求1所述的在Quadrics網(wǎng)絡中執(zhí)行PVM處理的方法,其特征在于,所述的Quadrics網(wǎng)絡的外部啟動命令進行的操作為加載驅動程序、生成端口映像、啟動進程。
      6.根據(jù)權利要求1所述的在Quadrics網(wǎng)絡中執(zhí)行PVM處理的方法,其特征在于,步驟B所述的進行Quadrics網(wǎng)絡初始化包括訪問每個結點的遠程文件系統(tǒng)中的Quadrics驅動程序所提供的文件,獲取Quadrics交換機端口號。
      7.根據(jù)權利要求1所述的在Quadrics網(wǎng)絡中執(zhí)行PVM處理的方法,其特征在于,步驟C所述的為每一個結點分配相應的空進程為為每一個結點分配 個空進程,其中M為所有結點要啟動的PVM進程的數(shù)目,N為結點的數(shù)目,X為每一個結點分別已經(jīng)啟動的PVM進程數(shù)。
      全文摘要
      本發(fā)明公開了一種在Quadrics網(wǎng)絡中執(zhí)行并行虛擬機(PVM)處理的方法,包括以下步驟實現(xiàn)PVM主進程啟動工具和將Quadrics網(wǎng)絡的外部啟動命令集成到PVM守護進程(pvmd)和PVM程序庫;進行Quadrics網(wǎng)絡初始化;pvmd進程分別啟動主進程和從進程,為每一個結點分配相應的空進程,使每個結點上的Quadrics進程數(shù)目相同,然后pvmd進程啟動空進程;Quadrics進程初始化,延遲主進程Quadrics進程初始化。本發(fā)明所提供的方法,可實現(xiàn)由pvmd進程啟動所有的PVM進程,所有的進程同時進行Quadrics進程初始化,并且各結點的Quadrics進程數(shù)目相同,使得PVM程序可以在Quadrics網(wǎng)絡中運行,使得PVM程序可以享受Quadrics網(wǎng)絡的極高性能。
      文檔編號H04L12/04GK1670703SQ20041003031
      公開日2005年9月21日 申請日期2004年3月16日 優(yōu)先權日2004年3月16日
      發(fā)明者時培植, 柳書廣, 肖利民, 張灝, 徐武 申請人:聯(lián)想(北京)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1