Skip to content

Commit e4b07eb

Browse files
Merge pull request #1986 from arcaneframework/dev/gg-remove-direct-usage-of-basicserializemessage-in-alien
Remove usage of `BasicSerializeMessage` in Alien
2 parents eca1f12 + 48f4d15 commit e4b07eb

File tree

6 files changed

+74
-183
lines changed

6 files changed

+74
-183
lines changed

alien/ArcaneInterface/modules/arcane_tools/src/alien/arcane_tools/block/BlockSizes.cc

+13-34
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
22
//-----------------------------------------------------------------------------
3-
// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
3+
// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
44
// See the top-level COPYRIGHT file for details.
55
// SPDX-License-Identifier: Apache-2.0
66
//-----------------------------------------------------------------------------
77
/*---------------------------------------------------------------------------*/
8-
/* BlockSizes (C) 2000-2024 */
8+
/* BlockSizes (C) 2000-2025 */
99
/* */
1010
/* Size info for block matrices */
1111
/*---------------------------------------------------------------------------*/
@@ -18,12 +18,7 @@
1818
#include <alien/utils/Precomp.h>
1919
#include <alien/utils/Trace.h>
2020

21-
#include <arccore/message_passing/BasicSerializeMessage.h>
2221
#include <arccore/message_passing/ISerializeMessageList.h>
23-
24-
#include <arccore/message_passing_mpi/MpiMessagePassingMng.h>
25-
#include <arccore/message_passing_mpi/MpiSerializeMessageList.h>
26-
2722
#include <arccore/message_passing/Messages.h>
2823

2924
#include <map>
@@ -148,16 +143,14 @@ prepare(const IIndexManager& index_mng, ConstArrayView<Integer> block_sizes)
148143
//request.comm = new Arcane::SerializeMessage(m_parallel_mng->commRank(),destDomainId,Arcane::ISerializeMessage::MT_Send);
149144
//messageList->addMessage(request.comm);
150145
//Arcane::SerializeBuffer& sbuf = request.comm->buffer();
151-
request.m_comm = Arccore::MessagePassing::internal::BasicSerializeMessage::create(
152-
MessageRank(m_parallel_mng->commRank()), MessageRank(destDomainId),
153-
Arccore::MessagePassing::ePointToPointMessageType::MsgSend);
154-
messageList->addMessage(request.m_comm.get());
146+
request.m_comm = messageList->createAndAddMessage(MessageRank(destDomainId),
147+
Arccore::MessagePassing::ePointToPointMessageType::MsgSend);
155148
auto sbuf = request.m_comm->serializer();
156149

157150
sbuf->setMode(Alien::ISerializer::ModeReserve);
158-
sbuf->reserve(nameString); // Chaine de caract�re du nom de l'entr�e
151+
sbuf->reserve(nameString); // Chaine de caractère du nom de l'entrée
159152
sbuf->reserveInteger(1); // Nb d'item
160-
sbuf->reserve(Alien::ISerializer::DT_Int32,request.m_count); // Les indices demand�s
153+
sbuf->reserve(Alien::ISerializer::DT_Int32,request.m_count); // Les indices demandés
161154
sbuf->allocateBuffer();
162155
sbuf->setMode(Alien::ISerializer::ModePut);
163156
sbuf->put(nameString);
@@ -183,15 +176,12 @@ prepare(const IIndexManager& index_mng, ConstArrayView<Integer> block_sizes)
183176
for(Integer isd=0, nsd=m_parallel_mng->commSize();isd<nsd;++isd) {
184177
Integer recvCount = recvFromDomains[2*isd+0];
185178
while(recvCount-- > 0) {
186-
//Arcane::SerializeMessage* recvMsg = new Arcane::SerializeMessage(parallel_mng->commRank(),isd,Arcane::ISerializeMessage::MT_Recv);
187-
auto recvMsg = Arccore::MessagePassing::internal::BasicSerializeMessage::create(
188-
MessageRank(m_parallel_mng->commRank()), MessageRank(isd),
189-
Arccore::MessagePassing::ePointToPointMessageType::MsgReceive);
179+
auto recvMsg = messageList->createAndAddMessage(MessageRank(isd),
180+
Arccore::MessagePassing::ePointToPointMessageType::MsgReceive);
190181

191182
recvRequests.push_back(EntryRecvRequest());
192183
EntryRecvRequest& recvRequest = recvRequests.back();
193184
recvRequest.m_comm = recvMsg;
194-
messageList->addMessage(recvMsg.get());
195185
}
196186
}
197187

