int main (int argc, char *argv[]) { int i; struct pe_vars v; union data_types * msg_buffer; int use_heap; /* * Initialize */ v = init_openshmem(); check_usage(v.me, v.npes, argc, argv); for (i = 0; i < _SHMEM_REDUCE_SYNC_SIZE; i += 1) { psync1[i] = _SHMEM_SYNC_VALUE; psync2[i] = _SHMEM_SYNC_VALUE; } shmem_barrier_all(); print_header(v.me); /* * Allocate Memory */ use_heap = !strncmp(argv[1], "heap", 10); msg_buffer = allocate_memory(v.me, use_heap); memset(msg_buffer, 0, sizeof(union data_types [ITERATIONS])); /* * Time Put Message Rate */ benchmark(v, msg_buffer); /* * Finalize */ if (use_heap) { shfree(msg_buffer); } return EXIT_SUCCESS; }
int main (int argc, char *argv[]) { struct pe_vars v; long * msg_buffer, * aligned_buffer; long alignment; int use_heap; /* * Initialize */ v = init_openshmem(); check_usage(v.me, v.npes, argc, argv); print_header(v.me); if (v.me == 0) printf("Total processes = %d\n",v.npes); /* * Allocate Memory */ use_heap = !strncmp(argv[1], "heap", 10); alignment = use_heap ? sysconf(_SC_PAGESIZE) : 4096; msg_buffer = allocate_memory(v.me, alignment, use_heap); aligned_buffer = align_memory((unsigned long)msg_buffer, alignment); memset(aligned_buffer, 0, MAX_MSG_SZ * ITERS_LARGE); /* * Time Put Message Rate */ benchmark(v, aligned_buffer); /* * Finalize */ if (use_heap) { shfree(msg_buffer); } return EXIT_SUCCESS; }