Intel® HPC Toolkit
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.
2145 Discussions

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

New Contributor I

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?


0 Kudos
1 Reply
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.

0 Kudos