68
H. Murai et al.
XcalableMP C
void sub1(){
#pragma xmp nodes p[2]
#pragma xmp template t[10]
#pragma xmp distribute t[block] onto p
5
double x[10];
#pragma xmp align x[i] with t[i]
sub2(x);
}
10 void sub2(double a[5]){
:
}
XcalableMP Fortran
subroutine sub1()
!$xmp nodes p(2)
!$xmp template t(10)
!$xmp distribute t(block) onto p
5
real x(10)
!$xmp align x(i) with t(i)
call sub2(x)
end subroutine
10 subroutine sub2(a)
real a(5)
:
end subroutine
7 XMPT Tool Interface
7.1 Overview
XMPT is the tool interface of XMP and inspired by OMPT, which is the tool
interface of OpenMP [4]. Hence, XMPT is designed as event-based and callbackbased as OMPT; that is, for each event at runtime, the corresponding callback is
invoked. One or more XMPT events are defined corresponding to each of XMP
constructs and coarray-related actions (e.g. remote write/read and synchronization).
XMPT is preliminarily implemented in the Omni XMP compiler chapter “Implementation and Performance Evaluation of Omni Compiler”, and used in MUST [5]
and experimentally in Extrae [6]. More details of the application of XMPT in MUST
are described in [7].
Précédent

- 76/265

Suivant