| /*****************************************************************************\ |
| * 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; |
| } |