打开 MPI - mpirun 在简单程序中退出并出现错误

     2023-03-27     266

关键词:

【中文标题】打开 MPI - mpirun 在简单程序中退出并出现错误【英文标题】:Open MPI - mpirun exits with error on simple program 【发布时间】:2015-09-28 14:20:14 【问题描述】:

我最近在我的计算机上安装了 OpenMPI,当我尝试运行一个简单的 Hello World 程序时,它退出并出现下一个错误:

-------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code.. Per user-direction, the job has been aborted.
-------------------------------------------------------

这是程序的源代码:

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

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

    int size, rank;

    MPI_Init(&argc, &argv);
    MPI_Comm_size(MPI_COMM_WORLD, &size);
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);

    printf("Hello\n");

    MPI_Finalize();

    return 0;

这是我编译程序的方式:

mpicc -o hello hello.c

我用它来执行它

mpirun -np 2 hello

编译时不会出错,如果我运行./hello,它运行正常。

请原谅我的英语,欢迎任何更正。

【问题讨论】:

确保您使用相同的 MPI 发行版(OpenMPI、MPICH、MVAPICH)和版本来编译 mpicc 并运行程序 mpirun。您的错误很可能是我的版本和/或发行版不匹配造成的。 我已经下载并安装了 OpenMPI 的最后一个稳定版本。在安装之前,我没有安装 MPI 版本 检查返回值。 您提到您使用了最后一个稳定版本,但那是哪个版本? This 似乎是同样的错误。下面./ 的答案应该有效。 【参考方案1】:

你必须 ./ 可执行文件名 试试这个,mpirun -np 2 ./hello

【讨论】:

【参考方案2】:

试试:

mpirun -x LD_PRELOAD=libmpi.so -np 2 hello

如果它有效,则您的 OpenMPI 安装可能存在问题。一个简单的解决方法是定义一个别名。如果你使用 bash,添加 ~/.bashrc:

alias mpirun='mpirun -x LD_PRELOAD=libmpi.so' 

【讨论】:

如何在 Centos 7 中使用 firewalld 启用 MPI mpirun

】如何在Centos7中使用firewalld启用MPImpirun【英文标题】:howtoenableMPImpirunusingfirewalldinCentos7【发布时间】:2015-12-1816:00:00【问题描述】:我正在尝试让MPI在Centos7操作系统上的小型集群上运行。防火墙阻止它运行。这是我得到的错误... 查看详情

使用和不使用 mpirun 运行程序的区别

】使用和不使用mpirun运行程序的区别【英文标题】:Differencebetweenrunningaprogramwithandwithoutmpirun【发布时间】:2013-03-1218:17:34【问题描述】:我使用MPI_Open_port和MPI_Comm_accept在MPI中实现了点对点连接。我使用运行服务器和客户端程序r... 查看详情

mpirun 的自定义中断处理程序

】mpirun的自定义中断处理程序【英文标题】:acustominterrupthandlerformpirun【发布时间】:2013-03-3000:59:32【问题描述】:显然,mpirun使用了一个SIGINT处理程序,它将SIGINT信号“转发”到它产生的每个进程。这意味着您可以为启用mpi的... 查看详情

mpi 进程在信号 11 上退出

...l11【发布时间】:2020-01-2206:21:19【问题描述】:我有一个简单的mpi程序来执行MPI_Scatter和MPI_Gather。它接受要发送到每个进程的元素的参数数量,然后使用MPI_Scatter和MPI_Gather对不同进程的随机数进行平均。float*create_rand_nums(intnum_ele... 查看详情

错误:libtool - 编译 MPI 程序时

...我正在使用OpenSuseLeap并安装了openMPI认为是YaST。运行whichmpirun命令我得到/usr/lib64/mpi/gcc/openmpi/bin/mpirun并运行whichmpicc我得到/usr/bin/mpicc 查看详情

运行mpi报错

...置好,应该把相应的库文件路径加入.bashrc用文本编辑器打开个人主目录下面的.bashrc(~/.bashrc),加入类似于下面的两行信息(第一行是icc的、第一行是ifort的)并保存:source/etc/Intel_Compiler/10.0/XXXX/iccvars_intel64.shsource/etc/Intel_Compil... 查看详情

使用 MPI 和 Armadillo 在 C++ 中进行并行化

...)是否能够利用MPI框架下的并行性?我担心的是,在使用mpirun-np1executable运行程序时,由于我特别要求操作系统仅使用一个处理器运行我的程序, 查看详情

