英特尔 Fortran 编译器找不到模块“mpi”
Intel Fortran compiler cannot find module `mpi`
我最近在学术许可下安装了英特尔的 Parallel Studio XE 2019,我正在尝试编译使用 MPI 的 Fortran90 代码。我收到以下错误:
>> ifort -O3 -ip -ipo -c parallel.f90
parallel.f90(7): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [MPI]
use mpi
------^
显然 ifort
无法找到 MPI 库。据我了解,英特尔库带有自己的 MPI 库,所以我认为我不应该担心链接到例如libopenmpi
。当我使用 GNU mpif90
编译相同的代码时,一切都按预期工作。
下面我包含了 echo $LD_LIBRARY_PATH
的(编辑过的)输出。有什么遗漏吗?
/home/***/intel/compilers_and_libraries_2019.1.144/linux/compiler/lib/intel64_lin
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/libfabric/lib
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/lib/release
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/lib
/home/***/intel/compilers_and_libraries_2019.1.144/linux/ipp/lib/intel64
/home/***/intel/compilers_and_libraries_2019.1.144/linux/compiler/lib/intel64_lin
/home/***/intel/compilers_and_libraries_2019.1.144/linux/mkl/lib/intel64_lin
/home/***/intel/compilers_and_libraries_2019.1.144/linux/tbb/lib/intel64/gcc4.7
/home/***/intel/compilers_and_libraries_2019.1.144/linux/tbb/lib/intel64/gcc4.7
/home/***/intel/compilers_and_libraries_2019.1.144/linux/daal/lib/intel64_lin
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/libfabric/lib
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/lib/release
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/lib
/home/***/intel/compilers_and_libraries_2019.1.144/linux/compiler/lib/intel64_lin
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/libfabric/lib
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/lib/release
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/lib
/home/***/intel/compilers_and_libraries_2019.1.144/linux/ipp/lib/intel64
/home/***/intel/compilers_and_libraries_2019.1.144/linux/compiler/lib/intel64_lin
/home/***/intel/compilers_and_libraries_2019.1.144/linux/mkl/lib/intel64_lin
/home/***/intel/compilers_and_libraries_2019.1.144/linux/tbb/lib/intel64/gcc4.7
/home/***/intel/compilers_and_libraries_2019.1.144/linux/tbb/lib/intel64/gcc4.7
/home/***/intel/compilers_and_libraries_2019.1.144/linux/daal/lib/intel64_lin
/home/***/intel/compilers_and_libraries_2019.1.144/linux/daal/../tbb/lib/intel64_lin/gcc4.4
[编辑] echo $PATH
的内容:
/home/****/intel/intelpython3/bin
/home/****/intel/advisor_2019.1.0.579143/bin64
/home/****/intel/vtune_amplifier_2019.1.0.579888/bin64
/home/****/intel/inspector_2019.1.0.579146/bin64
/home/****/intel/compilers_and_libraries_2019.1.144/linux/bin/intel64
/home/****/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/libfabric/bin
/home/****/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/bin
/home/****/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/libfabric/bin
/home/****/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/bin
/home/****/intel/compilers_and_libraries_2019.1.144/linux/bin/intel64
/home/****/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/libfabric/bin
/home/****/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/bin
/home/****/anaconda3/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/snap/bin
/home/****/intel//parallel_studio_xe_2019.1.053/bin
如果您希望将英特尔 MPI 与英特尔 Fortran 编译器结合使用,包装器为 mpiifort
。
如果您想将其他 MPI(例如 Open MPI)与 use mpi
一起使用,那么您可能需要重建 MPI 库,因为 Fortran 模块在供应商之间不可互操作,有时甚至是不同的编译器版本同一供应商。
强烈建议您使用 ifort
并手动设置包含和库路径。
FWIW,英特尔 MPI mpif90
使用 GNU gfortran 编译器。
我最近在学术许可下安装了英特尔的 Parallel Studio XE 2019,我正在尝试编译使用 MPI 的 Fortran90 代码。我收到以下错误:
>> ifort -O3 -ip -ipo -c parallel.f90
parallel.f90(7): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [MPI]
use mpi
------^
显然 ifort
无法找到 MPI 库。据我了解,英特尔库带有自己的 MPI 库,所以我认为我不应该担心链接到例如libopenmpi
。当我使用 GNU mpif90
编译相同的代码时,一切都按预期工作。
下面我包含了 echo $LD_LIBRARY_PATH
的(编辑过的)输出。有什么遗漏吗?
/home/***/intel/compilers_and_libraries_2019.1.144/linux/compiler/lib/intel64_lin
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/libfabric/lib
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/lib/release
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/lib
/home/***/intel/compilers_and_libraries_2019.1.144/linux/ipp/lib/intel64
/home/***/intel/compilers_and_libraries_2019.1.144/linux/compiler/lib/intel64_lin
/home/***/intel/compilers_and_libraries_2019.1.144/linux/mkl/lib/intel64_lin
/home/***/intel/compilers_and_libraries_2019.1.144/linux/tbb/lib/intel64/gcc4.7
/home/***/intel/compilers_and_libraries_2019.1.144/linux/tbb/lib/intel64/gcc4.7
/home/***/intel/compilers_and_libraries_2019.1.144/linux/daal/lib/intel64_lin
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/libfabric/lib
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/lib/release
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/lib
/home/***/intel/compilers_and_libraries_2019.1.144/linux/compiler/lib/intel64_lin
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/libfabric/lib
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/lib/release
/home/***/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/lib
/home/***/intel/compilers_and_libraries_2019.1.144/linux/ipp/lib/intel64
/home/***/intel/compilers_and_libraries_2019.1.144/linux/compiler/lib/intel64_lin
/home/***/intel/compilers_and_libraries_2019.1.144/linux/mkl/lib/intel64_lin
/home/***/intel/compilers_and_libraries_2019.1.144/linux/tbb/lib/intel64/gcc4.7
/home/***/intel/compilers_and_libraries_2019.1.144/linux/tbb/lib/intel64/gcc4.7
/home/***/intel/compilers_and_libraries_2019.1.144/linux/daal/lib/intel64_lin
/home/***/intel/compilers_and_libraries_2019.1.144/linux/daal/../tbb/lib/intel64_lin/gcc4.4
[编辑] echo $PATH
的内容:
/home/****/intel/intelpython3/bin
/home/****/intel/advisor_2019.1.0.579143/bin64
/home/****/intel/vtune_amplifier_2019.1.0.579888/bin64
/home/****/intel/inspector_2019.1.0.579146/bin64
/home/****/intel/compilers_and_libraries_2019.1.144/linux/bin/intel64
/home/****/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/libfabric/bin
/home/****/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/bin
/home/****/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/libfabric/bin
/home/****/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/bin
/home/****/intel/compilers_and_libraries_2019.1.144/linux/bin/intel64
/home/****/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/libfabric/bin
/home/****/intel//compilers_and_libraries_2019.1.144/linux/mpi/intel64/bin
/home/****/anaconda3/bin
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games
/snap/bin
/home/****/intel//parallel_studio_xe_2019.1.053/bin
如果您希望将英特尔 MPI 与英特尔 Fortran 编译器结合使用,包装器为 mpiifort
。
如果您想将其他 MPI(例如 Open MPI)与 use mpi
一起使用,那么您可能需要重建 MPI 库,因为 Fortran 模块在供应商之间不可互操作,有时甚至是不同的编译器版本同一供应商。
强烈建议您使用 ifort
并手动设置包含和库路径。
FWIW,英特尔 MPI mpif90
使用 GNU gfortran 编译器。