我想在群集的每台机器上轻松地执行集体通信.假设我有4台机器,每台机器有8个核心,我的mpi程序将运行32个MPI任务.对于给定的功能,我想要的是:
- 在每个主机上,只有一个任务执行计算,其他任务在此计算期间不执行任何操作.在我的示例中,4个MPI任务将执行计算,其他28个正在等待.
- 一旦完成计算,每个MPI上的每个MPI任务将仅对本地任务(在同一主机上运行的任务)执行集体通信.
从概念上讲,我理解我必须为每个主机创建一个通信器.我四处搜索,没有发现任何明确的事情.我对MPI小组和传播者感到不舒服.这是我的两个问题:
- MPI_Get_processor_name对于这样的行为是否足够独特?
- 更一般地说,你有一段代码吗?