1
- /* Author : desrozis at Thu Mar 14 12:29:22 2013
2
- * Generated by createNew
3
- */
1
+ // -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2
+ // -----------------------------------------------------------------------------
3
+ // Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4
+ // See the top-level COPYRIGHT file for details.
5
+ // SPDX-License-Identifier: Apache-2.0
6
+ // -----------------------------------------------------------------------------
4
7
5
8
#include < alien/utils/Precomp.h>
6
9
#include < alien/index_manager/IIndexManager.h>
9
12
#include < alien/utils/Precomp.h>
10
13
#include < alien/utils/Trace.h>
11
14
12
- #include < arccore/message_passing/BasicSerializeMessage.h>
13
15
#include < arccore/message_passing/ISerializeMessageList.h>
14
-
15
- #include < arccore/message_passing_mpi/MpiMessagePassingMng.h>
16
- #include < arccore/message_passing_mpi/MpiSerializeMessageList.h>
17
-
18
16
#include < arccore/message_passing/Messages.h>
19
17
20
18
#include < map>
@@ -134,19 +132,14 @@ prepare(const IIndexManager& index_mng, ConstArrayView<Integer> block_sizes)
134
132
const String& nameString = j->first ;
135
133
sendToDomains[2 * destDomainId + 0 ] += 1 ;
136
134
sendToDomains[2 * destDomainId + 1 ] += request.m_count ;
137
- // request.comm = new Arcane::SerializeMessage(m_parallel_mng->commRank(),destDomainId,Arcane::ISerializeMessage::MT_Send);
138
- // messageList->addMessage(request.comm);
139
- // Arcane::SerializeBuffer& sbuf = request.comm->buffer();
140
- request.m_comm = Arccore::MessagePassing::internal::BasicSerializeMessage::create (
141
- MessageRank (m_parallel_mng->commRank ()), MessageRank (destDomainId),
142
- Arccore::MessagePassing::ePointToPointMessageType::MsgSend);
143
- messageList->addMessage (request.m_comm .get ());
135
+ request.m_comm = messageList->createAndAddMessage (MessageRank (destDomainId),
136
+ Arccore::MessagePassing::ePointToPointMessageType::MsgSend);
144
137
auto sbuf = request.m_comm ->serializer ();
145
138
146
139
sbuf->setMode (Alien::ISerializer::ModeReserve);
147
- sbuf->reserve (nameString); // Chaine de caract�re du nom de l'entr�e
140
+ sbuf->reserve (nameString); // Chaine de caractère du nom de l'entrée
148
141
sbuf->reserveInteger (1 ); // Nb d'item
149
- sbuf->reserve (Alien::ISerializer::DT_Int32, request.m_count ); // Les indices demand�s
142
+ sbuf->reserve (Alien::ISerializer::DT_Int32, request.m_count ); // Les indices demandés
150
143
sbuf->allocateBuffer ();
151
144
sbuf->setMode (Alien::ISerializer::ModePut);
152
145
sbuf->put (nameString);
@@ -173,25 +166,20 @@ prepare(const IIndexManager& index_mng, ConstArrayView<Integer> block_sizes)
173
166
for (Integer isd = 0 , nsd = m_parallel_mng->commSize (); isd < nsd; ++isd) {
174
167
Integer recvCount = recvFromDomains[2 * isd + 0 ];
175
168
while (recvCount-- > 0 ) {
176
- // Arcane::SerializeMessage* recvMsg = new Arcane::SerializeMessage(parallel_mng->commRank(),isd,Arcane::ISerializeMessage::MT_Recv);
177
- auto recvMsg = Arccore::MessagePassing::internal::BasicSerializeMessage::create (
178
- MessageRank (m_parallel_mng->commRank ()), MessageRank (isd),
179
- Arccore::MessagePassing::ePointToPointMessageType::MsgReceive);
169
+ auto recvMsg = messageList->createAndAddMessage (MessageRank (isd),
170
+ Arccore::MessagePassing::ePointToPointMessageType::MsgReceive);
180
171
181
172
recvRequests.push_back (EntryRecvRequest ());
182
173
EntryRecvRequest& recvRequest = recvRequests.back ();
183
174
recvRequest.m_comm = recvMsg;
184
- messageList->addMessage (recvMsg.get ());
185
175
}
186
176
}
187
177
188
178
messageList->processPendingMessages ();
189
179
messageList->waitMessages (Arccore::MessagePassing::WaitAll);
190
180
messageList.reset ();
191
181
192
- // messageList = parallel_mng->createSerializeMessageList();
193
- messageList =
194
- Arccore::MessagePassing::mpCreateSerializeMessageListRef (m_parallel_mng);
182
+ messageList = Arccore::MessagePassing::mpCreateSerializeMessageListRef (m_parallel_mng);
195
183
196
184
for (RecvRequests::iterator i = recvRequests.begin (); i != recvRequests.end (); ++i) {
197
185
EntryRecvRequest& recvRequest = *i;
@@ -212,19 +200,16 @@ prepare(const IIndexManager& index_mng, ConstArrayView<Integer> block_sizes)
212
200
}
213
201
214
202
{
215
- auto dest = recvRequest.m_comm ->destination (); // Attention � l'ordre bizarre
203
+ auto dest = recvRequest.m_comm ->destination (); // Attention à l'ordre bizarre
216
204
auto orig = recvRequest.m_comm ->source (); // de SerializeMessage
217
205
recvRequest.m_comm .reset ();
218
- // recvRequest.comm = new Arcane::SerializeMessage(orig,dest,Arcane::ISerializeMessage::MT_Send);
219
- recvRequest.m_comm = Arccore::MessagePassing::internal::BasicSerializeMessage::create (
220
- orig, dest, Arccore::MessagePassing::ePointToPointMessageType::MsgSend);
221
- messageList->addMessage (recvRequest.m_comm .get ());
206
+ recvRequest.m_comm = messageList->createAndAddMessage (dest, Arccore::MessagePassing::ePointToPointMessageType::MsgSend);
222
207
223
208
// Arcane::SerializeBuffer & sbuf = recvRequest.comm->buffer();
224
209
auto sbuf = recvRequest.m_comm ->serializer ();
225
210
226
211
sbuf->setMode (Alien::ISerializer::ModeReserve);
227
- sbuf->reserve (nameString); // Chaine de caract�re du nom de l'entr�e
212
+ sbuf->reserve (nameString); // Chaine de caractère du nom de l'entrée
228
213
sbuf->reserveInteger (1 ); // Nb d'item
229
214
sbuf->reserveInteger (uidCount); // Les tailles
230
215
sbuf->allocateBuffer ();
@@ -261,20 +246,15 @@ prepare(const IIndexManager& index_mng, ConstArrayView<Integer> block_sizes)
261
246
// delete request.comm; request.comm = NULL;
262
247
request.m_comm .reset ();
263
248
// Arcane::SerializeMessage * msg = new Arcane::SerializeMessage(parallel_mng->commRank(),destDomainId,Arcane::ISerializeMessage::MT_Recv);
264
- auto msg = Arccore::MessagePassing::internal::BasicSerializeMessage::create (
265
- MessageRank (m_parallel_mng->commRank ()), MessageRank (destDomainId),
266
- Arccore::MessagePassing::ePointToPointMessageType::MsgReceive);
249
+ auto msg = messageList->createAndAddMessage (MessageRank (destDomainId),
250
+ Arccore::MessagePassing::ePointToPointMessageType::MsgReceive);
267
251
268
252
returnedRequests.push_back (msg);
269
- messageList->addMessage (msg.get ());
270
253
271
254
fastReturnMap[nameString][destDomainId] = &request;
272
255
}
273
256
}
274
257
275
- // messageList->processPendingMessages();
276
- // messageList->waitMessages(Arcane::Parallel::WaitAll);
277
- // delete messageList; messageList = NULL;
278
258
messageList->processPendingMessages ();
279
259
messageList->waitMessages (Arccore::MessagePassing::WaitAll);
280
260
messageList.reset ();
0 commit comments