2
H. Murai et al.
In such circumstance, to develop a new parallel programming model that enables
easy parallelization of existing serial programs and design a new language based on
it, “the XMP Specification Working Group” was established in 2008. This group
utilized the lessons from the experience of HPF to define a new parallel language
XcalableMP (XMP). The group was reorganized to one of the working groups of PC
Cluster Consortium in 2011.
It is learned from the lessons of HPF that more automatic processing of compilers
increases the gap between a program and its execution, and, as a result, decreases the
usability of the language. In XMP, the programmers specify explicitly the details of
parallel programs on the basis of compiler directives to make their execution easy to
understand. In particular, they can specify explicitly communication, synchronization, data mapping, and work mapping to facilitate performance tuning. In addition,
XMP supports features for one-sided communication on each process, which was
not available in HPF. This feature might enable programmers to implement parallel
algorithms more easily.
In this chapter, an overview of the programming model and language specification of XMP is shown. You can find the latest and complete language specification
of XMP in: XcalableMP Specification Working Group, XcalableMP Specification
Version 1.4, http://xcalablemp.org/download/spec/xmp-spec-1.4.pdf (2018).
1.1 Target Hardware
The target of XcalableMP is distributed-memory multicomputers (Fig. 1). Each
compute node, which may contain several cores, has its own local memory (shared
by the cores, if any), and is connected with the others via an interconnection
network. Each node can access its local memory directly and remote memory (the
memory of another node) indirectly (i.e. via inter-node communication). However,
Fig. 1 Target hardware of XMP
H. Murai et al.
In such circumstance, to develop a new parallel programming model that enables
easy parallelization of existing serial programs and design a new language based on
it, “the XMP Specification Working Group” was established in 2008. This group
utilized the lessons from the experience of HPF to define a new parallel language
XcalableMP (XMP). The group was reorganized to one of the working groups of PC
Cluster Consortium in 2011.
It is learned from the lessons of HPF that more automatic processing of compilers
increases the gap between a program and its execution, and, as a result, decreases the
usability of the language. In XMP, the programmers specify explicitly the details of
parallel programs on the basis of compiler directives to make their execution easy to
understand. In particular, they can specify explicitly communication, synchronization, data mapping, and work mapping to facilitate performance tuning. In addition,
XMP supports features for one-sided communication on each process, which was
not available in HPF. This feature might enable programmers to implement parallel
algorithms more easily.
In this chapter, an overview of the programming model and language specification of XMP is shown. You can find the latest and complete language specification
of XMP in: XcalableMP Specification Working Group, XcalableMP Specification
Version 1.4, http://xcalablemp.org/download/spec/xmp-spec-1.4.pdf (2018).
1.1 Target Hardware
The target of XcalableMP is distributed-memory multicomputers (Fig. 1). Each
compute node, which may contain several cores, has its own local memory (shared
by the cores, if any), and is connected with the others via an interconnection
network. Each node can access its local memory directly and remote memory (the
memory of another node) indirectly (i.e. via inter-node communication). However,
Fig. 1 Target hardware of XMP
