XcalableACC

、XACC は演算加速器を搭載した大規模な並列計算機上での高性能計算向けにXcalableMPを拡張して作られたプログラミング言語である。
XACCは指示文ベースの並列言語であるXcalableMPとOpenACCを組合せた言語である。
XACCでは、プログラマはXcalableMPの指示文とOpenACCの指示文をシームレスに利用することができる。
例えば、XcalableMPで定義した分散配列をOpenACCの指示文中で用いることが可能である。
データ通信については、プロセス間の通信にはXcalableMPの指示文を用い、ホストメモリとアクセラレータ間の通信にはOpenACCの指示文を用いる。
さらに、アクセラレータ間の通信には拡張されたXcalableMPの指示文を用いる。
XcalableMPおよびOpenACCはC言語およびFortranに対応しているため、XACCも同様にC言語およびFortranに対応している。
例.
double u[XSIZE][YSIZE], uu[XSIZE][YSIZE];
 for(k=0; k<MAX_ITER; k++){
 for(x=1; x<XSIZE-1; x++)
 for(y=1; y<YSIZE-1; y++)
 uu[x][y] = u[x][y];
 for(x=1; x<XSIZE-1; x++)
 for(y=1; y<YSIZE-1; y++)
 u[x][y] = (uu[x-1][y]+uu[x+1][y]+
 uu[x][y-1]+uu[x][y+1])/4.0;
 } // end k
} // end data