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
22
ARCANE_BEGIN_NAMESPACE
23
24
/*---------------------------------------------------------------------------*/
25
/*---------------------------------------------------------------------------*/
26
27
template
<
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
*/
36
class
ARCANE_CORE_EXPORT
ParallelSuperMngDispatcher
37
:
public
IParallelSuperMng
38
{
39
public
:
40
41
ParallelSuperMngDispatcher
();
42
virtual
~ParallelSuperMngDispatcher
();
43
44
protected
:
45
46
void
_setDispatchers(
IParallelDispatchT<Byte>
* b,
IParallelDispatchT<Int32>
* i32,
47
IParallelDispatchT<Int64>
* i64,
IParallelDispatchT<Real>
* r);
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
110
IParallelDispatchT<Byte>
* m_byte;
111
IParallelDispatchT<Int32>
* m_int32;
112
IParallelDispatchT<Int64>
* m_int64;
113
IParallelDispatchT<Real>
* m_real;
114
};
115
116
/*---------------------------------------------------------------------------*/
117
/*---------------------------------------------------------------------------*/
118
119
ARCANE_END_NAMESPACE
120
121
/*---------------------------------------------------------------------------*/
122
/*---------------------------------------------------------------------------*/
123
124
#endif
Arcane::IParallelDispatchT
Definition
IParallelDispatch.h:34
Arcane::IParallelSuperMng
Definition
IParallelSuperMng.h:41
Arcane::IParallelSuperMng::broadcast
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 ...
Arcane::ParallelSuperMngDispatcher
Definition
ParallelSuperMngDispatcher.h:38
Arccore::ArrayView
Vue modifiable d'un tableau d'un type T.
Definition
arccore/src/base/arccore/base/ArrayView.h:94
Arccore::ConstArrayView
Vue constante d'un tableau de type T.
Definition
arccore/src/base/arccore/base/ArrayView.h:533
Arccore::MessagePassing::Request
Requête d'un message.
Definition
Request.h:77
Arccore::MessagePassing::eReduceType
eReduceType
Types des réductions supportées.
Definition
MessagePassingGlobal.h:88
arcane
core
ParallelSuperMngDispatcher.h
Généré le Lundi 18 Novembre 2024 02:56:50 pour Arcane par
1.9.8