The content of incompatibility a)Source level incompatibility a-1)The type declaration of the 2nd argument of MPI_Type_size() in L97061 is different from the one in DLIB. DLIB : MPI_Aint * L97061 : int *a-2)Error classes in L97061 are different from those in DLIB. The following error classes defined in DLIB are removed in L97061. MPI_ERR_COMM_NULL, MPI_ERR_COMM_INTER, MPI_ERR_INTRA, MPI_ERR_ERRORCODE, MPI_ERR_NULL, MPI_ERR_LIMIT, MPI_ERR_NOMATCH, MPI_ERR_BAD_ARGS, MPI_ERR_INIT, MPI_ERR_PERM_KEY, MPI_ERR_BUFFER_EXISTS, MPI_ERR_PERM_TYPE, MPI_ERR_PERM_OP, MPI_ERR_PRE_INITb)Object level incompatibility MPI constants definition (e.g.MPI_COMM_WORLD) in L97061 is different from DLIB. DLIB : defined as external variables in the header file. Initial values are set in MPI_Init(). L97061 : defined as real constants in the header file. Resolved in compile time, and initial setting is unnecessary. Loadmodule compatibility is guaranteed.
As for a-1)On the prototype check in C compile time, warning level message is output. This error does not affect program execution. The second argument of MPI_Type_size() should be modified to "int *". As for a-2) Undefined error classes in the header file are to be used, and then compile error occurres at compile time. The error classes shown in a-2) should be modified to those for L97061. As for b) Object made with DLIB cannot be linked with L97061 library. If linked, ld(1) causes error, or execution fails with abend or wrong result. Sometimes wrong execution seems to end successfully. Source program should be recompiled with including L97061 header file, and then new object can be successfully linked with L97061 library.
System manager's deal with the incompatibility
In the case that object resources of DLIB are to be used without
recompile, the DLIB environment should be saved as shown below before
applying L97061 according to the "Software Release Guide" and
"PTF Description".
The cause of the incompatibility
This incompatibility comes from the MPI standard, and not specific to
Fujitsu product.
As for a-1)
The specification of the standards on which DLIB or L97061 are based
do not the same.
DLIB : MPI1.0
L97061 : MPI1.1
The size is declared as "MPI _Aint *" in MPI1.0, but as "int *" IN mpi1.1.
As for a-2)
Error classes of MPI are defined depending the implementation.
As for b)
Fujitsu MPI is developed using MPICH in the public domain.
DLIB : based on MPICH 1.0.11
L97061 : based on MPICH 1.0.13
MPICH 1.0.11 and 1.0.13 are different in the header files as described in
1.b), and then object level incompatibility occurs.
This incompatible status is the same for the other MPI system which is
developed using MPICH.
Moreover, similar incompatibility will occur in MPI-2 which is scheduled
to be shipped on Jan,1998.
This will also come from the MPI standard and will not be specific to
Fujitsu product.