【问题标题】:Wrong mpi number of processors错误的 mpi 处理器数量
【发布时间】:2012-04-16 23:17:18
【问题描述】:

抱歉,我肯定犯了一个愚蠢的错误,但没有成功。

我正在编译一个简单的 mpi hello world:

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

int main (argc, argv)
     int argc;
     char *argv[];
{
  int rank, size;

  MPI_Init (&argc, &argv);      /* starts MPI */
  MPI_Comm_rank (MPI_COMM_WORLD, &rank);        /* get current process id */
  MPI_Comm_size (MPI_COMM_WORLD, &size);        /* get number of processes */
  printf( "Hello world from process %d of %d\n", rank, size );
  MPI_Finalize();
  return 0;
}

还有:

> mpicc -o hello_world_c hello_world.c
> mpirun -np 4 hello_world_c

但返回:

Hello world from process 0 of 1
Hello world from process 0 of 1
Hello world from process 0 of 1
Hello world from process 0 of 1

但我的电脑是 4 核的 core i7。一切似乎都很好,即。 cat /proc/cpuinfo 显示 4 个处理器

发生了什么??? 提前谢谢!!!!

【问题讨论】:

标签: mpi processors


【解决方案1】:

您的代码没有任何问题。 唯一的问题可能是您的 mpi 安装。

注意:

处理器与内核之间存在差异。这不是一回事。

【讨论】:

  • 你是怎么安装的?你用什么电脑?你用win7吗?
  • 不不,我使用 Ubuntu 和常规安装。包mpich2
  • 让我补充一点:您在此处看到的安装的特定问题可能是您正在使用 mpirun 运行程序,该 mpirun 属于与您编译链接的不同 mpi 安装.确保相同的 mpirun、mpicc 和您的 mpi 库位于您的各种路径中。
  • 谢谢大家。问题是两个mpi安装。 mpich2 和 openmpi。我卸载了openmpi,一切正常。谢谢!!!
【解决方案2】:

不知道怎么编译:

 int main (argc, argv)
 int argc;
 char *argv[];

将改为

 int main (int argc, char *argv[])

另一点是 mpi 是消息传递接口,它在进程而不是内核或处理器之间传递消息并且其他进程必须等待,因此您只使用 4 个进程是有效的。

【讨论】:

    【解决方案3】:

    在这种情况下,您需要来自“mpich2”包的 mpiexec。

    首先,删除您计算机上安装的所有 mpi 软件包。 如果你的服务器是 Ubuntu,你可以使用命令:

    sudo apt-get purge mpi mpich2 openmpi-common
    

    要确保您已删除所有软件包,请尝试此命令

    which mpiexec
    

    如果您没有收到任何响应,则说明您已经删除了所有软件包。

    然后重新安装mpich2的包

    sudo apt-get install mpich2
    

    再次尝试编译并运行您的代码! 希望对您有所帮助!

    【讨论】:

      【解决方案4】:

      安装

      sudo apt-get install libopenmpi-dev openmpi-bin openmpi-doc
      

      现在编译并执行代码

      【讨论】:

        猜你喜欢
        • 2021-08-23
        • 2023-03-03
        • 2015-09-25
        • 2023-03-25
        • 2014-01-01
        • 2013-07-06
        • 2015-12-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多