relaxed shared [5] int *shared shared_ptr_to_shared;
strict shared [5] int y[100 * THREADS];
strict shared [5] int z[100 * THREADS];
int x[100];
shared int shared_int;
int local_int = 99;
shared int *ptr_to_shared_int;
int
main ()
{
 int i;
 size_t size;
 upc_lock_t *lock;
 lock = upc_global_lock_alloc ();
 upc_barrier 1;
 upc_forall (i = 0; i < 100 * THREADS; ++i; &z[i])
 {
 int j;
 for (j = 0; j < 100; ++j)
	{
#pragma upc strict
	 if (x[i] < x[j])
	 {
	 upc_lock (lock);
	 z[i][j] = x[i] * y[j];
	 upc_unlock (lock);
	 }
	 else
	 {
	 upc_fence;
	 z[i][j] = -x[i] * y[j];
	 upc_fence;
	 }
	}
 upc_notify 10;
 upc_wait 10;
 }
 size = upc_blocksizeof (z);
 size = upc_localsizeof (z);
 size = upc_elemsizeof (z);
 upc_lock_free (lock);
}

AltStyle によって変換されたページ (->オリジナル) /