我想实现一个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时,它不是我开始的地方。 –