尝试在两台计算机上运行MPI中的Hello World程序时打印随机数

时间:2018-03-10 19:44:42

标签: parallel-processing mpi distributed-computing

我在MPI中尝试基本的Hello_World程序,但它打印的是随机数字,根本不打印(我不打印程序中的任何数字)。

我正在关注本教程: http://mpitutorial.com/tutorials/running-an-mpi-cluster-within-a-lan/

我的mpirun命令如下: mpirun -np 2 -host my.ip.add,username @ other.ip.add ./a.out

两台计算机通过相同的wifi连接,并安装了相同版本的MPI。代码如下:

#include <mpi.h>
#include <stdio.h>

int main(int argc, char** argv) {
    // Initialize the MPI environment
    MPI_Init(NULL, NULL);

    // Get the number of processes
    int world_size;
    MPI_Comm_size(MPI_COMM_WORLD, &world_size);

    // Get the rank of the process
    int world_rank;
    MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);

    // Get the name of the processor
    char processor_name[MPI_MAX_PROCESSOR_NAME];
    int name_len;
    MPI_Get_processor_name(processor_name, &name_len);

    // Print off a hello world message
    printf("Hello world from processor %s, rank %d"
           " out of %d processors\n",
           processor_name, world_rank, world_size);

    // Finalize the MPI environment.
    MPI_Finalize();
}

修改

我按照mpirun命令运行,输出如下:

Command : mpirun -np 1 -host my.ip.add, uname@other.ip.add ./a.out
Output: Hello world from processor pranav, rank 0 out of 1 processors

将进程数更改为2,可以看到如上所述的以下随机输出:

Command: mpirun -np 2 -host my.ip.add, uname@other.ip.add ./a.out
Output: 199931 199931
        1 2 1
        2 3 1
        3 4 1
        4 5 1
        5 6 1
        6 7 1 
        7 8 1
        8 9 1 
        9 10 1 ...

如上所示,数字进入无限循环模式。另外我想要注意的是,在第一个输出中,没有其他计算机进程的输出。

0 个答案:

没有答案