Arcane
v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IParallelNonBlockingCollectiveDispatch.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
/* IParallelNonBlockingCollectiveDispatch.h (C) 2000-2015 */
9
/* */
10
/* Interface des collectives non blocantes pour un type donné. */
11
/*---------------------------------------------------------------------------*/
12
#ifndef ARCANE_IPARALLELNONBLOCKINGCOLLECTIVEDISPATCH_H
13
#define ARCANE_IPARALLELNONBLOCKINGCOLLECTIVEDISPATCH_H
14
/*---------------------------------------------------------------------------*/
15
/*---------------------------------------------------------------------------*/
16
17
#include "arcane/ArcaneTypes.h"
18
#include "arcane/Parallel.h"
19
20
/*---------------------------------------------------------------------------*/
21
/*---------------------------------------------------------------------------*/
22
23
ARCANE_BEGIN_NAMESPACE
24
25
/*---------------------------------------------------------------------------*/
26
/*---------------------------------------------------------------------------*/
27
/*!
28
* \internal
29
* \brief Interface des collectives non blocantes pour le type \a Type.
30
*/
31
template
<
class
Type>
32
class
IParallelNonBlockingCollectiveDispatchT
33
{
34
public
:
35
typedef
Parallel::Request
Request
;
36
typedef
Parallel::eReduceType
eReduceType
;
37
public
:
38
virtual
~IParallelNonBlockingCollectiveDispatchT
() {}
39
virtual
void
finalize() =0;
40
public
:
41
virtual
Request
broadcast(
ArrayView<Type>
send_buf,Integer sub_domain) =0;
42
virtual
Request
allGather(
ConstArrayView<Type>
send_buf,
ArrayView<Type>
recv_buf) =0;
43
virtual
Request
allGatherVariable(
ConstArrayView<Type>
send_buf,
Array<Type>
& recv_buf) =0;
44
virtual
Request
gather(
ConstArrayView<Type>
send_buf,
ArrayView<Type>
recv_buf,Integer rank) =0;
45
virtual
Request
gatherVariable(
ConstArrayView<Type>
send_buf,
Array<Type>
& recv_buf,Integer rank) =0;
46
virtual
Request
scatterVariable(
ConstArrayView<Type>
send_buf,
ArrayView<Type>
recv_buf,Integer root) =0;
47
virtual
Request
allToAll(
ConstArrayView<Type>
send_buf,
ArrayView<Type>
recv_buf,Integer count) =0;
48
virtual
Request
allToAllVariable(
ConstArrayView<Type>
send_buf,
Int32ConstArrayView
send_count,
49
Int32ConstArrayView
send_index,
ArrayView<Type>
recv_buf,
50
Int32ConstArrayView
recv_count,
Int32ConstArrayView
recv_index) =0;
51
virtual
Request
allReduce(
eReduceType
op,
ConstArrayView<Type>
send_buf,
ArrayView<Type>
recv_buf) =0;
52
};
53
54
/*---------------------------------------------------------------------------*/
55
/*---------------------------------------------------------------------------*/
56
57
ARCANE_END_NAMESPACE
58
59
/*---------------------------------------------------------------------------*/
60
/*---------------------------------------------------------------------------*/
61
62
#endif
63
Arcane::IParallelNonBlockingCollectiveDispatchT
Definition
IParallelNonBlockingCollectiveDispatch.h:33
Arccore::ArrayView
Vue modifiable d'un tableau d'un type T.
Definition
arccore/src/base/arccore/base/ArrayView.h:94
Arccore::Array
Classe de base des vecteurs 1D de données.
Definition
arccore/src/collections/arccore/collections/Array.h:988
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
IParallelNonBlockingCollectiveDispatch.h
Généré le Lundi 18 Novembre 2024 02:56:48 pour Arcane par
1.9.8