Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ParallelExchangerOptions.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/* ParallelExchangerOptions.h (C) 2000-2022 */
9/* */
10/* Options pour modifier le comportement de 'IParallelExchanger'. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_PARALLELEXCHANGEROPTIONS_H
13#define ARCANE_PARALLELEXCHANGEROPTIONS_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/ArcaneTypes.h"
18#include "arcane/Parallel.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28/*!
29 * \brief Options pour IParallelMng::processExchange().
30 */
31class ARCANE_CORE_EXPORT ParallelExchangerOptions
32{
33 public:
34 /*!
35 * \brief Mode d'échange.
36 */
38 {
39 //! Utilise les échanges point à point (send/recv)
41 //! Utilise les opération collectives (allToAll)
43 //! Choisi automatiquement entre point à point ou collective.
44 EM_Auto
45 };
46
47 public:
48
49 //! Positionne le mode d'échange.
50 void setExchangeMode(eExchangeMode mode) { m_exchange_mode = mode; }
51 //! Mode d'échange spécifié
52 eExchangeMode exchangeMode() const { return m_exchange_mode; };
53
54 //! Positionne le nombre maximal de messages en vol.
55 void setMaxPendingMessage(Int32 v) { m_max_pending_message = v; }
56 //! Nombre maximal de messages en vol
57 Int32 maxPendingMessage() const { return m_max_pending_message; };
58
59 //! Positionne le niveau de verbosité
60 void setVerbosityLevel(Int32 v) { m_verbosity_level = v; }
61 //! Niveau de verbosité
62 Int32 verbosityLevel() const { return m_verbosity_level; };
63
64 private:
65
66 //! Mode d'échange.
67 eExchangeMode m_exchange_mode = EM_Independant;
68
69 //! Nombre maximal de messages en vol
70 Int32 m_max_pending_message = 0;
71
72 //! Niveau de verbosité
73 Int32 m_verbosity_level = 0;
74};
75
76/*---------------------------------------------------------------------------*/
77/*---------------------------------------------------------------------------*/
78
79} // End namespace Arcane
80
81/*---------------------------------------------------------------------------*/
82/*---------------------------------------------------------------------------*/
83
84#endif
Options pour IParallelMng::processExchange().
Int32 verbosityLevel() const
Niveau de verbosité
Int32 maxPendingMessage() const
Nombre maximal de messages en vol.
void setMaxPendingMessage(Int32 v)
Positionne le nombre maximal de messages en vol.
void setExchangeMode(eExchangeMode mode)
Positionne le mode d'échange.
@ EM_Collective
Utilise les opération collectives (allToAll)
@ EM_Independant
Utilise les échanges point à point (send/recv)
void setVerbosityLevel(Int32 v)
Positionne le niveau de verbosité
eExchangeMode exchangeMode() const
Mode d'échange spécifié
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-