4
H. Murai et al.
of the directive, it updates the current executing node set with the specified one
and executes the body of the construct, after which it resumes the last executing
node set and proceeds to execute the subsequent statements.
In particular, when a node in the current executing node set encounters a loop
or an array construct, it executes the loop or the array assignment in parallel with
the other nodes, so that each iteration of the loop or element of the assignment is
independently executed by the node in which the specified data element resides.
When a node encounters a synchronization or a communication directive,
synchronization or communication occurs between it and the other nodes. That is,
such global constructs are performed collectively by the current executing nodes.
Note that neither synchronization nor communication occurs unless these constructs
are specified.
1.3 Data Model
There are two classes of data in XcalableMP: global data and local data. Data
declared in an XcalableMP program are local by default.
Global data are distributed onto a node set by the align directive (see
Sect. 2.4). Each fragment of distributed global data is allocated in the local memory
of a node in the node set.
Local data comprises all data that are not global. They are replicated within the
local memory of each of the executing nodes.
A node can access directly only local data and sections of global data that reside
in its local memory. To access data in remote memory, explicit communication
must be specified in such ways as global communication constructs and coarray
assignments (Fig. 3).
Fig. 3 Data model of XMP
H. Murai et al.
of the directive, it updates the current executing node set with the specified one
and executes the body of the construct, after which it resumes the last executing
node set and proceeds to execute the subsequent statements.
In particular, when a node in the current executing node set encounters a loop
or an array construct, it executes the loop or the array assignment in parallel with
the other nodes, so that each iteration of the loop or element of the assignment is
independently executed by the node in which the specified data element resides.
When a node encounters a synchronization or a communication directive,
synchronization or communication occurs between it and the other nodes. That is,
such global constructs are performed collectively by the current executing nodes.
Note that neither synchronization nor communication occurs unless these constructs
are specified.
1.3 Data Model
There are two classes of data in XcalableMP: global data and local data. Data
declared in an XcalableMP program are local by default.
Global data are distributed onto a node set by the align directive (see
Sect. 2.4). Each fragment of distributed global data is allocated in the local memory
of a node in the node set.
Local data comprises all data that are not global. They are replicated within the
local memory of each of the executing nodes.
A node can access directly only local data and sections of global data that reside
in its local memory. To access data in remote memory, explicit communication
must be specified in such ways as global communication constructs and coarray
assignments (Fig. 3).
Fig. 3 Data model of XMP
