void Setup(ArgStruct *p) { if(gm_open(&gm_p,0,5,"port2",(enum gm_api_version) GM_API_VERSION) != GM_SUCCESS) { printf(" Couldn't open board 0 port 2\n"); exit(-1); } else printf("Opened board 0 port2\n"); if( p->tr ) p->prot.host_id = gm_host_name_to_node_id(gm_p, p->host); gm_free_send_tokens(gm_p, GM_LOW_PRIORITY, gm_num_send_tokens(gm_p)); ltime = gm_dma_malloc(gm_p, sizeof(unsigned long)); lrpt = gm_dma_malloc(gm_p, sizeof(unsigned long)); sync = gm_dma_malloc(gm_p, 64); sync1 = gm_dma_malloc(gm_p, 64); sprintf(sync, "Syncme"); establish(p); p->prot.num_stokens = gm_num_send_tokens(gm_p); }
int MPID_nem_gm_finalize() { int mpi_errno = MPI_SUCCESS; int max_send_tokens; MPID_nem_gm_send_queue_t *e; max_send_tokens = gm_num_send_tokens (MPID_nem_module_gm_port); while (MPID_nem_module_gm_num_send_tokens < max_send_tokens && !MPID_nem_gm_queue_empty (send)) { mpi_errno = MPID_nem_gm_recv_poll(); if (mpi_errno) MPIU_ERR_POP (mpi_errno); } while (MPID_nem_gm_send_free_queue) { e = MPID_nem_gm_send_free_queue; MPID_nem_gm_send_free_queue = e->next; MPIU_Free (e); } mpi_errno = MPID_nem_gm_lmt_finalize(); if (mpi_errno) MPIU_ERR_POP (mpi_errno); gm_finalize(); fn_exit: return mpi_errno; fn_fail: goto fn_exit; }