Can we use intel MPI 4.0 with a default 8-byte integer Fortran application?
We have a Fortran application that we have compiled and run fine with 4-byte integers and Intel MPI 4.0. We would like to compile the application using 8-byte integers. What we are trying is setting the Fortran compiler to compile all integers as 8-bytes and then link the ilp64 MKL libraries with libmpi_ilp64.lib. However, the compiler complains that the mpi subroutine data types no longer match.
For example, for MPI_COMM_SIZE
... use mpi integer :: comm, size, ierr !now 8-bytes by default call MPI_COMM_SIZE(comm,size,ierr) ...
the compiler complains the integer data types do not match. Also, mpi integer parameters like MPI_COMM_WORLD still seem to be 4-byte integers. The MPI documentation has only a sentence or two about 8-byte integers.
1. Is there any way to compile an mpi program natively as 8-bytes without having to go and adjust all the mpi calls back to 4-bytes? 2. What exactly is libmpi_ilp64.lib doing?
Are you compiling your application by Intel compiler? If so, you can just use 'mpiifort -i8 app_name.f' plus ilp64 versions of MKL libraries. In this case all needed libraries will be linked correctly. One note: you probably need to use "include 'mpif.h' " instead of "use mpi".
Please give it a try! Please send command lines if you still experience a problem.