@@ -223,19 +213,15 @@ prepare(const IIndexManager& index_mng, ConstArrayView<Integer> block_sizes)
223213
}
224214

225215
{
226-
auto dest = recvRequest.m_comm->destination(); // Attention � l'ordre bizarre
227-
auto orig = recvRequest.m_comm->source(); // de SerializeMessage
216+
auto dest = recvRequest.m_comm->destination();
228217
recvRequest.m_comm.reset();
229-
//recvRequest.comm = new Arcane::SerializeMessage(orig,dest,Arcane::ISerializeMessage::MT_Send);
230-
recvRequest.m_comm = Arccore::MessagePassing::internal::BasicSerializeMessage::create(
231-
orig, dest, Arccore::MessagePassing::ePointToPointMessageType::MsgSend);
232-
messageList->addMessage(recvRequest.m_comm.get());
218+
recvRequest.m_comm = messageList->createAndAddMessage(dest, Arccore::MessagePassing::ePointToPointMessageType::MsgSend);
233219

234220
//Arcane::SerializeBuffer & sbuf = recvRequest.comm->buffer();
235221
auto sbuf = recvRequest.m_comm->serializer();
236222

237223
sbuf->setMode(Alien::ISerializer::ModeReserve);
238-
sbuf->reserve(nameString); // Chaine de caract�re du nom de l'entr�e
224+
sbuf->reserve(nameString); // Chaine de caractère du nom de l'entrée
239225
sbuf->reserveInteger(1); // Nb d'item
240226
sbuf->reserveInteger(uidCount); // Les tailles
241227
sbuf->allocateBuffer();
@@ -269,23 +255,16 @@ prepare(const IIndexManager& index_mng, ConstArrayView<Integer> block_sizes)
269255
for(SendRequestByEntry::iterator j = requests.begin(); j != requests.end(); ++j) {
270256
EntrySendRequest & request = j->second;
271257
const String nameString = j->first;
272-
//delete request.comm; request.comm = NULL;
273258
request.m_comm.reset();
274-
//Arcane::SerializeMessage * msg = new Arcane::SerializeMessage(parallel_mng->commRank(),destDomainId,Arcane::ISerializeMessage::MT_Recv);
275-
auto msg = Arccore::MessagePassing::internal::BasicSerializeMessage::create(
276-
MessageRank(m_parallel_mng->commRank()), MessageRank(destDomainId),
277-
Arccore::MessagePassing::ePointToPointMessageType::MsgReceive);
259+
auto msg = messageList->createAndAddMessage(MessageRank(destDomainId),
260+
Arccore::MessagePassing::ePointToPointMessageType::MsgReceive);
278261

279262
returnedRequests.push_back(msg);
280-
messageList->addMessage(msg.get());
281263

282264
fastReturnMap[nameString][destDomainId] = &request;
283265
}
284266
}
285267

286-
//messageList->processPendingMessages();
287-
//messageList->waitMessages(Arcane::Parallel::WaitAll);
288-
//delete messageList; messageList = NULL;
289268
messageList->processPendingMessages();
290269
messageList->waitMessages(Arccore::MessagePassing::WaitAll);
291270
messageList.reset();

alien/ArcaneInterface/modules/arcane_tools/src/alien/arcane_tools/indexManager/BasicIndexManager.cc

