Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
MpiControlDispatcher.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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-2022 */
9/* */
10/* Manage Control/Utility parallel messages for MPI. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_MESSAGEPASSINGMPI_MPICONTROLDISPATCHER_H
13#define ARCCORE_MESSAGEPASSINGMPI_MPICONTROLDISPATCHER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arccore/message_passing_mpi/MessagePassingMpiGlobal.h"
18#include "arccore/message_passing/IControlDispatcher.h"
19#include "arccore/base/NotImplementedException.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arccore::MessagePassing::Mpi
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30class ARCCORE_MESSAGEPASSINGMPI_EXPORT MpiControlDispatcher
31: public IControlDispatcher
32{
33 public:
34
36
37 public:
38
39 void waitAllRequests(ArrayView<Request> requests) override;
40 void waitSomeRequests(ArrayView<Request> requests, ArrayView<bool> indexes,
41 bool is_non_blocking) override;
42 IMessagePassingMng* commSplit(bool keep) override;
43 void barrier() override;
44 Request nonBlockingBarrier() override;
45 MessageId probe(const PointToPointMessageInfo& message) override;
46 MessageSourceInfo legacyProbe(const PointToPointMessageInfo& message) override;
47 Ref<IRequestList> createRequestListRef() override
48 {
49 ARCCORE_THROW(NotImplementedException,"");
50 }
51 IProfiler* profiler() const override;
52 void setProfiler(IProfiler* p) override;
53
54 public:
55
56 MpiAdapter* adapter() const { return m_adapter; }
57
58 private:
59
60 MpiAdapter* m_adapter;
61};
62
63/*---------------------------------------------------------------------------*/
64/*---------------------------------------------------------------------------*/
65
66} // namespace Arccore::MessagePassing::Mpi
67
68/*---------------------------------------------------------------------------*/
69/*---------------------------------------------------------------------------*/
70
71#endif
Vue modifiable d'un tableau d'un type T.
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