Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ParallelMngUtils.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* ParallelMngUtils.h (C) 2000-2024 */
9/* */
10/* Fonctions utilitaires associées aux 'IParallelMng'. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_PARALLELMNGUTILS_H
13#define ARCANE_CORE_PARALLELMNGUTILS_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24/*!
25 * \brief Fonctions utilitaires associées à IParallelMng.
26 */
28{
29/*!
30 * \brief Retourne une opération pour récupérer les valeurs d'une variable
31 * sur les entités d'un autre sous-domaine.
32 */
33extern "C++" ARCANE_CORE_EXPORT Ref<IGetVariablesValuesParallelOperation>
35
36//! Retourne une opération pour transférer des valeurs entre rangs.
37extern "C++" ARCANE_CORE_EXPORT Ref<ITransferValuesParallelOperation>
38createTransferValuesOperationRef(IParallelMng* pm);
39
40//! Retourne une interface pour transférer des messages entre rangs
41extern "C++" ARCANE_CORE_EXPORT Ref<IParallelExchanger>
42createExchangerRef(IParallelMng* pm);
43
44/*!
45 * \brief Retourne une interface pour synchroniser des
46 * variables sur le groupe de la famille \a family
47 */
48extern "C++" ARCANE_CORE_EXPORT Ref<IVariableSynchronizer>
49createSynchronizerRef(IParallelMng* pm, IItemFamily* family);
50
51/*!
52 * \brief Retourne une interface pour synchroniser des
53 * variables sur le groupe \a group.
54 */
55extern "C++" ARCANE_CORE_EXPORT Ref<IVariableSynchronizer>
56createSynchronizerRef(IParallelMng* pm, const ItemGroup& group);
57
58/*!
59 * \brief Créé une instance contenant les infos sur la topologie des rangs de ce gestionnnaire.
60 *
61 * Cette opération est collective.
62 */
63extern "C++" ARCANE_CORE_EXPORT Ref<IParallelTopology>
64createTopologyRef(IParallelMng* pm);
65
66/*!
67 * \brief Créé un nouveau gestionnaire de parallélisme pour un sous-ensemble
68 * des rangs.
69 *
70 * Cette opération est collective et est équivalent à MPI_Comm_split.
71 *
72 * Les rangs dont \a color vaut la même valeur seront dans le même communicateur.
73 * \a key permet d'ordonner les rangs dans le sous-communicateur créé. S'il vaut
74 * pm->commRank() alors les rangs dans le sous-communicateur auront le même ordre
75 * que dans \a pm.
76 *
77 * * Si \a color est négatif, alors le rang actuel ne sera associé à aucun
78 * communicateur et la valeur retournée sera nulle.
79 */
80extern "C++" ARCANE_CORE_EXPORT Ref<IParallelMng>
81createSubParallelMngRef(IParallelMng* pm, Int32 color, Int32 key);
82
83/*---------------------------------------------------------------------------*/
84/*---------------------------------------------------------------------------*/
85
86} // End namespace Arcane::ParallelMngUtils
87
88/*---------------------------------------------------------------------------*/
89/*---------------------------------------------------------------------------*/
90
91#endif
Déclarations des types généraux de Arcane.
Fichier contenant les déclarations concernant le modèle de programmation par échange de message.
Déclarations des types utilisés dans Arcane.
Fonctions utilitaires associées à IParallelMng.
Ref< IParallelMng > createSubParallelMngRef(IParallelMng *pm, Int32 color, Int32 key)
Créé un nouveau gestionnaire de parallélisme pour un sous-ensemble des rangs.
Ref< IParallelExchanger > createExchangerRef(IParallelMng *pm)
Retourne une interface pour transférer des messages entre rangs.
Ref< IGetVariablesValuesParallelOperation > createGetVariablesValuesOperationRef(IParallelMng *pm)
Retourne une opération pour récupérer les valeurs d'une variable sur les entités d'un autre sous-doma...
Ref< ITransferValuesParallelOperation > createTransferValuesOperationRef(IParallelMng *pm)
Retourne une opération pour transférer des valeurs entre rangs.
Ref< IParallelTopology > createTopologyRef(IParallelMng *pm)
Créé une instance contenant les infos sur la topologie des rangs de ce gestionnnaire.
Ref< IVariableSynchronizer > createSynchronizerRef(IParallelMng *pm, IItemFamily *family)
Retourne une interface pour synchroniser des variables sur le groupe de la famille family.