Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MpiControlDispatcher.cc
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//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* MpiControlDispatcher.cc (C) 2000-2025 */
9/* */
10/* Manage Control/Utility parallel messages for MPI. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arccore/message_passing_mpi/internal/MpiControlDispatcher.h"
15
16#include "arccore/message_passing_mpi/MpiMessagePassingMng.h"
17#include "arccore/message_passing_mpi/internal/MpiAdapter.h"
18#include "arccore/message_passing_mpi/internal/MpiRequestList.h"
19
20#include "arccore/message_passing/Request.h"
21#include "arccore/message_passing/IMessagePassingMng.h"
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27namespace Arcane::MessagePassing::Mpi
28{
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
31
32MpiControlDispatcher::
33MpiControlDispatcher(MpiAdapter* adapter, IMessagePassingMng* mpm)
34: m_adapter(adapter)
35, m_message_passing_mng(mpm)
36{
37}
38
39/*---------------------------------------------------------------------------*/
40/*---------------------------------------------------------------------------*/
41
42void MpiControlDispatcher::
43waitAllRequests(ArrayView<Request> requests)
44{
45 m_adapter->waitAllRequests(requests);
46}
47
48/*---------------------------------------------------------------------------*/
49/*---------------------------------------------------------------------------*/
50
51void MpiControlDispatcher::
52waitSomeRequests(ArrayView<Request> requests,
53 ArrayView<bool> indexes,
54 bool is_non_blocking)
55{
56 m_adapter->waitSomeRequests(requests, indexes, is_non_blocking);
57}
58
59/*---------------------------------------------------------------------------*/
60/*---------------------------------------------------------------------------*/
61
62IMessagePassingMng* MpiControlDispatcher::
63commSplit(bool keep)
64{
65 return m_adapter->commSplit(keep);
66}
67
68/*---------------------------------------------------------------------------*/
69/*---------------------------------------------------------------------------*/
70
71void MpiControlDispatcher::
72barrier()
73{
74 m_adapter->barrier();
75}
76
77/*---------------------------------------------------------------------------*/
78/*---------------------------------------------------------------------------*/
79
80Request MpiControlDispatcher::
81nonBlockingBarrier()
82{
83 return m_adapter->nonBlockingBarrier();
84}
85
86/*---------------------------------------------------------------------------*/
87/*---------------------------------------------------------------------------*/
88
89MessageId MpiControlDispatcher::
90probe(const PointToPointMessageInfo& message)
91{
92 return m_adapter->probeMessage(message);
93}
94
95/*---------------------------------------------------------------------------*/
96/*---------------------------------------------------------------------------*/
97
98MessageSourceInfo MpiControlDispatcher::
99legacyProbe(const PointToPointMessageInfo& message)
100{
101 return m_adapter->legacyProbeMessage(message);
102}
103
104/*---------------------------------------------------------------------------*/
105/*---------------------------------------------------------------------------*/
106
107IProfiler* MpiControlDispatcher::
108profiler() const
109{
110 return m_adapter->profiler();
111}
112
113/*---------------------------------------------------------------------------*/
114/*---------------------------------------------------------------------------*/
115
116void MpiControlDispatcher::
117setProfiler(IProfiler* p)
118{
119 m_adapter->setProfiler(p);
120}
121
122/*---------------------------------------------------------------------------*/
123/*---------------------------------------------------------------------------*/
124
125Ref<IRequestList> MpiControlDispatcher::
126createRequestListRef()
127{
128 return createRef<MpiRequestList>(m_adapter);
129}
130
131/*---------------------------------------------------------------------------*/
132/*---------------------------------------------------------------------------*/
133
134} // namespace Arccore::MessagePassing::Mpi
135
136/*---------------------------------------------------------------------------*/
137/*---------------------------------------------------------------------------*/
Liste des fonctions d'échange de message.