Arcane  v3.16.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
Parallel.h
Aller à la documentation de ce fichier.
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/* Parallel.h (C) 2000-2025 */
9/* */
10/* Espace de nom des types gérant le parallélisme. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_PARALLEL_H
13#define ARCANE_CORE_PARALLEL_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18#include "arcane/utils/ArrayView.h"
19
21#include "arccore/message_passing/Request.h"
22#include "arccore/message_passing/Communicator.h"
23#include "arccore/message_passing/PointToPointMessageInfo.h"
24#include "arccore/message_passing/IControlDispatcher.h"
25
27
28#define ARCANE_BEGIN_NAMESPACE_PARALLEL \
29 namespace Parallel \
30 {
31#define ARCANE_END_NAMESPACE_PARALLEL }
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35/*!
36 * \brief Types des classes du parallélisme.
37 */
38namespace Arcane::Parallel
39{
40class IStat;
41}
42
43/*---------------------------------------------------------------------------*/
44/*---------------------------------------------------------------------------*/
45/*!
46 * \brief Déclarations des types et méthodes utilisés par les mécanismes
47 * d'échange de messages.
48 */
50{
51/*!
52 * \brief Effectue une barrière nommée de nom \a name
53 *
54 * Effectue une barrière de nom \a name en utilisant le gestionnaire
55 * \a pm.
56 *
57 * Tous les rangs de \a pm bloquent dans cette barrière et vérifient
58 * que tous les rangs utilisent le même nom de barrière. Si un des rangs
59 * utilise un nom différent une exception est levée.
60 *
61 * Cette opération permet de vérifier que tous les rangs utilisent
62 * la même barrière contrairement à l'opération IParallelMng::barrier().
63 *
64 * \note Seuls les 1024 premiers caractères de \a name sont utilisés.
65 */
66extern "C++" ARCANE_CORE_EXPORT void
67namedBarrier(IParallelMng* pm, const String& name);
68
69/*---------------------------------------------------------------------------*/
70/*---------------------------------------------------------------------------*/
71/*!
72 * \brief Filtre les chaînes de caractères communes à tous les rangs de \a pm.
73 *
74 * Prend en entrée une liste \a input_string de chaînes de caractères et retourne
75 * dans \a common_strings celles qui sont communes à tous les rangs de \a pm.
76 * Les chaînes de caractères retournées dans \a common_strings sont triées
77 * par ordre alphabétique.
78 */
79extern "C++" ARCANE_CORE_EXPORT void
81 Array<String>& common_strings);
82
83/*---------------------------------------------------------------------------*/
84/*---------------------------------------------------------------------------*/
85/*!
86 * \brief Écrit dans \a tm la date et la mémoire consommée.
87 *
88 * L'opération est collective sur \a pm et affiche la mémoire minimimale,
89 * moyenne et maximale consommée ainsi que les rangs de ceux qui consomment
90 * le moins et le plus de mémoire.
91 */
92extern "C++" ARCANE_CORE_EXPORT void
94
95/*---------------------------------------------------------------------------*/
96/*---------------------------------------------------------------------------*/
97
98} // namespace Arcane::MessagePassing
99
100/*---------------------------------------------------------------------------*/
101/*---------------------------------------------------------------------------*/
102
103namespace Arcane
104{
105
106/*---------------------------------------------------------------------------*/
107/*---------------------------------------------------------------------------*/
108
109inline std::ostream&
110operator<<(std::ostream& o, const Parallel::Request prequest)
111{
112 prequest.print(o);
113 return o;
114}
115
116/*---------------------------------------------------------------------------*/
117/*---------------------------------------------------------------------------*/
118
119} // End namespace Arcane
120
121/*---------------------------------------------------------------------------*/
122/*---------------------------------------------------------------------------*/
123
124#endif
125
Fichier de configuration d'Arcane.
Déclarations des types généraux de Arcane.
Classe de base des vecteurs 1D de données.
Vue constante d'un tableau de type T.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface du gestionnaire de traces.
Requête d'un message.
Definition Request.h:77
Statistiques sur le parallélisme.
Chaîne de caractères unicode.
Déclarations des types et méthodes utilisés par les mécanismes d'échange de messages.
Definition Parallel.h:50
void namedBarrier(IParallelMng *pm, const String &name)
Effectue une barrière nommée de nom name.
Definition Parallel.cc:60
void dumpDateAndMemoryUsage(IParallelMng *pm, ITraceMng *tm)
Écrit dans tm la date et la mémoire consommée.
Definition Parallel.cc:163
void filterCommonStrings(IParallelMng *pm, ConstArrayView< String > input_strings, Array< String > &common_strings)
Filtre les chaînes de caractères communes à tous les rangs de pm.
Definition Parallel.cc:94
Implémentation de la concurrence.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::ostream & operator<<(std::ostream &ostr, eItemKind item_kind)
Opérateur de sortie sur un flot.