使用python调用openmpi编译的MPI 动态库报错:mca_base_component_repository_open: unable to open mca_patcher_overwri
最近,用python做C++编写的openMPI动态库接口,运行python脚本,报错如下:
[pk:32466] mca_base_component_repository_open: unable to open mca_patcher_overwrite: /usr/lib/x86_64-linux-gnu/openmpi/lib/openmpi/mca_patcher_overwrite.so: undefined symbol: mca_patcher_base_patch_t_class (ignored)
[pk:32466] mca_base_component_repository_open: unable to open mca_shmem_mmap: /usr/lib/x86_64-linux-gnu/openmpi/lib/openmpi/mca_shmem_mmap.so: undefined symbol: opal_show_help (ignored)
[pk:32466] mca_base_component_repository_open: unable to open mca_shmem_sysv: /usr/lib/x86_64-linux-gnu/openmpi/lib/openmpi/mca_shmem_sysv.so: undefined symbol: opal_show_help (ignored)
[pk:32466] mca_base_component_repository_open: unable to open mca_shmem_posix: /usr/lib/x86_64-linux-gnu/openmpi/lib/openmpi/mca_shmem_posix.so: undefined symbol: opal_shmem_base_framework (ignored)
--------------------------------------------------------------------------
It looks like opal_init failed for some reason; your parallel process is
likely to abort. There are many reasons that a parallel process can
fail during opal_init; some of which are due to configuration or
environment problems. This failure appears to be an internal failure;
here's some additional information (which may only be relevant to an
Open MPI developer):opal_shmem_base_select failed--> Returned value -1 instead of OPAL_SUCCESS
--------------------------------------------------------------------------
--------------------------------------------------------------------------
It looks like orte_init failed for some reason; your parallel process is
likely to abort. There are many reasons that a parallel process can
fail during orte_init; some of which are due to configuration or
environment problems. This failure appears to be an internal failure;
here's some additional information (which may only be relevant to an
Open MPI developer):opal_init failed--> Returned value Error (-1) instead of ORTE_SUCCESS
--------------------------------------------------------------------------
--------------------------------------------------------------------------
It looks like MPI_INIT failed for some reason; your parallel process is
likely to abort. There are many reasons that a parallel process can
fail during MPI_INIT; some of which are due to configuration or environment
problems. This failure appears to be an internal failure; here's some
additional information (which may only be relevant to an Open MPI
developer):ompi_mpi_init: ompi_rte_init failed--> Returned "Error" (-1) instead of "Success" (0)
--------------------------------------------------------------------------
*** An error occurred in MPI_Init
*** on a NULL communicator
*** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,
*** and potentially your MPI job)
查找了一圈,折磨了我一两天,试了各种方法。最后在openmpi的github网上上找到了相关的问题,这个问题是openmpi自身的bug,主要是对openmpi的动态库做其它接口的时候,发生的mpi初始化失败,相关讨论链接在这里:https://github.com/open-mpi/ompi/issues/3705
简单的处理办法就是用人为的给openmpi库加上相关的runtime路径:
#!/bin/sh
prefix="path_to_your_openmpi" # such as /usr/lib/x86_64-linux-gnu/openmpi
for filename in $(ls $prefix/lib/openmpi/*.so); dopatchelf --add-needed libmpi.so.20 $filenamepatchelf --set-rpath "\$ORIGIN/.." $filename
done
当然,其实官网早就已经修复了这个bug。Ubuntu 18默认安装的openMPI版本是2017年发布的,从官网上下载最新的openMPI库进行安装,就没问题。
突然发现好久没有写博客了,简单记录一下,希望对大家有帮助!
使用python调用openmpi编译的MPI 动态库报错:mca_base_component_repository_open: unable to open mca_patcher_overwri相关推荐
- 调用opensmile编译的DLL动态库API进行声音特征提取
目录 一.opensmlie : 二.SMILEapi调用方式. 1.创建实例 2.初始化. 3.设置回调 4.写音频数据. 5.配置文件改动 三.详细代码: 最近尝试使用opensmile进行声音特 ...
- 【错误记录】NDK 动态库报错 ( dlopen failed: file offset for the library /lib/arm64/libwebp.so“ >= file size:0)
文章目录 一.报错信息 二.解决方案 一.报错信息 运行 NDK 时 , 删除了引用的动态库 , 然后 " Ctrl + Z " 恢复 , 运行就报如下错误 ; 2021-04-2 ...
- 【错误记录】Android Studio 导入外部 so 动态库报错 ( java.lang.UnsatisfiedLinkError | 指定 APK 打包动态库的 CPU 架构 )
文章目录 一.报错信息 二.解决方案 ( 指定 APK 打包动态库的 CPU 架构 ) 一.报错信息 外部引用 so 动态库 , 如果只有一个 armeabi-v7a 的动态库 , 那么如果在 arm ...
- 【错误记录】NDK 导入外部 so 动态库报错 ( java.lang.UnsatisfiedLinkError | Android Studio 配置外部 so 动态库两种方法 )
文章目录 一.报错信息 二.解决方案 ( Android Studio 配置外部 so 动态库两种方法 ) 1.jniLibs 目录存放 2.libs 目录存放 一.报错信息 外部引用 so 动态库 ...
- Cygwin编译自己定义OpenCV库报错:opencv_contrib: LOCAL_SRC_FILES points to a missing file
今天受命帮师弟调个OpenCV4Android 识别银行卡的程序,版本号为OpenCV4Android2.4.9,使用方式为前文介绍的第一种方式,即通过jni调用opencv.如杂家前文所述,配套的N ...
- FFmpeg编译成Android动态库
项目需要,网上也有现成的FFmpeg Android动态库,但是本着亲力亲为的宗旨,做了不断地尝试,最终也是成功了,在此做一个笔记,以备日后查阅. 附上给我帮助的资料链接: 王英豪大神的博客 雷霄骅大 ...
- ViSP安装之Windows系统基于VS2019编译器编译获得VISP动态库
Windows系统基于VS2019编译器编译获得VISP动态库 官网地址: Installation from source for Windows with Visual C++ 2019 (vc1 ...
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 系统中调试器进程内存流程 | 编译内存调试动态库以及调试程序 )
文章目录 一.Android 系统中调试器进程内存流程 二.编译内存调试动态库以及调试程序 三.博客资源 一.Android 系统中调试器进程内存流程 修改游戏运行中的内存 , 游戏运行之后 , 游戏 ...
- MATLAB算法(函数)编译为C++动态库遇到的问题
MATLAB算法(函数)编译为C++动态库遇到的问题 今天在编译MATLAB函数为C++的动态链接库时遇到了几个问题,在网上搜索了很多资料都没有解决我遇到的问题,特此分享出来供大家参考. 环境: Wi ...
- c语言怎么调用sdl库函数,Go调用SDL2的C语言动态库
# Go调用SDL2的C语言动态库 在网上找到go的GUI项目基本都需要安装额外软件库,尝试了一下使用go调用dll库的,有所收获,抛砖引玉,留个记录怕以后忘了. ## 1.目录结构 ``` └─li ...
最新文章
- python – 处理psycopg2中的错误 psycopg2.errors.InFailedSqlTransaction: current transaction is aborted, comm
- 2021年下信息系统项目管理师报考和考试时间
- mysql中的count函数和sum函数如果条件不符合返回什么
- 你闺女都能看懂的 Kubernetes 插画指南!
- 基于Docker搭建Redis集群(主从集群)
- POI读取Excel内容格式化
- 奇怪的电梯(信息学奥赛一本通-T1360)
- horizon服务主要模块_Openstack入门篇(十四)之horizon服务的部署与测试
- windows下安装php5.5的redis扩展
- MySQL存数学符号,如何将数学符号保存到mysql或mssql数据库?
- Spire.pdf-使用学习记录
- 计算机专业网页设计周志,毕业设计周志范文100篇
- python爬取58同城二手房信息
- matlab插值函数 外插,Matlab数据插值-内插、外插
- 磁环介绍与应用(转)
- 什么是大数据系统架构
- java调用ip138实现ip地址查询
- freeswitch实战六(呼叫转移)
- 如何利用git将本地项目上传到码市、github等远程仓库
- 计算机维修行业中年,35岁改行的5个职业 中年转行也很轻松,你选对了吗