blob: a5bc039607196de3a72dd80f35874871f0dc1135 [file] [log] [blame]
/*****************************************************************************\
* test1.96.prog.upc - Basic SHMEM test via srun.
*****************************************************************************
* Based upon "Code Example" in "SHMEM Tutorial"
* By Hung-Hsun Su, UPC Group, HSC Lab, Spring 2010
\*****************************************************************************/
#include <stdio.h>
#include <shmem.h>
int me, npes, i;
int src[8], dest[8];
int main(int argc, char * argv[])
{
/* Get PE information */
shmem_init();
me = _my_pe();
npes = _num_pes();
/* Initialize and send on PE 0 */
if (me == 0) {
for (i = 0; i < 8; i++)
src[i] = i + 1;
/* Put source date at PE 0 to dest at PE 1+ */
for (i = 1; i < npes; i++)
shmem_put64(dest, src, 8 * sizeof(int) / 8, i);
}
/* Make sure the transfer is complete */
shmem_barrier_all();
/* Print from PE 1+ */
if (me > 0) {
printf("PE %d: %d", me, dest[0]);
for (i = 1; i < 8; i++)
printf(",%d", dest[i]);
printf("\n");
}
shmem_finalize();
return 0;
}