Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IDataSynchronizeBuffer.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* IDataSynchronizeBuffer.h (C) 2000-2023 */
9/* */
10/* Interface d'un buffer générique pour la synchronisation de donnéess. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13#ifndef ARCANE_IMPL_IDATASYNCHRONIZEBUFFER_H
14#define ARCANE_IMPL_IDATASYNCHRONIZEBUFFER_H
15/*---------------------------------------------------------------------------*/
16/*---------------------------------------------------------------------------*/
17
18#include "arcane/utils/ArrayView.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
52class ARCANE_IMPL_EXPORT IDataSynchronizeBuffer
53{
54 public:
55
56 virtual ~IDataSynchronizeBuffer() = default;
57
58 public:
59
61 virtual Int32 nbRank() const = 0;
62
64 virtual Int32 targetRank(Int32 index) const = 0;
65
67 virtual bool hasGlobalBuffer() const = 0;
68
71
74
76 virtual MutableMemoryView sendBuffer(Int32 index) = 0;
77
79 virtual MutableMemoryView receiveBuffer(Int32 index) = 0;
80
86 virtual Int64 sendDisplacement(Int32 index) const = 0;
87
93 virtual Int64 receiveDisplacement(Int32 index) const = 0;
94
96 virtual void copyReceiveAsync(Int32 index) = 0;
97
108 virtual void copyAllReceive();
109
120 virtual void copySendAsync(Int32 index) = 0;
121
125 virtual void copyAllSend();
126
128 virtual Int64 totalSendSize() const = 0;
129
131 virtual Int64 totalReceiveSize() const = 0;
132
134 virtual void barrier() = 0;
135};
136
137/*---------------------------------------------------------------------------*/
138/*---------------------------------------------------------------------------*/
139
140} // namespace Arcane
141
142/*---------------------------------------------------------------------------*/
143/*---------------------------------------------------------------------------*/
144
145#endif
Buffer générique pour la synchronisation de données.
virtual MutableMemoryView sendBuffer(Int32 index)=0
Buffer d'envoi pour le index-ème rang.
virtual void barrier()=0
Attend que les copies (copySendAsync() et copyReceiveAsync()) soient terminées.
virtual bool hasGlobalBuffer() const =0
Indique si les buffers sont globaux.
virtual Int64 totalSendSize() const =0
Taille totale à envoyer en octet.
virtual Int64 sendDisplacement(Int32 index) const =0
Déplacement (en octets) depuis le début de sendBuffer() pour le index-ème rang.
virtual void copyReceiveAsync(Int32 index)=0
Recopie dans les données depuis le buffer de réception du index-ème rang.
virtual MutableMemoryView globalReceiveBuffer()=0
Buffer de réception.
virtual MutableMemoryView globalSendBuffer()=0
Buffer d'envoi.
virtual void copySendAsync(Int32 index)=0
Recopie dans le buffer d'envoi les données du index-ème rang.
virtual MutableMemoryView receiveBuffer(Int32 index)=0
Buffer de réception pour le index-ème rang.
virtual Int32 nbRank() const =0
Nombre de rangs.
virtual Int32 targetRank(Int32 index) const =0
Rang cible du index-ème rang.
virtual Int64 receiveDisplacement(Int32 index) const =0
Déplacement (en octets) depuis le début de receiveBuffer() pour le index-ème rang.
virtual Int64 totalReceiveSize() const =0
Taille totale à recevoir en octet.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-