【问题标题】:Permission denied when I try to run mpi example当我尝试运行 mpi 示例时权限被拒绝
【发布时间】:2016-07-08 20:13:54
【问题描述】:

当我尝试运行 mpi 示例时,我的权限被拒绝。这是我尝试运行的代码。

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


int main (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;
}

我在主虚拟机上编译它,在一个共享文件夹中。我还生成了 ssh 密钥并将其复制到所有从属虚拟机。我有一个“主机”文件,其中包含所有虚拟机的所有 IP 地址,包括主虚拟机。

我用这个命令运行代码

`mpiexec -f hosts -n 4 hello_world

但我明白了

===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   PID 2961 RUNNING AT 10.0.0.41
=   EXIT CODE: 255
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
Permission denied, please try again.
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
Permission denied, please try again.
Permission denied (publickey,password).

顺便说一句,10.0.0.41 是主虚拟机。

提前致谢

【问题讨论】:

  • 我在发布问题之前尝试过。这就是我得到的 sudo: mpiexec: command not found.

标签: c linux parallel-processing


【解决方案1】:

我想通了。 我使用的是 ubuntu,默认情况下它不允许通过 ssh 进行 root 访问。所以我需要在所有虚拟机中允许 root ssh 访问,然后生成一个 ssh 密钥并在每个正在通信的虚拟机之间复制它。

更多细节,以防有人遇到同样的问题。

我在所有虚拟机中都执行了以下步骤

密码根

然后选择一个密码

密码 -u 根

vim /etc/ssh/sshd_config

编辑“PermitRootLogin without-password”>>>> 将其设为“PermitRootLogin yes”

服务 ssh 重启

现在您可以使用 ssh-keygen 生成 ssh 密钥

并使用 ssh-copy-id -i root@remote 复制它

对集群中的每两台通信机器执行相同操作。

我想提的另一件事是,我在执行 mpi 代码时出错了。

我使用了 'mpiexec -f hosts -n 4 hello_world' 我应该将 ./ 放在可执行文件之前。所以正确的命令应该是 ' mpiexec -f hosts -n 4 ./hello_world'

问候

【讨论】:

  • 这只是一个简单的出路。 MPI 不应该以 root 身份运行。
猜你喜欢
  • 2015-12-27
  • 2020-05-01
  • 2017-08-22
  • 2012-01-01
  • 1970-01-01
  • 2013-10-10
  • 1970-01-01
  • 2013-12-20
  • 2020-04-18
相关资源
最近更新 更多