Changeset 1525 for XIOS/dev/branch_openmp/extern/ep_dev/ep_free.cpp
- Timestamp:
- 06/07/18 19:39:07 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_openmp/extern/ep_dev/ep_free.cpp
r1517 r1525 103 103 104 104 105 105 int MPI_Comm_free2(MPI_Comm *comm) 106 { 107 Debug("MPI_Comm_free with EP_intracomm\n"); 108 109 int ep_rank_loc, num_ep; 110 111 ep_rank_loc = (*comm)->ep_comm_ptr->size_rank_info[1].first; 112 num_ep = (*comm)->ep_comm_ptr->size_rank_info[1].second; 113 114 MPI_Barrier2(*comm); 115 116 if(ep_rank_loc == 0) 117 { 118 119 #ifdef _showinfo 120 printf("delete (*comm)->my_buffer = %p\n", (*comm)->my_buffer); 121 #endif 122 delete (*comm)->my_buffer; 123 124 125 126 #ifdef _showinfo 127 printf("delete (*comm)->ep_barrier = %p\n", (*comm)->ep_barrier); 128 #endif 129 delete (*comm)->ep_barrier; 130 131 132 133 (*comm)->ep_rank_map->clear(); 134 #ifdef _showinfo 135 printf("delete (*comm)->ep_rank_map = %p\n", (*comm)->ep_rank_map); 136 #endif 137 delete (*comm)->ep_rank_map; 138 139 140 for(int i=0; i<num_ep; i++) 141 { 142 if((*comm)->is_intercomm) 143 { 144 (*comm)->ep_comm_ptr->comm_list[i]->inter_rank_map->clear(); 145 #ifdef _showinfo 146 printf("delete (*comm)->ep_comm_ptr->comm_list[%d]->inter_rank_map = %p\n", i, (*comm)->ep_comm_ptr->comm_list[i]->inter_rank_map); 147 #endif 148 delete (*comm)->ep_comm_ptr->comm_list[i]->inter_rank_map; 149 } 150 151 (*comm)->ep_comm_ptr->comm_list[i]->ep_comm_ptr->message_queue->clear(); 152 #ifdef _showinfo 153 printf("delete (*comm)->ep_comm_ptr->comm_list[%d]->ep_comm_ptr->message_queue = %p\n", i, (*comm)->ep_comm_ptr->comm_list[i]->ep_comm_ptr->message_queue); 154 #endif 155 delete (*comm)->ep_comm_ptr->comm_list[i]->ep_comm_ptr->message_queue; 156 157 158 #ifdef _showinfo 159 printf("delete (*comm)->ep_comm_ptr->comm_list[%d]->ep_comm_ptr = %p\n", i, (*comm)->ep_comm_ptr->comm_list[i]->ep_comm_ptr); 160 #endif 161 delete (*comm)->ep_comm_ptr->comm_list[i]->ep_comm_ptr; 162 163 164 #ifdef _showinfo 165 printf("delete (*comm)->ep_comm_ptr->comm_list[%d] = %p\n", i, (*comm)->ep_comm_ptr->comm_list[i]); 166 #endif 167 delete (*comm)->ep_comm_ptr->comm_list[i]; 168 } 169 170 #ifdef _showinfo 171 printf("delete (*comm)->mpi_comm = %p\n", (*comm)->mpi_comm); 172 #endif 173 ::MPI_Comm_free(to_mpi_comm_ptr((*comm)->mpi_comm)); 174 175 #ifdef _showinfo 176 printf("delete (*comm)->ep_comm_ptr->comm_list = %p\n", (*comm)->ep_comm_ptr->comm_list); 177 #endif 178 delete[] (*comm)->ep_comm_ptr->comm_list; 179 } 180 } 106 181 107 182
Note: See TracChangeset
for help on using the changeset viewer.