Coarrays in the Context of XcalableMP
105
(external) variable to share between the user-defined procedure (say foo) and its
initialization procedure (xmpf_init_foo). The data is statically allocated by the
Fortran system in a manner similar to the usual common variable. The address is
registered in the initialization procedure via the runtime library.
3.2.3 Runtime Allocation for Allocatable Coarrays
For the RS method, the runtime library has a memory management system for
cutting out and retrieving memory for each allocation and deallocation of coarrays.
Figure 2 illustrates the memory allocation and registration for allocatable
coarrays in the RA and CA methods.
These methods are properly used by the underlying communication library.
For GASNet, only the RS method is adopted because its allocation function can
be used only once in the program. For MPI-3, the CA method is not suitable
because frequent allocation and deallocation of coarrays cause expensive creation
Fig. 2 Memory allocation for coarrays in RA and CA methods. (a) RA method. (b) CA method
105
(external) variable to share between the user-defined procedure (say foo) and its
initialization procedure (xmpf_init_foo). The data is statically allocated by the
Fortran system in a manner similar to the usual common variable. The address is
registered in the initialization procedure via the runtime library.
3.2.3 Runtime Allocation for Allocatable Coarrays
For the RS method, the runtime library has a memory management system for
cutting out and retrieving memory for each allocation and deallocation of coarrays.
Figure 2 illustrates the memory allocation and registration for allocatable
coarrays in the RA and CA methods.
These methods are properly used by the underlying communication library.
For GASNet, only the RS method is adopted because its allocation function can
be used only once in the program. For MPI-3, the CA method is not suitable
because frequent allocation and deallocation of coarrays cause expensive creation
Fig. 2 Memory allocation for coarrays in RA and CA methods. (a) RA method. (b) CA method
