Lines Matching refs:d
87 DMSwarmDataEx d; in DMSwarmDataExCreate() local
90 PetscCall(PetscNew(&d)); in DMSwarmDataExCreate()
91 PetscCallMPI(MPI_Comm_dup(comm, &d->comm)); in DMSwarmDataExCreate()
92 PetscCallMPI(MPI_Comm_rank(d->comm, &d->rank)); in DMSwarmDataExCreate()
94 d->instance = count; in DMSwarmDataExCreate()
96 d->topology_status = DEOBJECT_STATE_UNKNOWN; in DMSwarmDataExCreate()
97 d->message_lengths_status = DEOBJECT_STATE_UNKNOWN; in DMSwarmDataExCreate()
98 d->packer_status = DEOBJECT_STATE_UNKNOWN; in DMSwarmDataExCreate()
99 d->communication_status = DEOBJECT_STATE_UNKNOWN; in DMSwarmDataExCreate()
101 d->n_neighbour_procs = -1; in DMSwarmDataExCreate()
102 d->neighbour_procs = NULL; in DMSwarmDataExCreate()
104 d->messages_to_be_sent = NULL; in DMSwarmDataExCreate()
105 d->message_offsets = NULL; in DMSwarmDataExCreate()
106 d->messages_to_be_recvieved = NULL; in DMSwarmDataExCreate()
108 d->unit_message_size = (size_t)-1; in DMSwarmDataExCreate()
109 d->send_message = NULL; in DMSwarmDataExCreate()
110 d->send_message_length = -1; in DMSwarmDataExCreate()
111 d->recv_message = NULL; in DMSwarmDataExCreate()
112 d->recv_message_length = -1; in DMSwarmDataExCreate()
113 d->total_pack_cnt = -1; in DMSwarmDataExCreate()
114 d->pack_cnt = NULL; in DMSwarmDataExCreate()
116 d->send_tags = NULL; in DMSwarmDataExCreate()
117 d->recv_tags = NULL; in DMSwarmDataExCreate()
119 d->_stats = NULL; in DMSwarmDataExCreate()
120 d->_requests = NULL; in DMSwarmDataExCreate()
121 *ex = d; in DMSwarmDataExCreate()
131 PetscErrorCode DMSwarmDataExView(DMSwarmDataEx d) in DMSwarmDataExView() argument
136 …PetscCall(PetscPrintf(PETSC_COMM_WORLD, "DMSwarmDataEx: instance=%" PetscInt_FMT "\n", d->instance… in DMSwarmDataExView()
137 …PetscCall(PetscPrintf(PETSC_COMM_WORLD, " topology status: %s \n", status_names[d->topolog… in DMSwarmDataExView()
138 …PetscCall(PetscPrintf(PETSC_COMM_WORLD, " message lengths status: %s \n", status_names[d->message… in DMSwarmDataExView()
139 …PetscCall(PetscPrintf(PETSC_COMM_WORLD, " packer status status: %s \n", status_names[d->packer_… in DMSwarmDataExView()
140 …PetscCall(PetscPrintf(PETSC_COMM_WORLD, " communication status: %s \n", status_names[d->communi… in DMSwarmDataExView()
142 if (d->topology_status == DEOBJECT_FINALIZED) { in DMSwarmDataExView()
144 …PetscCall(PetscSynchronizedPrintf(PETSC_COMM_WORLD, " [%d] neighbours: %d \n", d->rank, d->n_ne… in DMSwarmDataExView()
145 …(p = 0; p < d->n_neighbour_procs; p++) PetscCall(PetscSynchronizedPrintf(PETSC_COMM_WORLD, " [%… in DMSwarmDataExView()
149 if (d->message_lengths_status == DEOBJECT_FINALIZED) { in DMSwarmDataExView()
151 …chronizedPrintf(PETSC_COMM_WORLD, " [%d] atomic size: %ld \n", d->rank, (long int)d->unit_messa… in DMSwarmDataExView()
152 …d->n_neighbour_procs; p++) PetscCall(PetscSynchronizedPrintf(PETSC_COMM_WORLD, " [%d] >>>>> ( %… in DMSwarmDataExView()
153 for (p = 0; p < d->n_neighbour_procs; p++) { in DMSwarmDataExView()
154 …scInt_FMT " units :: tag = %d) <<<<< [%d] \n", d->rank, d->messages_to_be_recvieved[p], d->recv_ta… in DMSwarmDataExView()
161 PetscErrorCode DMSwarmDataExDestroy(DMSwarmDataEx d) in DMSwarmDataExDestroy() argument
164 PetscCallMPI(MPI_Comm_free(&d->comm)); in DMSwarmDataExDestroy()
165 if (d->neighbour_procs) PetscCall(PetscFree(d->neighbour_procs)); in DMSwarmDataExDestroy()
166 if (d->messages_to_be_sent) PetscCall(PetscFree(d->messages_to_be_sent)); in DMSwarmDataExDestroy()
167 if (d->message_offsets) PetscCall(PetscFree(d->message_offsets)); in DMSwarmDataExDestroy()
168 if (d->messages_to_be_recvieved) PetscCall(PetscFree(d->messages_to_be_recvieved)); in DMSwarmDataExDestroy()
169 if (d->send_message) PetscCall(PetscFree(d->send_message)); in DMSwarmDataExDestroy()
170 if (d->recv_message) PetscCall(PetscFree(d->recv_message)); in DMSwarmDataExDestroy()
171 if (d->pack_cnt) PetscCall(PetscFree(d->pack_cnt)); in DMSwarmDataExDestroy()
172 if (d->send_tags) PetscCall(PetscFree(d->send_tags)); in DMSwarmDataExDestroy()
173 if (d->recv_tags) PetscCall(PetscFree(d->recv_tags)); in DMSwarmDataExDestroy()
174 if (d->_stats) PetscCall(PetscFree(d->_stats)); in DMSwarmDataExDestroy()
175 if (d->_requests) PetscCall(PetscFree(d->_requests)); in DMSwarmDataExDestroy()
176 PetscCall(PetscFree(d)); in DMSwarmDataExDestroy()
182 PetscErrorCode DMSwarmDataExTopologyInitialize(DMSwarmDataEx d) in DMSwarmDataExTopologyInitialize() argument
185 d->topology_status = DEOBJECT_INITIALIZED; in DMSwarmDataExTopologyInitialize()
186 d->n_neighbour_procs = 0; in DMSwarmDataExTopologyInitialize()
187 PetscCall(PetscFree(d->neighbour_procs)); in DMSwarmDataExTopologyInitialize()
188 PetscCall(PetscFree(d->messages_to_be_sent)); in DMSwarmDataExTopologyInitialize()
189 PetscCall(PetscFree(d->message_offsets)); in DMSwarmDataExTopologyInitialize()
190 PetscCall(PetscFree(d->messages_to_be_recvieved)); in DMSwarmDataExTopologyInitialize()
191 PetscCall(PetscFree(d->pack_cnt)); in DMSwarmDataExTopologyInitialize()
192 PetscCall(PetscFree(d->send_tags)); in DMSwarmDataExTopologyInitialize()
193 PetscCall(PetscFree(d->recv_tags)); in DMSwarmDataExTopologyInitialize()
197 PetscErrorCode DMSwarmDataExTopologyAddNeighbour(DMSwarmDataEx d, const PetscMPIInt proc_id) in DMSwarmDataExTopologyAddNeighbour() argument
203 …PetscCheck(d->topology_status != DEOBJECT_FINALIZED, d->comm, PETSC_ERR_ARG_WRONGSTATE, "Topology … in DMSwarmDataExTopologyAddNeighbour()
204 …PetscCheck(d->topology_status == DEOBJECT_INITIALIZED, d->comm, PETSC_ERR_ARG_WRONGSTATE, "Topolog… in DMSwarmDataExTopologyAddNeighbour()
209 PetscCallMPI(MPI_Comm_size(d->comm, &size)); in DMSwarmDataExTopologyAddNeighbour()
211 if (d->n_neighbour_procs == 0) PetscCall(PetscMalloc1(1, &d->neighbour_procs)); in DMSwarmDataExTopologyAddNeighbour()
214 for (n = 0; n < d->n_neighbour_procs; n++) { in DMSwarmDataExTopologyAddNeighbour()
215 if (d->neighbour_procs[n] == proc_id) found = 1; in DMSwarmDataExTopologyAddNeighbour()
218 PetscCall(PetscRealloc(sizeof(PetscMPIInt) * (d->n_neighbour_procs + 1), &d->neighbour_procs)); in DMSwarmDataExTopologyAddNeighbour()
219 d->neighbour_procs[d->n_neighbour_procs] = proc_id; in DMSwarmDataExTopologyAddNeighbour()
220 d->n_neighbour_procs++; in DMSwarmDataExTopologyAddNeighbour()
331 PetscErrorCode DMSwarmDataExTopologyFinalize(DMSwarmDataEx d) in DMSwarmDataExTopologyFinalize() argument
336 …PetscCheck(d->topology_status == DEOBJECT_INITIALIZED, d->comm, PETSC_ERR_ARG_WRONGSTATE, "Topolog… in DMSwarmDataExTopologyFinalize()
340 …PetscCall(DMSwarmDataExCompleteCommunicationMap_Private(d->comm, d->n_neighbour_procs, d->neighbou… in DMSwarmDataExTopologyFinalize()
342 PetscCall(PetscFree(d->neighbour_procs)); in DMSwarmDataExTopologyFinalize()
343 d->n_neighbour_procs = symm_nn; in DMSwarmDataExTopologyFinalize()
344 d->neighbour_procs = symm_procs; in DMSwarmDataExTopologyFinalize()
346 …if (!d->messages_to_be_sent) PetscCall(PetscMalloc1(d->n_neighbour_procs + 1, &d->messages_to_be_s… in DMSwarmDataExTopologyFinalize()
347 if (!d->message_offsets) PetscCall(PetscMalloc1(d->n_neighbour_procs + 1, &d->message_offsets)); in DMSwarmDataExTopologyFinalize()
348 …if (!d->messages_to_be_recvieved) PetscCall(PetscMalloc1(d->n_neighbour_procs + 1, &d->messages_to… in DMSwarmDataExTopologyFinalize()
349 if (!d->pack_cnt) PetscCall(PetscMalloc(sizeof(PetscInt) * d->n_neighbour_procs, &d->pack_cnt)); in DMSwarmDataExTopologyFinalize()
350 if (!d->_stats) PetscCall(PetscMalloc(sizeof(MPI_Status) * 2 * d->n_neighbour_procs, &d->_stats)); in DMSwarmDataExTopologyFinalize()
351 …if (!d->_requests) PetscCall(PetscMalloc(sizeof(MPI_Request) * 2 * d->n_neighbour_procs, &d->_requ… in DMSwarmDataExTopologyFinalize()
352 if (!d->send_tags) PetscCall(PetscMalloc(sizeof(int) * d->n_neighbour_procs, &d->send_tags)); in DMSwarmDataExTopologyFinalize()
353 if (!d->recv_tags) PetscCall(PetscMalloc(sizeof(int) * d->n_neighbour_procs, &d->recv_tags)); in DMSwarmDataExTopologyFinalize()
355 PetscCallMPI(MPI_Comm_size(d->comm, &size)); in DMSwarmDataExTopologyFinalize()
357 …PetscCheck(iflg, d->comm, PETSC_ERR_LIB, "MPI error: MPI_Comm_get_attr() is not returning a MPI_TA… in DMSwarmDataExTopologyFinalize()
358 r0 = d->rank; in DMSwarmDataExTopologyFinalize()
359 for (n = 0; n < d->n_neighbour_procs; ++n) { in DMSwarmDataExTopologyFinalize()
360 PetscMPIInt r1 = d->neighbour_procs[n]; in DMSwarmDataExTopologyFinalize()
362 _get_tags(d->instance, size, r0, r1, *maxtag, &st, &rt); in DMSwarmDataExTopologyFinalize()
363 d->send_tags[n] = st; in DMSwarmDataExTopologyFinalize()
364 d->recv_tags[n] = rt; in DMSwarmDataExTopologyFinalize()
366 d->topology_status = DEOBJECT_FINALIZED; in DMSwarmDataExTopologyFinalize()