微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

简单的 MPI 程序不会执行并进入睡眠模式C++

如何解决简单的 MPI 程序不会执行并进入睡眠模式C++

我正在尝试使用 mpic++ 编译器运行这个简单的 MPI 程序。

#include <mpi.h>
#include <iostream>

int main(int argc,char** argv) {
  // Initialize the MPI environment
  MPI_Init(&argc,&argv);
  
  // 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
  std::cout << "Hello world from processor" << processor_name << " rank" << world_rank << " out of " << world_size << "processors" << std::endl;

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

我用 mpic++ main.cpp 编译 当我执行 mpirun -n 2 ./a.out 我收到警告 no protocol specified,这可能与我通过 ssh 连接到桌面并尝试在那里运行程序有关,但最重要的是,它什么也没做。

如果我输入 top 则没有列出 a.out 而如果我输入 ps aux | grep ./a.out 我得到:

angelos+ 1925884  0.0  0.0  44664  7652 pts/9    S+   18:54   0:00 mpirun -n 2 ./a.out

这是动态链接问题还是什么?有什么建议吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。