+9-18
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
22
//-----------------------------------------------------------------------------
3-
// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
3+
// Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
44
// See the top-level COPYRIGHT file for details.
55
// SPDX-License-Identifier: Apache-2.0
66
//-----------------------------------------------------------------------------
77
/*---------------------------------------------------------------------------*/
8-
/* BasicIndexManager (C) 2000-2024 */
8+
/* BasicIndexManager (C) 2000-2025 */
99
/* */
1010
/* Basic indexing between algebra and mesh worlds. Depends on Arcane */
1111
/*---------------------------------------------------------------------------*/
@@ -703,11 +703,9 @@ namespace ArcaneTools {
703703
sendToDomains[2 * destDomainId + 1] += request.m_count;
704704

705705
// Construction du message du EntrySendRequest
706-
request.m_comm = Arccore::MessagePassing::internal::BasicSerializeMessage::create(
707-
MessageRank(m_parallel_mng->commRank()), MessageRank(destDomainId),
708-
Arccore::MessagePassing::ePointToPointMessageType::MsgSend);
706+
request.m_comm = messageList->createAndAddMessage(MessageRank(destDomainId),
707+
Arccore::MessagePassing::ePointToPointMessageType::MsgSend);
709708

710-
messageList->addMessage(request.m_comm.get());
711709
auto sbuf = request.m_comm->serializer();
712710
sbuf->setMode(ISerializer::ModeReserve); // phase préparatoire
713711
sbuf->reserve(nameString); // Chaine de caractère du nom de l'entrée
@@ -742,15 +740,13 @@ namespace ArcaneTools {
742740
for (Integer isd = 0, nsd = m_parallel_mng->commSize(); isd < nsd; ++isd) {
743741
Integer recvCount = recvFromDomains[2 * isd + 0];
744742
while (recvCount-- > 0) {
745-
auto recvMsg = Arccore::MessagePassing::internal::BasicSerializeMessage::create(
746-
MessageRank(m_parallel_mng->commRank()), MessageRank(isd),
747-
Arccore::MessagePassing::ePointToPointMessageType::MsgReceive);
743+
auto recvMsg = messageList->createAndAddMessage(MessageRank(isd),
744+
Arccore::MessagePassing::ePointToPointMessageType::MsgReceive);
748745

749746

750747
recvRequests.push_back(EntryRecvRequest());
751748
EntryRecvRequest& recvRequest = recvRequests.back();
752749
recvRequest.m_comm = recvMsg;
753-
messageList->addMessage(recvMsg.get());
754750
}
755751
}
756752

@@ -839,10 +835,7 @@ namespace ArcaneTools {
839835
auto dest = recvRequest.m_comm->destination(); // Attention à l'ordre bizarre
840836
auto orig = recvRequest.m_comm->source(); // de SerializeMessage
841837
recvRequest.m_comm.reset();
842-
recvRequest.m_comm = Arccore::MessagePassing::internal::BasicSerializeMessage::create(
843-
orig, dest, Arccore::MessagePassing::ePointToPointMessageType::MsgSend);
844-
845-
messageList->addMessage(recvRequest.m_comm.get());
838+
recvRequest.m_comm = messageList->createAndAddMessage(dest, Arccore::MessagePassing::ePointToPointMessageType::MsgSend);
846839

847840
auto sbuf = recvRequest.m_comm->serializer();
848841
sbuf->setMode(ISerializer::ModeReserve); // phase préparatoire
@@ -932,11 +925,9 @@ namespace ArcaneTools {
932925
// à la bonne place
933926
request.m_comm.reset();
934927

935-
auto msg = Arccore::MessagePassing::internal::BasicSerializeMessage::create(
936-
MessageRank(m_parallel_mng->commRank()), MessageRank(destDomainId),
937-
Arccore::MessagePassing::ePointToPointMessageType::MsgReceive);
928+
auto msg = messageList->createAndAddMessage(MessageRank(destDomainId),
929+
Arccore::MessagePassing::ePointToPointMessageType::MsgReceive);
938930
returnedRequests.push_back(msg);
939-
messageList->addMessage(msg.get());
940931

941932
fastReturnMap[nameString][destDomainId] = &request;
942933
}

alien/standalone/src/core/alien/handlers/block/BlockSizes.cc

+18-38
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
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+
//-----------------------------------------------------------------------------
47

58
#include <alien/utils/Precomp.h>
69
#include <alien/index_manager/IIndexManager.h>
@@ -9,12 +12,7 @@
912
#include <alien/utils/Precomp.h>
1013
#include <alien/utils/Trace.h>
1114

12-
#include <arccore/message_passing/BasicSerializeMessage.h>
1315
#include <arccore/message_passing/ISerializeMessageList.h>
14-
15-
#include <arccore/message_passing_mpi/MpiMessagePassingMng.h>
16-
#include <arccore/message_passing_mpi/MpiSerializeMessageList.h>
17-
1816
#include <arccore/message_passing/Messages.h>
1917

2018
#include <map>
@@ -134,19 +132,14 @@ prepare(const IIndexManager& index_mng, ConstArrayView<Integer> block_sizes)
134132
const String& nameString = j->first;
135133
sendToDomains[2 * destDomainId + 0] += 1;
136134
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);
144137
auto sbuf = request.m_comm->serializer();
145138

146139
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
148141
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
150143
sbuf->allocateBuffer();
151144
sbuf->setMode(Alien::ISerializer::ModePut);
152145
sbuf->put(nameString);
@@ -173,25 +166,20 @@ prepare(const IIndexManager& index_mng, ConstArrayView<Integer> block_sizes)
173166
for (Integer isd = 0, nsd = m_parallel_mng->commSize(); isd < nsd; ++isd) {
174167
Integer recvCount = recvFromDomains[2 * isd + 0];
175168
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);
180171

181172
recvRequests.push_back(EntryRecvRequest());
182173
EntryRecvRequest& recvRequest = recvRequests.back();
183174
recvRequest.m_comm = recvMsg;
184-
messageList->addMessage(recvMsg.get());
185175
}
186176
}
187177

