2012-08-13 44 views
0

(GA)全局數組庫(ARM的實現)如何用於位於不同遠程機器上的兩個進程之間的通信。使用GA庫的進程間通信

這是類似於TCP套接字編程,其中一個進程等待數據,另一個進程傳輸它?

我試圖看到的文檔該ga_put()ga_get()與用於進程間通信兩種操作。到現在我拿出使用共享內存結構在同一臺機器上運行的程序只能夠(我用ga_put()ga_get()把數據在全球陣列分別得到它)。

現在,我想用這個程序在兩個遠程進程之間進行數據通信(基本上執行單向通信)。明顯地將我在單機上運行的程序放在遠程端會生效。它需要一些方法來告訴我們應該訪問哪臺機器並獲取正確的數據。這裏是我需要你幫助的地方。我怎樣才能做到這一點? (什麼是它的等效TCP/IP的聽,接受和GA連接...?)

或者是那個GA也使用TCP/IP插口下方的情況下?

有人可以向我解釋一下嗎?並且兩個遠程進程通信的示例代碼也是可觀的。

謝謝,

+0

看ARMCI和MPI RMA使用套接字下方。 ARMCI是GA的通信運行時。 ARMCI-MPI項目將ARMCI映射到MPI RMA。您可以閱讀大量有關MPI RMA的論文,以瞭解如何實施單向通信。 – Jeff 2014-12-10 06:27:42

回答

0

我回答我的問題畢竟。可能會幫助一些人尋找同樣的問題。

GA庫與MPI協同工作。因此,我們有這樣的:

MPI_Init(..)  
    GA_Initialize() 
    MA_Init(..) 
    // .... do sothing here 
    GA_Terminate() 
    MPI_Finalize() 

回答我的問題是: MPI具有以下原語要能夠支持客戶端 - 服務器通訊聯絡:

//in the server side 
    MPI_Open_port() 
    MPI_Comm_accept() 
    //do MPI_Send() or MPI_Recv() 
    MPI_Close_port() 

    //client Side 
    MPI_Comm_connect() 
    //do MPI_Recv() or MPI_Send() 

取決於硬件支持和使用MPI實現,MPI可能使用套接字或其他機制(例如SAN(系統區域網絡))。

一般而言,大多數MPI實現用於基於TCP的通信套接字。

所以,是GA還(取決於所使用的MPI實施過程中)

歡呼聲,