Arcane  v3.14.10.0
Documentation utilisateur
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/*---------------------------------------------------------------------------*/
31/*!
32 * \internal
33 * \brief Redirige la gestion des messages des sous-domaines
34 * suivant le type de l'argument.
35 */
36class ARCANE_CORE_EXPORT ParallelSuperMngDispatcher
37: public IParallelSuperMng
38{
39 public:
40
43
44 protected:
45
46 void _setDispatchers(IParallelDispatchT<Byte>* b,IParallelDispatchT<Int32>* i32,
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
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 ...
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.