188178
messageList->processPendingMessages();
189179
messageList->waitMessages(Arccore::MessagePassing::WaitAll);
190180
messageList.reset();
191181

192-
//messageList = parallel_mng->createSerializeMessageList();
193-
messageList =
194-
Arccore::MessagePassing::mpCreateSerializeMessageListRef(m_parallel_mng);
182+
messageList = Arccore::MessagePassing::mpCreateSerializeMessageListRef(m_parallel_mng);
195183

196184
for (RecvRequests::iterator i = recvRequests.begin(); i != recvRequests.end(); ++i) {
197185
EntryRecvRequest& recvRequest = *i;
@@ -212,19 +200,16 @@ prepare(const IIndexManager& index_mng, ConstArrayView<Integer> block_sizes)
212200
}
213201

214202
{
215-
auto dest = recvRequest.m_comm->destination(); // Attention l'ordre bizarre
203+
auto dest = recvRequest.m_comm->destination(); // Attention à l'ordre bizarre
216204
auto orig = recvRequest.m_comm->source(); // de SerializeMessage
217205
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);
222207

223208
//Arcane::SerializeBuffer & sbuf = recvRequest.comm->buffer();
224209
auto sbuf = recvRequest.m_comm->serializer();
225210

226211
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
228213
sbuf->reserveInteger(1); // Nb d'item
229214
sbuf->reserveInteger(uidCount); // Les tailles
230215
sbuf->allocateBuffer();
@@ -261,20 +246,15 @@ prepare(const IIndexManager& index_mng, ConstArrayView<Integer> block_sizes)
261246
//delete request.comm; request.comm = NULL;
262247
request.m_comm.reset();
263248
//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);
267251

268252
returnedRequests.push_back(msg);
269-
messageList->addMessage(msg.get());
270253

271254
fastReturnMap[nameString][destDomainId] = &request;
272255
}
273256
}
274257

275-
//messageList->processPendingMessages();
276-
//messageList->waitMessages(Arcane::Parallel::WaitAll);
277-
//delete messageList; messageList = NULL;
278258
messageList->processPendingMessages();
279259
messageList->waitMessages(Arccore::MessagePassing::WaitAll);
280260
messageList.reset();

0 commit comments

Comments
 (0)