我试图使用 MPI 并行化 Fortran 程序。我使用 CMake 来构建我的程序。在谷歌上很难找到支持让 CMake 为 Fortran 创建一个具有 MPI 支持的工作 makefile,但据我所知,我将以下命令添加到我的 CMakeLists.txt 脚本中:
find_package(MPI REQUIRED)
add_definitions(${MPI_Fortran_COMPILE_FLAGS})
include_directories(${MPI_Fortran_INCLUDE_DIRS})
link_directories(${MPI_FortranLIBRARY_DIRS})
这将在我的系统上找到 MPI,然后设置在以下三个命令中找到的变量。在我的链接行中,我将 MPI 库变量添加到我的程序需要构建的其他库的列表中。
target_link_libraries(${exe_name} otherlibs ${MPI_FortranLIBRARY_DIRS})
做cmake
然后make
工作来构建程序并且程序运行;但是,当我尝试向需要包含mpif.h
包含文件的源添加更多内容时,由于无法找到此头文件,我的编译失败。我也不能,因为编译器在路径中 use mpi
找不到文件。mpi.mod