我想實現一個MPI程序,它有一個服務器節點將任務分配給客戶端節點,但我是新生,不知道如何管理客戶名單,任何人都可以幫助我嗎?如何在MPI客戶端/服務器模式下管理客戶端列表
讓我形容它更註明:
服務器節點:
MPI_COMM clients[4]; // store client communicators, but I am not sure this is correct or not!
多個客戶端連接到使用mpirun -np 1 ./mpiclient
一次以上的服務器,處理器不大於1
我之所以想要做到這一點是我想發送每個客戶不同的工作來計算。
問題2:如何獲取客戶端的屬性?
例如:MPI_Comm_accept(portname,MPI_INFO_NULL,0,MPI_COMM_SELF,&client);
如何獲取客戶端名稱或IP?
MPI作業本質上是分佈式的。將客戶端連接到服務器是一種集體操作,即它涉及客戶端作業的所有等級,因此即使客戶端是單身人士,也不存在與作業相關聯的單個主機名或IP。我不知道MPI中有任何便攜式機制可以獲得這種識別。你應該把對講機當作客戶的ID。 –
您確定您確實需要/需要使用'MPI_Comm_connect' /'MPI_Comm_accept'嗎?在大多數情況下,使用MPI的人在作業開始時啓動所有進程mpirun -np 5。/ mpiapp,並指定某些等級來執行某些操作。當你*可以*用MPI進行MPMD時,它不是我開始的地方。 –