Arcane  v3.16.0.0
Documentation développeur
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
23ARCANE_BEGIN_NAMESPACE
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
31template<class Type>
33{
34 public:
35 typedef Parallel::Request Request;
36 typedef Parallel::eReduceType eReduceType;
37 public:
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
57ARCANE_END_NAMESPACE
58
59/*---------------------------------------------------------------------------*/
60/*---------------------------------------------------------------------------*/
61
62#endif
63
Vue modifiable d'un tableau d'un type T.
Tableau d'items de types quelconques.
Vue constante d'un tableau de type T.
Interface des collectives non blocantes pour le type Type.
Requête d'un message.
Definition Request.h:77
eReduceType
Types des réductions supportées.
Int32 Integer
Type représentant un entier.
ConstArrayView< Int32 > Int32ConstArrayView
Equivalent C d'un tableau à une dimension d'entiers 32 bits.
Definition UtilsTypes.h:569