int a[20];
#pragma xmp template t[20] /* 0から19までのテンプレートを定義 */
#pragma xmp nodes p[4] /* ノード集合を定義 */
#pragma xmp distribute t[block] onto p /* テンプレートをノード集合に分散させる */
#pragma xmp align a[i] with t[i] /* 分散されたテンプレートと配列を関連付ける */
int main() {
#pragma xmp loop on t[i] /* 分散されたテンプレートに従い、ループ文を各ノードで実行する */
for (int i = 0; i < 20; i++)
a[i] = func(i);
return 0;
}
#include <xmp.h>
#pragma xmp nodes p[4] /* ノード集合を定義 */
int a[20]:[*]; /* Coarrayの定義 */
int main() {
int me = xmpc_node_num(); /* 自身のノード番号を取得 */
if (me == 1)
a[0:20]:[3] = a[0:20]; /* ノード番号1は、自身が持つ配列aを、ノード番号3が持つ配列aにPUTする */
return 0;
}