gaspi_return_t gaspi_threads_init(gaspi_int * const num) { gaspi_int cores; gaspi_return_t ret; ret = gaspi_threads_get_num_cores(&cores); if(ret == GASPI_SUCCESS) { *num = cores; return gaspi_threads_init_user(cores); } else return ret; }
int main(int argc, char *argv[]) { TSUITE_INIT(argc, argv); ASSERT (gaspi_proc_init(GASPI_BLOCK)); ASSERT(gaspi_threads_init_user(2)); int tid; ASSERT (gaspi_threads_register(&tid)); gaspi_rank_t P, myrank; ASSERT (gaspi_proc_num(&P)); ASSERT (gaspi_proc_rank(&myrank)); ASSERT (gaspi_segment_create(0, _2MB, GASPI_GROUP_ALL, GASPI_BLOCK, GASPI_MEM_INITIALIZED)); ASSERT (gaspi_barrier(GASPI_GROUP_ALL, GASPI_BLOCK)); int * int_GlbMem; gaspi_pointer_t _vptr; ASSERT(gaspi_segment_ptr(0, &_vptr)); int_GlbMem = ( int *) _vptr; ASSERT(gaspi_threads_run(recvThread, int_GlbMem)); int_GlbMem[0] = 11223344; ASSERT(gaspi_passive_send(0, 0, myrank, sizeof(int), GASPI_BLOCK)); gaspi_threads_sync(); ASSERT (gaspi_barrier(GASPI_GROUP_ALL, GASPI_BLOCK)); ASSERT (gaspi_proc_term(GASPI_BLOCK)); return EXIT_SUCCESS; }