Arcane  v3.16.4.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-2025 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-2025 */
9/* */
10/* Interface des collectives non blocantes pour un type donné. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IPARALLELNONBLOCKINGCOLLECTIVEDISPATCH_H
13#define ARCANE_CORE_IPARALLELNONBLOCKINGCOLLECTIVEDISPATCH_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28/*!
29 * \internal
30 * \brief Interface des collectives non bloquantes pour le type \a Type.
31 */
32template <class Type>
34{
35 public:
36
37 typedef Parallel::Request Request;
38 typedef Parallel::eReduceType eReduceType;
39
40 public:
41
43 virtual void finalize() = 0;
44
45 public:
46
47 virtual Request broadcast(ArrayView<Type> send_buf, Integer sub_domain) = 0;
48 virtual Request allGather(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf) = 0;
49 virtual Request allGatherVariable(ConstArrayView<Type> send_buf, Array<Type>& recv_buf) = 0;
50 virtual Request gather(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf, Integer rank) = 0;
51 virtual Request gatherVariable(ConstArrayView<Type> send_buf, Array<Type>& recv_buf, Integer rank) = 0;
52 virtual Request scatterVariable(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf, Integer root) = 0;
53 virtual Request allToAll(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf, Integer count) = 0;
54 virtual Request allToAllVariable(ConstArrayView<Type> send_buf, Int32ConstArrayView send_count,
55 Int32ConstArrayView send_index, ArrayView<Type> recv_buf,
56 Int32ConstArrayView recv_count, Int32ConstArrayView recv_index) = 0;
57 virtual Request allReduce(eReduceType op, ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf) = 0;
58};
59
60/*---------------------------------------------------------------------------*/
61/*---------------------------------------------------------------------------*/
62
63} // namespace Arcane
64
65/*---------------------------------------------------------------------------*/
66/*---------------------------------------------------------------------------*/
67
68#endif
69
Déclarations des types généraux de Arcane.
Fichier contenant les déclarations concernant le modèle de programmation par échange de message.
Vue modifiable d'un tableau d'un type T.
Classe de base des vecteurs 1D de données.
Vue constante d'un tableau de type T.
Requête d'un message.
Definition Request.h:77
eReduceType
Types des réductions supportées.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
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