Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在本地安装OpenMPI以便与CUDA一起使用时出现问题 短版_C++_Makefile_Ubuntu 16.04_Openmpi - Fatal编程技术网

C++ 在本地安装OpenMPI以便与CUDA一起使用时出现问题 短版

C++ 在本地安装OpenMPI以便与CUDA一起使用时出现问题 短版,c++,makefile,ubuntu-16.04,openmpi,C++,Makefile,Ubuntu 16.04,Openmpi,我有CUDA代码,需要在本地运行。因此,我尝试安装以下OpenMPI。当我尝试make我的代码时,我收到了类似于。我尝试使用文档建议的修复程序重新安装OpenMPI,但现在在安装过程中出现以下错误: Making all in tools/ompi_info make[2]: Entering directory '/home/hatfull/Downloads/openmpi-2.1.1/ompi/tools/ompi_info' CC ompi_info.o CC

我有CUDA代码,需要在本地运行。因此,我尝试安装以下OpenMPI。当我尝试
make
我的代码时,我收到了类似于。我尝试使用文档建议的修复程序重新安装OpenMPI,但现在在安装过程中出现以下错误:

Making all in tools/ompi_info
make[2]: Entering directory '/home/hatfull/Downloads/openmpi-2.1.1/ompi/tools/ompi_info'
  CC       ompi_info.o
  CC       param.o
  CCLD     ompi_info
ld: warning: libimf.so, needed by ../../../ompi/.libs/libmpi.so, not found (try using -rpath or -rpath-link)
ld: warning: libsvml.so, needed by ../../../ompi/.libs/libmpi.so, not found (try using -rpath or -rpath-link)
ld: warning: libirng.so, needed by ../../../ompi/.libs/libmpi.so, not found (try using -rpath or -rpath-link)
ld: warning: libintlc.so.5, needed by ../../../ompi/.libs/libmpi.so, not found (try using -rpath or -rpath-link)
ld: .libs/ompi_info: hidden symbol `__intel_cpu_features_init_x' in /opt/intel/compilers_and_libraries_2017.4.196/linux/compiler/lib/intel64_lin/libirc.a(cpu_feature_disp.o) is referenced by DSO
ld: final link failed: Bad value
Makefile:1785: recipe for target 'ompi_info' failed
make[2]: *** [ompi_info] Error 1
make[2]: Leaving directory '/home/hatfull/Downloads/openmpi-2.1.1/ompi/tools/ompi_info'
Makefile:3353: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/hatfull/Downloads/openmpi-2.1.1/ompi'
Makefile:1806: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
我做错了什么?请帮忙!S.O.S

长版本 我有CUDA代码,需要在本地运行。因此,我尝试安装以下OpenMPI。我将tar存储为
~/Downloads/openmpi-2.1.1.tar.gz
。汉斯,我跑了

$gunzip -c openmpi-2.1.1.tar.gz | tar xf -
$cd openmpi-2.1.1
$./configure --prefix=/opt/openmpi-2.1.1 &> configure_log1
$sudo make all install &> install_log_take1
成功了。注意,我将方向中的
--prefix=/usr/local
更改为
--prefix=/opt/openmpi-2.1.1
。我已经包括和

当我尝试使用我的makefile制作我的代码时

我收到了一个很长的错误输出,看起来与。它说解决方案是安装带有配置选项“
/configure CC=icc CXX=icpc F77=ifort FC=ifort…
”的OpenMPI,因此我使用命令重新安装

$cd ~/Downloads/openmpi-2.1.1
$sudo make uninstall
$sudo rm -r /opt/openmpi-2.1.1
$cd ..
$sudo rm -r openmpi-2.1.1

$gunzip -c openmpi-2.1.1.tar.gz | tar xf -
$cd openmpi-2.1.1

$which icc
/opt/intel/compilers_and_libraries_2017.4.196/linux/bin/intel64/icc
$which icpc
/opt/intel/compilers_and_libraries_2017.4.196/linux/bin/intel64/icpc
$which ifort
/opt/intel/compilers_and_libraries_2017.4.196/linux/bin/intel64/ifort

$./configure --prefix=/opt/openmpi-2.1.1 CC=/opt/intel/compilers_and_libraries_2017.4.196/linux/bin/intel64/icc CXX=/opt/intel/compilers_and_libraries_2017.4.196/linux/bin/intel64/icpc F77=/opt/intel/compilers_and_libraries_2017.4.196/linux/bin/intel64/ifort FC=/opt/intel/compilers_and_libraries_2017.4.196/linux/bin/intel64/ifort &> configure_log2
$sudo make all install &> install_log_take2
这是和。请注意
install\u log\u take2
中的以下几行:

Making all in tools/ompi_info
make[2]: Entering directory '/home/hatfull/Downloads/openmpi-2.1.1/ompi/tools/ompi_info'
  CC       ompi_info.o
  CC       param.o
  CCLD     ompi_info
ld: warning: libimf.so, needed by ../../../ompi/.libs/libmpi.so, not found (try using -rpath or -rpath-link)
ld: warning: libsvml.so, needed by ../../../ompi/.libs/libmpi.so, not found (try using -rpath or -rpath-link)
ld: warning: libirng.so, needed by ../../../ompi/.libs/libmpi.so, not found (try using -rpath or -rpath-link)
ld: warning: libintlc.so.5, needed by ../../../ompi/.libs/libmpi.so, not found (try using -rpath or -rpath-link)
ld: .libs/ompi_info: hidden symbol `__intel_cpu_features_init_x' in /opt/intel/compilers_and_libraries_2017.4.196/linux/compiler/lib/intel64_lin/libirc.a(cpu_feature_disp.o) is referenced by DSO
ld: final link failed: Bad value
Makefile:1785: recipe for target 'ompi_info' failed
make[2]: *** [ompi_info] Error 1
make[2]: Leaving directory '/home/hatfull/Downloads/openmpi-2.1.1/ompi/tools/ompi_info'
Makefile:3353: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/hatfull/Downloads/openmpi-2.1.1/ompi'
Makefile:1806: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
很抱歉,我不得不将所有日志文件上载到mediafire,pastebin不接受它们,因为它们太大了


我做错了什么?请帮忙!S.O.S

我找到了解决办法

我登录到
root
并在不使用sudo的情况下完成了安装步骤

#gunzip -c openmpi-2.1.1.tar.gz | tar xf -
#cd openmpi-2.1.1
#./configure --prefix=/opt/openmpi-2.1.1 CC=icc CXX=icpc FC=ifort
#make all install
我试图在英特尔Composer编译器中使用OpenMPI,这导致了权限问题。我按照找到的安装说明进行了安装,但我遇到了与以前尝试安装时相同的问题。问题是链接器,
ld
“无法找到”正确的库,因为调用
sudo
时,
$ld\u LIBRARY\u PATH
变量中不再提供这些库。绕过此问题的唯一方法是登录到
root
用户并将
$LD\u LIBRARY\u PATH
变量设置为与普通用户相同

我已经坚持了好几天了,现在事情解决了,我高兴得跳了起来!我希望这对将来的其他人有所帮助

#gunzip -c openmpi-2.1.1.tar.gz | tar xf -
#cd openmpi-2.1.1
#./configure --prefix=/opt/openmpi-2.1.1 CC=icc CXX=icpc FC=ifort
#make all install