0

当我编译并运行此示例时,我的 cpu 是 intel i3 m350:

#include < mpi.h>   /* PROVIDES THE BASIC MPI DEFINITION AND TYPES */
#include  < stdio.h>
int main(int argc, char **argv)
{
    int my_rank; 
    int size;
    MPI_Init(&argc, &argv); /*START MPI */

    /*DETERMINE RANK OF THIS PROCESSOR*/
    MPI_Comm_rank(MPI_COMM_WORLD, &my_rank); 

    /*DETERMINE TOTAL NUMBER OF PROCESSORS*/
    MPI_Comm_size(MPI_COMM_WORLD, &size);
    MPICH_NAME;

    printf("Hello world! I'm rank %d of size %d\n", my_rank, size);

    MPI_Finalize();  /* EXIT MPI */
    getchar();

}

输出是:

             Hello world! I'm rank0  of size 1

这意味着它没有检测到我的 4 个核心。有什么问题?

4

1 回答 1

4

您需要使用mpirun. 您可以指定 MPI 应该使用mpirun多少个进程。在你的情况下,这看起来像

~# mpirun -n 4 ./your-program

此外,您可能想查看Open MPI FAQ(假设您使用的是 Open MPI)。

于 2013-09-22T09:19:17.220 回答