我刚刚安装了mpi,它似乎并没有真正正常工作。下面我写了一个非常简单的库实现:
#include <stdio.h>
#include <mpi.h>
int main(int argc, char** argv)
{
int my_rank;
int size;
int namelen;
char proc_name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Get_processor_name(proc_name, &namelen);
if (my_rank == 2)
printf("Hello – I am process 2\n");
else
printf("Hello from process %d of %d on %s\n", my_rank, size, proc_name);
MPI_Finalize();
}
编译并执行:
mpicc -o example example.c mpirun -np 4 ./example
CLI上的输出是:
Hello from process 0 of 1 on manos-pc Hello from process 0 of 1 on manos-pc Hello from process 0 of 1 on manos-pc Hello from process 0 of 1 on manos-pc
似乎无法访问其他进程。 我使用的是ubuntu 16.04。
答案 0 :(得分:0)
我安装了MPI的其他实现,因此输出中出现了一个混乱。通过删除OpenMPI解决了问题