The term ILP64 denotes that integer, long, and pointer data entities all occupy 8 bytes. This differs from the more conventional LP64 model, in which only long and pointer data entities occupy 8 bytes while integer entities occupy 4 bytes. More information on the historical background and the programming model philosophy can be found, for example, in http://www.unix.org/version2/whatsnew/lp64_wp.html
Intel® MPI Library provides support for the ILP64 model for Fortran applications. To enable the ILP64 mode, do the following:
Use the Fortran compiler wrapper option -i8 for separate compilation and the -ilp64 option for separate linking. For example:
$ mpiifort -i8 -c test.f $ mpiifort -ilp64 -o test test.o
For simple programs, use the Fortran compiler wrapper option -i8 for compilation and linkage. Specifying -i8 will automatically assume the ILP64 library. For example:
$ mpiifort -i8 test.f
When running the application, use the -ilp64 option to preload the ILP64 interface. For example:
$ mpirun -ilp64 -n 2 ./myprog
The following limitations are present in the Intel MPI Library in regard to this functionality:
Data type counts and other arguments with values larger than 231 - 1 are not supported.
Special MPI types MPI_FLOAT_INT, MPI_DOUBLE_INT, MPI_LONG_INT, MPI_SHORT_INT, MPI_2INT, MPI_LONG_DOUBLE_INT, MPI_2INTEGER are not changed and still use a 4-byte integer field.
Predefined communicator attributes MPI_APPNUM, MPI_HOST, MPI_IO, MPI_LASTUSEDCODE, MPI_TAG_UB, MPI_UNIVERSE_SIZE, and MPI_WTIME_IS_GLOBAL are returned by the functions MPI_GET_ATTR and MPI_COMM_GET_ATTR as 4-byte integers. The same holds for the predefined attributes that may be attached to the window and file objects.
Do not use the -i8 option to compile MPI callback functions, such as error handling functions, or user-defined reduction operations.
Do not use the -i8 option with the deprecated functions that store or retrieve the 4-byte integer attribute (for example, MPI_ATTR_GET, MPI_ATTR_PUT, etc.). Use their recommended alternatives instead (MPI_COMM_GET_ATTR, MPI_COMM_SET_ATTR, etc).
If you want to use the Intel® Trace Collector with the Intel MPI Library ILP64 executable files, you must use a special Intel Trace Collector library. If necessary, the mpiifort compiler wrapper will select the correct Intel Trace Collector library automatically.
There is currently no support for C and C++ applications.