mpi无法访问进程级别

时间:2017-01-22 13:18:42

标签: process mpi

我刚刚安装了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。

1 个答案:

答案 0 :(得分:0)

我安装了MPI的其他实现,因此输出中出现了一个混乱。通过删除OpenMPI解决了问题