Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
MpiParallelNonBlockingCollectiveDispatch.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/* MpiParallelNonBlockingCollectiveDispatch.h (C) 2000-2018 */
9/* */
10/* Implémentation MPI des collectives non bloquantes pour un type donné. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_PARALLEL_MPI_MPIPARALLELNONBLOCKINGCOLLECTIVEDISPATCH_H
13#define ARCANE_PARALLEL_MPI_MPIPARALLELNONBLOCKINGCOLLECTIVEDISPATCH_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/TraceAccessor.h"
18
19#include "arcane/IParallelNonBlockingCollectiveDispatch.h"
20
21#include "arcane/parallel/mpi/ArcaneMpi.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26ARCANE_BEGIN_NAMESPACE
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
31class MpiParallelMng;
32class IParallelNonBlockingCollective;
33
34/*---------------------------------------------------------------------------*/
35/*---------------------------------------------------------------------------*/
39template<class Type>
41: public TraceAccessor
43{
44 public:
45
48
49 public:
50
52 virtual ARCANE_MPI_EXPORT ~MpiParallelNonBlockingCollectiveDispatchT();
53 virtual ARCANE_MPI_EXPORT void finalize();
54
55 public:
56
57 virtual ARCANE_MPI_EXPORT Request broadcast(ArrayView<Type> send_buf,Integer sub_domain);
58 virtual ARCANE_MPI_EXPORT Request allGather(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf);
59 virtual ARCANE_MPI_EXPORT Request allGatherVariable(ConstArrayView<Type> send_buf, Array<Type>& recv_buf);
60 virtual ARCANE_MPI_EXPORT Request gather(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf, Integer rank);
61 virtual ARCANE_MPI_EXPORT Request gatherVariable(ConstArrayView<Type> send_buf, Array<Type>& recv_buf, Integer rank);
62 virtual ARCANE_MPI_EXPORT Request scatterVariable(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf, Integer root);
63 virtual ARCANE_MPI_EXPORT Request allToAll(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf, Integer count);
64 virtual ARCANE_MPI_EXPORT Request allToAllVariable(ConstArrayView<Type> send_buf, Int32ConstArrayView send_count,
65 Int32ConstArrayView send_index,ArrayView<Type> recv_buf,
66 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index);
67 virtual ARCANE_MPI_EXPORT Request allReduce(eReduceType op, ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf);
68
69
70 private:
71
72 IParallelMng* m_parallel_mng;
73 MpiAdapter* m_adapter;
74 MpiDatatype* m_datatype;
75
76 private:
77};
78
79/*---------------------------------------------------------------------------*/
80/*---------------------------------------------------------------------------*/
81
82ARCANE_END_NAMESPACE
83
84/*---------------------------------------------------------------------------*/
85/*---------------------------------------------------------------------------*/
86
87#endif
88
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface des collectives non blocantes pour le type Type.
Interface des opérations parallèles collectives non bloquantes.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Implémentation MPI des collectives non bloquantes pour le type Type.
Vue constante d'un tableau de type T.
Interface du gestionnaire de traces.
Requête d'un message.
Definition Request.h:77
eReduceType
Types des réductions supportées.