无法将所有内核与 mpirun 一起使用

】无法将所有内核与mpirun一起使用【英文标题】:Unabletouseallcoreswithmpirun【发布时间】:2018-07-2721:13:03【问题描述】:我正在我的桌面上测试一个简单的MPI程序(UbuntuLTS16.04/Intel®Core™i3-6100UCPU@2.30GHz×4/gcc4.8.5/OpenMPI3.0.0)并且mpirun... 查看详情

名为 connect() 的函数如何阻止 MPI C 程序运行?

...目,并决定将我的一个函数命名为connect()。但每当我尝试mpirun程序(在Linux和OSX上使用最新版本的OpenMPI)时,我都会收到 查看详情

使用 CMake 编译后无法从 mpich2 使用 mpirun

】使用CMake编译后无法从mpich2使用mpirun【英文标题】:Troubleusingmpirunfrommpich2aftercompilingusingCMake【发布时间】:2013-08-1805:53:59【问题描述】:我在尝试运行MPI时遇到问题。我安装了mpich2-1.4.1p1,当我使用mpirun运行mpi程序时,我得到... 查看详情

如何在主页中打开后退按钮 android 以退出应用程序并关闭反应本机导航侧菜单

】如何在主页中打开后退按钮android以退出应用程序并关闭反应本机导航侧菜单【英文标题】:Howtohandlebackbuttonandroidtobothexitappandclosereactnativenavigationsidemenuwhenitisopeninhomepage【发布时间】:2020-04-2112:30:20【问题描述】:我在我的项... 查看详情

集群上mpi的使用

...高。”说的就是各种超算机器和intel吧。yhrun(srun)其实跟mpirun一样的效果。 openmpi可以直接运行程序:http://mpitutorial.com/tutorials/mpi-hello-world/例子hello_world.c,发现mpirun可以识别真正的物理核心。mpirun-np13-fhost_file./mpi_hello_world其... 查看详情

mpiexec 与 mpirun

】mpiexec与mpirun【英文标题】:mpiexecvsmpirun【发布时间】:2014-10-0622:05:11【问题描述】:据我所知,mpirun和mpiexec都是启动器。谁能说出mpiexec和mpirun之间的确切区别?【问题讨论】:mpiexec例如似乎接受主机名文件中的表示法host:num... 查看详情

iOS Wikiitude SDK 在退出/重新打开应用时崩溃

】iOSWikiitudeSDK在退出/重新打开应用时崩溃【英文标题】:iOSWikitudeSDKcrashonexit/reopenapp【发布时间】:2017-04-0310:06:07【问题描述】:我为iOS和增强现实(使用WikitudeSDK)开发了一个简单的应用程序。一切正常,但是当我退出并重新... 查看详情

在 MPI 中发送和接收数组

...2018-11-1111:17:08【问题描述】:我是MPI新手,正在编写一个简单的MPI程序来获取矩阵和向量的点积,即A*b=c。但是,我的代码不起作用。源代码如下。如果我将A、b、c和缓冲区的声明替换为doubleA[16],b[4],c[4],buffer[8];并注释与分配和... 查看详情

MPI_Init 在 FreeBSD 13 中失败

...使用FreeBSD13,并尝试编译(成功)和运行(不成功)一个简单的最小MPI程序#include<mpi.h>#include<stdlib.h>#include<stdio.h>intmain(intargc,char* 查看详情

使用 mpirun 执行我的程序会大大降低性能

】使用mpirun执行我的程序会大大降低性能【英文标题】:Performancedegradesalotbyusingmpiruntoexecutemyprogram【发布时间】:2020-06-2511:38:36【问题描述】:我是MPI领域的新手。我使用IntelMathKernelLibrary编写程序,并且我想按块计算矩阵-矩阵... 查看详情

为啥 MPI 程序以退出代码 134(信号 6)终止?

】为啥MPI程序以退出代码134(信号6)终止?【英文标题】:WhydoestheMPIprogramterminatewithexitcode134(signal6)?为什么MPI程序以退出代码134(信号6)终止?【发布时间】:2019-10-0318:59:14【问题描述】:我有以下用MPI编写的霍夫曼压缩代码... 查看详情