- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
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.
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
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

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page