Arcane  v3.16.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
MpiControlDispatcher.h
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.h (C) 2000-2025 */
9/* */
10/* Manage Control/Utility parallel messages for MPI. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_MESSAGEPASSINGMPI_INTERNAL_MPICONTROLDISPATCHER_H
13#define ARCCORE_MESSAGEPASSINGMPI_INTERNAL_MPICONTROLDISPATCHER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arccore/message_passing_mpi/MessagePassingMpiGlobal.h"
18#include "arccore/message_passing/IControlDispatcher.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane::MessagePassing::Mpi
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29class ARCCORE_MESSAGEPASSINGMPI_EXPORT MpiControlDispatcher
30: public IControlDispatcher
31{
32 public:
33
34 MpiControlDispatcher(MpiAdapter* adapter, IMessagePassingMng* message_passing_mng);
35
36 public:
37
38 void waitAllRequests(ArrayView<Request> requests) override;
39 void waitSomeRequests(ArrayView<Request> requests, ArrayView<bool> indexes,
40 bool is_non_blocking) override;
41 IMessagePassingMng* commSplit(bool keep) override;
42 void barrier() override;
43 Request nonBlockingBarrier() override;
44 MessageId probe(const PointToPointMessageInfo& message) override;
45 MessageSourceInfo legacyProbe(const PointToPointMessageInfo& message) override;
47 IProfiler* profiler() const override;
48 void setProfiler(IProfiler* p) override;
49
50 public:
51
52 MpiAdapter* adapter() const { return m_adapter; }
53
54 private:
55
56 MpiAdapter* m_adapter = nullptr;
57 IMessagePassingMng* m_message_passing_mng;
58};
59
60/*---------------------------------------------------------------------------*/
61/*---------------------------------------------------------------------------*/
62
63} // namespace Arccore::MessagePassing::Mpi
64
65/*---------------------------------------------------------------------------*/
66/*---------------------------------------------------------------------------*/
67
68#endif
Vue modifiable d'un tableau d'un type T.
Manage control streams for parallel messages.
Interface du gestionnaire des échanges de messages.
Interface d'un profiler pour les échanges de messages.
Definition IProfiler.h:31
Informations sur la source d'un message.
Ref< IRequestList > createRequestListRef() override
Création d'une liste de requêtes associé à ce gestionnaire.
Informations pour envoyer/recevoir un message point à point.
Requête d'un message.
Definition Request.h:77
Référence à une instance.