Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ParallelSuperMngDispatcher.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/* ParallelSuperMngDispatcher.h (C) 2000-2006 */
9/* */
10/* Interface du gestionnaire du parallélisme sur un domaine. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_PARALLELSUPERMNGDISPATCHER_H
13#define ARCANE_PARALLELSUPERMNGDISPATCHER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/IParallelSuperMng.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22ARCANE_BEGIN_NAMESPACE
23
24/*---------------------------------------------------------------------------*/
25/*---------------------------------------------------------------------------*/
26
27template<class T> class IParallelDispatchT;
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
36class ARCANE_CORE_EXPORT ParallelSuperMngDispatcher
37: public IParallelSuperMng
38{
39 public:
40
43
44 protected:
45
48 void _finalize();
49
50 public:
51
52 virtual void allGather(ByteConstArrayView send_buf,ByteArrayView recv_buf);
53 virtual void allGather(Int32ConstArrayView send_buf,Int32ArrayView recv_buf);
54 virtual void allGather(Int64ConstArrayView send_buf,Int64ArrayView recv_buf);
55 virtual void allGather(RealConstArrayView send_buf,RealArrayView recv_buf);
56
57 virtual Int32 reduce(eReduceType rt,Int32 v);
58 virtual Int64 reduce(eReduceType rt,Int64 v);
59 virtual Real reduce(eReduceType rt,Real v);
60
61 virtual void reduce(eReduceType rt,Int32ArrayView v);
62 virtual void reduce(eReduceType rt,Int64ArrayView v);
63 virtual void reduce(eReduceType rt,RealArrayView v);
64
65 virtual void broadcast(ByteArrayView send_buf,Integer id);
66 virtual void broadcast(Int32ArrayView send_buf,Integer id);
67 virtual void broadcast(Int64ArrayView send_buf,Integer id);
68 virtual void broadcast(RealArrayView send_buf,Integer id);
69
70 virtual void send(ByteConstArrayView values,Integer id);
71 virtual void send(Int32ConstArrayView values,Integer id);
72 virtual void send(Int64ConstArrayView values,Integer id);
73 virtual void send(RealConstArrayView values,Integer id);
74
75 virtual void recv(ByteArrayView values,Integer id);
76 virtual void recv(Int32ArrayView values,Integer id);
77 virtual void recv(Int64ArrayView values,Integer id);
78 virtual void recv(RealArrayView values,Integer id);
79
80 virtual Request send(ByteConstArrayView values,Integer id,bool is_blocked);
81 virtual Request send(Int32ConstArrayView values,Integer id,bool is_blocked);
82 virtual Request send(Int64ConstArrayView values,Integer id,bool is_blocked);
83 virtual Request send(RealConstArrayView values,Integer id,bool is_blocked);
84
85 virtual Request recv(ByteArrayView values,Integer id,bool is_blocked);
86 virtual Request recv(Int32ArrayView values,Integer id,bool is_blocked);
87 virtual Request recv(Int64ArrayView values,Integer id,bool is_blocked);
88 virtual Request recv(RealArrayView values,Integer id,bool is_blocked);
89
90 virtual void sendRecv(ByteConstArrayView send_buf,ByteArrayView recv_buf,Integer id);
91 virtual void sendRecv(Int32ConstArrayView send_buf,Int32ArrayView recv_buf,Integer id);
92 virtual void sendRecv(Int64ConstArrayView send_buf,Int64ArrayView recv_buf,Integer id);
93 virtual void sendRecv(RealConstArrayView send_buf,RealArrayView recv_buf,Integer id);
94
95 virtual void allToAll(ByteConstArrayView send_buf,ByteArrayView recv_buf,Integer count);
96 virtual void allToAll(Int32ConstArrayView send_buf,Int32ArrayView recv_buf,Integer count);
97 virtual void allToAll(Int64ConstArrayView send_buf,Int64ArrayView recv_buf,Integer count);
98 virtual void allToAll(RealConstArrayView send_buf,RealArrayView recv_buf,Integer count);
99
100 virtual Int32 scan(eReduceType rt,Int32 v);
101 virtual Int64 scan(eReduceType rt,Int64 v);
102 virtual Real scan(eReduceType rt,Real v);
103
104 virtual void scan(eReduceType rt,Int32ArrayView v);
105 virtual void scan(eReduceType rt,Int64ArrayView v);
106 virtual void scan(eReduceType rt,RealArrayView v);
107
108 private:
109
114};
115
116/*---------------------------------------------------------------------------*/
117/*---------------------------------------------------------------------------*/
118
119ARCANE_END_NAMESPACE
120
121/*---------------------------------------------------------------------------*/
122/*---------------------------------------------------------------------------*/
123
124#endif
Classe abstraite du superviseur de parallélisme.
virtual void broadcast(ByteArrayView send_buf, Integer process_id)=0
Envoie un tableau de valeurs sur tous les processus Cette opération synchronise le tableau de valeur ...
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Redirige la gestion des messages des sous-domaines suivant le type de l'argument.
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
Requête d'un message.
Definition Request.h:77
eReduceType
Types des réductions supportées.