1
1
openmpi/examples/oshmem_max_reduction.c
Mike Dubman daaf1d441d OSHMEM: added bunch of examples according to SPEC 1.0
fixed by Roman, reviewed by Igor/Mike

cmr=v1.8.2:reviewer=ompi-rm1.8

This commit was SVN r31449.
2014-04-19 05:03:44 +00:00

59 строки
942 B
C

/*
* Copyright (c) 2014 Mellanox Technologies, Inc.
* All rights reserved.
* $COPYRIGHT$
*
* Additional copyrights may follow
*
* $HEADER$
*
* reduce [0,1,2] + _my_pe() across 4 PEs with MAX()
*/
#include <stdio.h>
#include <string.h>
#include <shmem.h>
long pSync[_SHMEM_BCAST_SYNC_SIZE];
#define N 3
long src[N];
long dst[N];
long pWrk[_SHMEM_REDUCE_SYNC_SIZE];
int main(void)
{
int i;
int my_pe, num_pes;
for (i = 0; i < SHMEM_BCAST_SYNC_SIZE; i += 1) {
pSync[i] = _SHMEM_SYNC_VALUE;
}
start_pes(0);
my_pe = _my_pe();
num_pes = _num_pes();
for (i = 0; i < N; i += 1) {
src[i] = my_pe + i;
}
shmem_barrier_all();
shmem_long_max_to_all(dst, src, N, 0, 0, num_pes, pWrk, pSync);
printf("%d/%d dst =", my_pe, num_pes);
for (i = 0; i < N; i+= 1) {
printf(" %d", dst[i]);
}
printf("\n");
return 0;
}