运行MPI程序时,我们使用命令
mpiexec -hostfile ./conf/machines <my_mpi_program>
我的主机文件
./conf/machines
192.168.1.54
192.168.1.55
192.168.1.56
192.168.1.57
当执行 MPI 程序时,我的处理器排名为
MPI_Comm_rank
。<rank, hostname>
对?hostname
应该与我指定的主机文件相同,我只想使用ip地址作为主机文件中的主机名。
我尝试使用
MPI_Get_processor_name
但它返回了我的主机的名称 teaker-4
,而不是指定主机文件中的名称。
还有,
teaker-4
是127.0.0.1
,我无法修改/etc/hosts
我希望这就是你想要的,尽管有点晚: 我在我的 mpi 程序中使用这种方法: ..通常的 mpi fortran 设置使用.. decalare ..包括: 使用,内在 :: iso_c_binding 使用 mpi 隐式无 界面 函数 gethostid() BIND(C) 使用 iso_c_binding 整数 (C_INT) :: gethostid 结束函数 gethostid 终端接口 ..然后是通常的更多声明和赋值,直到 mpi 开始.. !在 PGI OpenACC 和 MPI 教程之后使用 cpu 进程等级到 GPU id 映射!版本 2017 | 4 调用 MPI_INIT(ierr2) !获取 hostid,以便我们可以确定每个节点上有哪些 mpi 进程 主机id=gethostid() ..我怀疑你可以从那里以编程方式解决它。