我正在尝试在 MPI 设置中为示例 hello world 类型的 Fortran 测试代码启用 64 位整数大小。操作系统:Windows 10 使用的编译器:英特尔 OneAPI 2021.4.0 MPI:英特尔 MPI
我尝试测试两种情况,
- 使用单行命令直接编译可执行文件,mpiifort -o test.exe -i8 test.f90
- 使用 CmakeLists 文件使用必要的 Fortran 64 位“-i8”选项和 find_package(MPI) 编译测试。我确保选择了 MPI 库(impi.lib、libmpi_ilp64.lib)并且 MPI_Fortran_Compiler 指向 mpiifort
我使用 API MPI_Type_size( ) 来确定 MPI_INTEGER 的大小,以检查是否为 Fortran/MPI 设置启用了 64 位环境。
call MPI_Type_size(MPI_INTEGER, sz, ierrsiz)
print *, 'sizeof(MPI_INTEGER) ', sz
场景 1 打印正确大小的 8 字节(64 位) 场景 2 打印错误大小的 4 字节(32 位)
我确实在 Cmake 构建系统中使用“-i8”选项来启用 64 位环境。但 MPI 似乎仍然是 32 位的。
请帮忙。