Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.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
Fortran MPI运行时出错的问题";符号查找错误:mpirun:未定义符号:opal_libevent2022_event_base_loop";_Fortran_Gfortran_Openmpi - Fatal编程技术网

Fortran MPI运行时出错的问题";符号查找错误:mpirun:未定义符号:opal_libevent2022_event_base_loop";

Fortran MPI运行时出错的问题";符号查找错误:mpirun:未定义符号:opal_libevent2022_event_base_loop";,fortran,gfortran,openmpi,Fortran,Gfortran,Openmpi,我是MPI的新手。我尝试用简单的Hello_世界代码测试MPI。我使用mpifort-c../main.f95-g-w-I/opt/openmpi4.0.1/include编译了代码。输出文件是test1。 当我使用mpirunnp-4./test1时,它给出了一个错误“mpirun:symbol查找错误:mpirun:undefined symbol:opal\u libevent2022\u event\u base\u循环” “。请你找出mpirun的问题所在 program hel

我是MPI的新手。我尝试用简单的Hello_世界代码测试MPI。我使用mpifort-c../main.f95-g-w-I/opt/openmpi4.0.1/include编译了代码。输出文件是test1。 当我使用mpirunnp-4./test1时,它给出了一个错误“mpirun:symbol查找错误:mpirun:undefined symbol:opal\u libevent2022\u event\u base\u循环” “。请你找出mpirun的问题所在

   program hello
   include 'mpif.h'
   integer rank, size, ierror, tag, status(MPI_STATUS_SIZE)

   call MPI_INIT(ierror)
   call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror)
   call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)
   print*, 'node', rank, ': Hello world'
   call MPI_FINALIZE(ierror)
   end

我看到您的安装在
/opt/openmpi4.0.1
中。你是手动安装的吗?是否导出
LD\u LIBRARY\u PATH
以指向包含MPI库的子目录?您的系统中还有其他MPI吗?是的,我是手动完成的。我已经将LD_LIBRARY_PATH导出到./bashrc作为导出LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/openmpi4.0.1/但我没有工作。我的系统中有openmpi1.6.5,它位于/usr/文件夹中。从Debian 8升级到Debian 10后,以前的版本不再工作,因此我将openmpi4.0.1安装到新文件夹/opt/openmpi4.0.1。我不会卸载以前的openmpi。除非是打字错误,否则您应该使用
LD\u LIBRARY\u PATH=/opt/openmpi4.0.1/lib64:$LD\u LIBRARY\u PATH
(即指向库目录!)。或者使用
lib
而不是
lib64
,具体取决于您的安装;你需要检查哪一个在那里。并将
/opt/openmpi4.0.1/bin
添加到
路径
。使用
/opt/openmpi4.0.1/bin
中正确的
mpifort
包装器时,您不需要指定
-I
。很抱歉,尽管我已经尝试了您的建议,但仍然产生了相同的错误。我运行ompi_info以了解有关openmpi当前版本的更多详细信息。在prefix部分,它给出了/usr和**'--prefix=/usr/local'**作为Configure命令行:部分,这对我来说非常奇怪。因为我在\opt中安装了openmpi。还有一件事,我删除了-I,编译器给出了一个警告gfortran:warning:/opt/openmpi4.0.1/include:linker输入文件未使用,因为链接未完成。我的意思是,当您使用
/opt/openmpi4.0.1/bin
中的
mpifort
时,您不需要使用整个include行
-I/opt/openmpi4.0.1/include
。我认为如果你卸载系统MPI,你会做得最好;这将迫使您正确设置手动安装的路径。