Can we use intel MPI 4.0 with a default 8-byte integer Fortran application?

Can we use intel MPI 4.0 with a default 8-byte integer Fortran application?

Hi,

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?

Thanks.

2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Hi John,

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.

Regards!
Dmitry

Leave a Comment

Please sign in to add a comment. Not a member? Join today