Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IParallelNonBlockingCollective.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/* IParallelNonBlockingCollective.h (C) 2000-2015 */
9/* */
10/* Interface des opérations parallèles collectives non bloquantes. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_IPARALLELNONBLOCKINGCOLLECTIVE_H
13#define ARCANE_IPARALLELNONBLOCKINGCOLLECTIVE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19#include "arcane/Parallel.h"
20#include "arcane/VariableTypedef.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
39/*---------------------------------------------------------------------------*/
40/*---------------------------------------------------------------------------*/
41
42ARCANE_BEGIN_NAMESPACE
43
44/*---------------------------------------------------------------------------*/
45/*---------------------------------------------------------------------------*/
46
47class IParallelMng;
48
49/*---------------------------------------------------------------------------*/
50/*---------------------------------------------------------------------------*/
55class ARCANE_CORE_EXPORT IParallelNonBlockingCollective
56{
57 public:
58
60
61 public:
62
65
66 public:
67
69 virtual void build() =0;
70
71 public:
72
74 virtual IParallelMng* parallelMng() const =0;
75
76 public:
77
79
80
88 virtual Request allGather(ConstArrayView<unsigned char> send_buf,ArrayView<unsigned char> recv_buf) =0;
89 virtual Request allGather(ConstArrayView<signed char> send_buf,ArrayView<signed char> recv_buf) =0;
90 virtual Request allGather(ConstArrayView<int> send_buf,ArrayView<int> recv_buf) =0;
91 virtual Request allGather(ConstArrayView<unsigned int> send_buf,ArrayView<unsigned int> recv_buf) =0;
92 virtual Request allGather(ConstArrayView<short> send_buf,ArrayView<short> recv_buf) =0;
93 virtual Request allGather(ConstArrayView<unsigned short> send_buf,ArrayView<unsigned short> recv_buf) =0;
94 virtual Request allGather(ConstArrayView<long> send_buf,ArrayView<long> recv_buf) =0;
95 virtual Request allGather(ConstArrayView<unsigned long> send_buf,ArrayView<unsigned long> recv_buf) =0;
96 virtual Request allGather(ConstArrayView<long long> send_buf,ArrayView<long long> recv_buf) =0;
97 virtual Request allGather(ConstArrayView<unsigned long long> send_buf,ArrayView<unsigned long long> recv_buf) =0;
98 virtual Request allGather(ConstArrayView<float> send_buf,ArrayView<float> recv_buf) =0;
99 virtual Request allGather(ConstArrayView<double> send_buf,ArrayView<double> recv_buf) =0;
100 virtual Request allGather(ConstArrayView<long double> send_buf,ArrayView<long double> recv_buf) =0;
101#ifdef ARCANE_REAL_NOT_BUILTIN
102 virtual Request allGather(ConstArrayView<Real> send_buf,ArrayView<Real> recv_buf) =0;
103#endif
104 virtual Request allGather(ConstArrayView<Real2> send_buf,ArrayView<Real2> recv_buf) =0;
105 virtual Request allGather(ConstArrayView<Real3> send_buf,ArrayView<Real3> recv_buf) =0;
106 virtual Request allGather(ConstArrayView<Real2x2> send_buf,ArrayView<Real2x2> recv_buf) =0;
107 virtual Request allGather(ConstArrayView<Real3x3> send_buf,ArrayView<Real3x3> recv_buf) =0;
108 virtual Request allGather(ConstArrayView<HPReal> send_buf,ArrayView<HPReal> recv_buf) =0;
109 //virtual Request allGather(ISerializer* send_serializer,ISerializer* recv_serializer) =0;
111
113
114
122 virtual Request gather(ConstArrayView<char> send_buf,ArrayView<char> recv_buf,Integer rank) =0;
123 virtual Request gather(ConstArrayView<unsigned char> send_buf,ArrayView<unsigned char> recv_buf,Integer rank) =0;
124 virtual Request gather(ConstArrayView<signed char> send_buf,ArrayView<signed char> recv_buf,Integer rank) =0;
125 virtual Request gather(ConstArrayView<int> send_buf,ArrayView<int> recv_buf,Integer rank) =0;
126 virtual Request gather(ConstArrayView<unsigned int> send_buf,ArrayView<unsigned int> recv_buf,Integer rank) =0;
127 virtual Request gather(ConstArrayView<short> send_buf,ArrayView<short> recv_buf,Integer rank) =0;
128 virtual Request gather(ConstArrayView<unsigned short> send_buf,ArrayView<unsigned short> recv_buf,Integer rank) =0;
129 virtual Request gather(ConstArrayView<long> send_buf,ArrayView<long> recv_buf,Integer rank) =0;
130 virtual Request gather(ConstArrayView<unsigned long> send_buf,ArrayView<unsigned long> recv_buf,Integer rank) =0;
131 virtual Request gather(ConstArrayView<long long> send_buf,ArrayView<long long> recv_buf,Integer rank) =0;
132 virtual Request gather(ConstArrayView<unsigned long long> send_buf,ArrayView<unsigned long long> recv_buf,Integer rank) =0;
133 virtual Request gather(ConstArrayView<float> send_buf,ArrayView<float> recv_buf,Integer rank) =0;
134 virtual Request gather(ConstArrayView<double> send_buf,ArrayView<double> recv_buf,Integer rank) =0;
135 virtual Request gather(ConstArrayView<long double> send_buf,ArrayView<long double> recv_buf,Integer rank) =0;
136#ifdef ARCANE_REAL_NOT_BUILTIN
137 virtual Request gather(ConstArrayView<Real> send_buf,ArrayView<Real> recv_buf,Integer rank) =0;
138#endif
139 virtual Request gather(ConstArrayView<Real2> send_buf,ArrayView<Real2> recv_buf,Integer rank) =0;
140 virtual Request gather(ConstArrayView<Real3> send_buf,ArrayView<Real3> recv_buf,Integer rank) =0;
141 virtual Request gather(ConstArrayView<Real2x2> send_buf,ArrayView<Real2x2> recv_buf,Integer rank) =0;
142 virtual Request gather(ConstArrayView<Real3x3> send_buf,ArrayView<Real3x3> recv_buf,Integer rank) =0;
143 virtual Request gather(ConstArrayView<HPReal> send_buf,ArrayView<HPReal> recv_buf,Integer rank) =0;
144 //virtual void gather(ISerializer* send_serializer,ISerializer* recv_serializer,Integer rank) =0;
146
148
149
150#if _NEED_ADVANCED_NBC
160 virtual Request gatherVariable(ConstArrayView<char> send_buf,
161 Array<char>& recv_buf,Integer rank) =0;
162 virtual Request gatherVariable(ConstArrayView<signed char> send_buf,
163 Array<signed char>& recv_buf,Integer rank) =0;
164 virtual Request gatherVariable(ConstArrayView<unsigned char> send_buf,
165 Array<unsigned char>& recv_buf,Integer rank) =0;
166 virtual Request gatherVariable(ConstArrayView<int> send_buf,
167 Array<int>& recv_buf,Integer rank) =0;
168 virtual Request gatherVariable(ConstArrayView<unsigned int> send_buf,
169 Array<unsigned int>& recv_buf,Integer rank) =0;
170 virtual Request gatherVariable(ConstArrayView<short> send_buf,
171 Array<short>& recv_buf,Integer rank) =0;
172 virtual Request gatherVariable(ConstArrayView<unsigned short> send_buf,
173 Array<unsigned short>& recv_buf,Integer rank) =0;
174 virtual Request gatherVariable(ConstArrayView<long> send_buf,
175 Array<long>& recv_buf,Integer rank) =0;
176 virtual Request gatherVariable(ConstArrayView<unsigned long> send_buf,
177 Array<unsigned long>& recv_buf,Integer rank) =0;
178 virtual Request gatherVariable(ConstArrayView<long long> send_buf,
179 Array<long long>& recv_buf,Integer rank) =0;
180 virtual Request gatherVariable(ConstArrayView<unsigned long long> send_buf,
181 Array<unsigned long long>& recv_buf,Integer rank) =0;
182 virtual Request gatherVariable(ConstArrayView<float> send_buf,
183 Array<float>& recv_buf,Integer rank) =0;
184 virtual Request gatherVariable(ConstArrayView<double> send_buf,
185 Array<double>& recv_buf,Integer rank) =0;
186 virtual Request gatherVariable(ConstArrayView<long double> send_buf,
187 Array<long double>& recv_buf,Integer rank) =0;
188#ifdef ARCANE_REAL_NOT_BUILTIN
189 virtual Request gatherVariable(ConstArrayView<Real> send_buf,
190 Array<Real>& recv_buf,Integer rank) =0;
191#endif
192 virtual Request gatherVariable(ConstArrayView<Real2> send_buf,
193 Array<Real2>& recv_buf,Integer rank) =0;
194 virtual Request gatherVariable(ConstArrayView<Real3> send_buf,
195 Array<Real3>& recv_buf,Integer rank) =0;
196 virtual Request gatherVariable(ConstArrayView<Real2x2> send_buf,
197 Array<Real2x2>& recv_buf,Integer rank) =0;
198 virtual Request gatherVariable(ConstArrayView<Real3x3> send_buf,
199 Array<Real3x3>& recv_buf,Integer rank) =0;
200 virtual Request gatherVariable(ConstArrayView<HPReal> send_buf,
201 Array<HPReal>& recv_buf,Integer rank) =0;
203#endif
204
206
207
208#if _NEED_ADVANCED_NBC
217 virtual Request allGatherVariable(ConstArrayView<char> send_buf,
218 Array<char>& recv_buf) =0;
219 virtual Request allGatherVariable(ConstArrayView<signed char> send_buf,
220 Array<signed char>& recv_buf) =0;
221 virtual Request allGatherVariable(ConstArrayView<unsigned char> send_buf,
222 Array<unsigned char>& recv_buf) =0;
223 virtual Request allGatherVariable(ConstArrayView<int> send_buf,
224 Array<int>& recv_buf) =0;
225 virtual Request allGatherVariable(ConstArrayView<unsigned int> send_buf,
226 Array<unsigned int>& recv_buf) =0;
227 virtual Request allGatherVariable(ConstArrayView<short> send_buf,
228 Array<short>& recv_buf) =0;
229 virtual Request allGatherVariable(ConstArrayView<unsigned short> send_buf,
230 Array<unsigned short>& recv_buf) =0;
231 virtual Request allGatherVariable(ConstArrayView<long> send_buf,
232 Array<long>& recv_buf) =0;
233 virtual Request allGatherVariable(ConstArrayView<unsigned long> send_buf,
234 Array<unsigned long>& recv_buf) =0;
235 virtual Request allGatherVariable(ConstArrayView<long long> send_buf,
236 Array<long long>& recv_buf) =0;
237 virtual Request allGatherVariable(ConstArrayView<unsigned long long> send_buf,
238 Array<unsigned long long>& recv_buf) =0;
239 virtual Request allGatherVariable(ConstArrayView<float> send_buf,
240 Array<float>& recv_buf) =0;
241 virtual Request allGatherVariable(ConstArrayView<double> send_buf,
242 Array<double>& recv_buf) =0;
243 virtual Request allGatherVariable(ConstArrayView<long double> send_buf,
244 Array<long double>& recv_buf) =0;
245#ifdef ARCANE_REAL_NOT_BUILTIN
246 virtual Request allGatherVariable(ConstArrayView<Real> send_buf,
247 Array<Real>& recv_buf) =0;
248#endif
249 virtual Request allGatherVariable(ConstArrayView<Real2> send_buf,
250 Array<Real2>& recv_buf) =0;
251 virtual Request allGatherVariable(ConstArrayView<Real3> send_buf,
252 Array<Real3>& recv_buf) =0;
253 virtual Request allGatherVariable(ConstArrayView<Real2x2> send_buf,
254 Array<Real2x2>& recv_buf) =0;
255 virtual Request allGatherVariable(ConstArrayView<Real3x3> send_buf,
256 Array<Real3x3>& recv_buf) =0;
257 virtual Request allGatherVariable(ConstArrayView<HPReal> send_buf,
258 Array<HPReal>& recv_buf) =0;
260#endif
261
262#if _NEED_ADVANCED_NBC
264
265
268 virtual Request scatterVariable(ConstArrayView<char> send_buf,
269 ArrayView<char> recv_buf,Integer root) =0;
270 virtual Request scatterVariable(ConstArrayView<signed char> send_buf,
271 ArrayView<signed char> recv_buf,Integer root) =0;
272 virtual Request scatterVariable(ConstArrayView<unsigned char> send_buf,
273 ArrayView<unsigned char> recv_buf,Integer root) =0;
274 virtual Request scatterVariable(ConstArrayView<int> send_buf,
275 ArrayView<int> recv_buf,Integer root) =0;
276 virtual Request scatterVariable(ConstArrayView<unsigned int> send_buf,
277 ArrayView<unsigned int> recv_buf,Integer root) =0;
278 virtual Request scatterVariable(ConstArrayView<long> send_buf,
279 ArrayView<long> recv_buf,Integer root) =0;
280 virtual Request scatterVariable(ConstArrayView<unsigned long> send_buf,
281 ArrayView<unsigned long> recv_buf,Integer root) =0;
282 virtual Request scatterVariable(ConstArrayView<long long> send_buf,
283 ArrayView<long long> recv_buf,Integer root) =0;
284 virtual Request scatterVariable(ConstArrayView<unsigned long long> send_buf,
285 ArrayView<unsigned long long> recv_buf,Integer root) =0;
286 virtual Request scatterVariable(ConstArrayView<float> send_buf,
287 ArrayView<float> recv_buf,Integer root) =0;
288 virtual Request scatterVariable(ConstArrayView<double> send_buf,
289 ArrayView<double> recv_buf,Integer root) =0;
290 virtual Request scatterVariable(ConstArrayView<long double> send_buf,
291 ArrayView<long double> recv_buf,Integer root) =0;
292#ifdef ARCANE_REAL_NOT_BUILTIN
293 virtual Request scatterVariable(ConstArrayView<Real> send_buf,
294 ArrayView<Real> recv_buf,Integer root) =0;
295#endif
296 virtual Request scatterVariable(ConstArrayView<Real2> send_buf,
297 ArrayView<Real2> recv_buf,Integer root) =0;
298 virtual Request scatterVariable(ConstArrayView<Real3> send_buf,
299 ArrayView<Real3> recv_buf,Integer root) =0;
300 virtual Request scatterVariable(ConstArrayView<Real2x2> send_buf,
301 ArrayView<Real2x2> recv_buf,Integer root) =0;
302 virtual Request scatterVariable(ConstArrayView<Real3x3> send_buf,
303 ArrayView<Real3x3> recv_buf,Integer root) =0;
304 virtual Request scatterVariable(ConstArrayView<HPReal> send_buf,
305 ArrayView<HPReal> recv_buf,Integer root) =0;
307#endif
308
310
311
316 virtual Request allReduce(eReduceType rt,ConstArrayView<signed char> send_buf,ArrayView<signed char> recv_buf) =0;
317 virtual Request allReduce(eReduceType rt,ConstArrayView<unsigned char> send_buf,ArrayView<unsigned char> recv_buf) =0;
318 virtual Request allReduce(eReduceType rt,ConstArrayView<short> send_buf,ArrayView<short> recv_buf) =0;
319 virtual Request allReduce(eReduceType rt,ConstArrayView<unsigned short> send_buf,ArrayView<unsigned short> recv_buf) =0;
320 virtual Request allReduce(eReduceType rt,ConstArrayView<int> send_buf,ArrayView<int> recv_buf) =0;
321 virtual Request allReduce(eReduceType rt,ConstArrayView<unsigned int> send_buf,ArrayView<unsigned int> recv_buf) =0;
322 virtual Request allReduce(eReduceType rt,ConstArrayView<long> send_buf,ArrayView<long> recv_buf) =0;
323 virtual Request allReduce(eReduceType rt,ConstArrayView<unsigned long> send_buf,ArrayView<unsigned long> recv_buf) =0;
324 virtual Request allReduce(eReduceType rt,ConstArrayView<long long> send_buf,ArrayView<long long> recv_buf) =0;
326 virtual Request allReduce(eReduceType rt,ConstArrayView<float> send_buf,ArrayView<float> recv_buf) =0;
327 virtual Request allReduce(eReduceType rt,ConstArrayView<double> send_buf,ArrayView<double> recv_buf) =0;
328 virtual Request allReduce(eReduceType rt,ConstArrayView<long double> send_buf,ArrayView<long double> recv_buf) =0;
329#ifdef ARCANE_REAL_NOT_BUILTIN
330 virtual Request allReduce(eReduceType rt,ConstArrayView<Real> send_buf,ArrayView<Real> recv_buf) =0;
331#endif
332 virtual Request allReduce(eReduceType rt,ConstArrayView<Real2> send_buf,ArrayView<Real2> recv_buf) =0;
333 virtual Request allReduce(eReduceType rt,ConstArrayView<Real3> send_buf,ArrayView<Real3> recv_buf) =0;
334 virtual Request allReduce(eReduceType rt,ConstArrayView<Real2x2> send_buf,ArrayView<Real2x2> recv_buf) =0;
335 virtual Request allReduce(eReduceType rt,ConstArrayView<Real3x3> send_buf,ArrayView<Real3x3> recv_buf) =0;
336 virtual Request allReduce(eReduceType rt,ConstArrayView<HPReal> send_buf,ArrayView<HPReal> recv_buf) =0;
338
351 virtual Request broadcast(ArrayView<char> send_buf,Integer rank) =0;
352 virtual Request broadcast(ArrayView<signed char> send_buf,Integer rank) =0;
353 virtual Request broadcast(ArrayView<unsigned char> send_buf,Integer rank) =0;
354 virtual Request broadcast(ArrayView<short> send_buf,Integer rank) =0;
355 virtual Request broadcast(ArrayView<unsigned short> send_buf,Integer rank) =0;
356 virtual Request broadcast(ArrayView<int> send_buf,Integer rank) =0;
357 virtual Request broadcast(ArrayView<unsigned int> send_buf,Integer rank) =0;
358 virtual Request broadcast(ArrayView<long> send_buf,Integer rank) =0;
359 virtual Request broadcast(ArrayView<unsigned long> send_buf,Integer rank) =0;
360 virtual Request broadcast(ArrayView<long long> send_buf,Integer rank) =0;
361 virtual Request broadcast(ArrayView<unsigned long long> send_buf,Integer rank) =0;
362 virtual Request broadcast(ArrayView<float> send_buf,Integer rank) =0;
363 virtual Request broadcast(ArrayView<double> send_buf,Integer rank) =0;
364 virtual Request broadcast(ArrayView<long double> send_buf,Integer rank) =0;
365#ifdef ARCANE_REAL_NOT_BUILTIN
366 virtual Request broadcast(ArrayView<Real> send_buf,Integer rank) =0;
367#endif
368 virtual Request broadcast(ArrayView<Real2> send_buf,Integer rank) =0;
369 virtual Request broadcast(ArrayView<Real3> send_buf,Integer rank) =0;
370 virtual Request broadcast(ArrayView<Real2x2> send_buf,Integer rank) =0;
371 virtual Request broadcast(ArrayView<Real3x3> send_buf,Integer rank) =0;
372 virtual Request broadcast(ArrayView<HPReal> send_buf,Integer rank) =0;
373 //virtual Request broadcastString(String& str,Integer rank) =0;
374
375 //virtual Request broadcastSerializer(ISerializer* values,Integer rank) =0;
384 //virtual Request broadcastMemoryBuffer(ByteArray& bytes,Integer rank) =0;
386
388 Integer count) =0;
389 virtual Request allToAll(ConstArrayView<signed char> send_buf,ArrayView<signed char> recv_buf,
390 Integer count) =0;
391 virtual Request allToAll(ConstArrayView<unsigned char> send_buf,ArrayView<unsigned char> recv_buf,
392 Integer count) =0;
393 virtual Request allToAll(ConstArrayView<int> send_buf,ArrayView<int> recv_buf,Integer count) =0;
394 virtual Request allToAll(ConstArrayView<unsigned int> send_buf,ArrayView<unsigned int> recv_buf,
395 Integer count) =0;
396 virtual Request allToAll(ConstArrayView<short> send_buf,ArrayView<short> recv_buf,Integer count) =0;
397 virtual Request allToAll(ConstArrayView<unsigned short> send_buf,ArrayView<unsigned short> recv_buf,
398 Integer count) =0;
399 virtual Request allToAll(ConstArrayView<long> send_buf,ArrayView<long> recv_buf,Integer count) =0;
400 virtual Request allToAll(ConstArrayView<unsigned long> send_buf,ArrayView<unsigned long> recv_buf,
401 Integer count) =0;
402 virtual Request allToAll(ConstArrayView<long long> send_buf,ArrayView<long long> recv_buf,
403 Integer count) =0;
404 virtual Request allToAll(ConstArrayView<unsigned long long> send_buf,
405 ArrayView<unsigned long long> recv_buf,Integer count) =0;
406 virtual Request allToAll(ConstArrayView<float> send_buf,ArrayView<float> recv_buf,
407 Integer count) =0;
408 virtual Request allToAll(ConstArrayView<double> send_buf,ArrayView<double> recv_buf,
409 Integer count) =0;
410 virtual Request allToAll(ConstArrayView<long double> send_buf,ArrayView<long double> recv_buf,
411 Integer count) =0;
412#ifdef ARCANE_REAL_NOT_BUILTIN
413 virtual Request allToAll(ConstArrayView<Real> send_buf,ArrayView<Real> recv_buf,
414 Integer count) =0;
415#endif
416 virtual Request allToAll(ConstArrayView<Real2> send_buf,ArrayView<Real2> recv_buf,
417 Integer count) =0;
418 virtual Request allToAll(ConstArrayView<Real3> send_buf,ArrayView<Real3> recv_buf,
419 Integer count) =0;
420 virtual Request allToAll(ConstArrayView<Real2x2> send_buf,ArrayView<Real2x2> recv_buf,
421 Integer count) =0;
422 virtual Request allToAll(ConstArrayView<Real3x3> send_buf,ArrayView<Real3x3> recv_buf,
423 Integer count) =0;
424 virtual Request allToAll(ConstArrayView<HPReal> send_buf,ArrayView<HPReal> recv_buf,
425 Integer count) =0;
426
427
434 virtual Request allToAllVariable(ConstArrayView<char> send_buf,Int32ConstArrayView send_count,
435 Int32ConstArrayView send_index,ArrayView<char> recv_buf,
436 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
437 virtual Request allToAllVariable(ConstArrayView<signed char> send_buf,Int32ConstArrayView send_count,
439 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
440 virtual Request allToAllVariable(ConstArrayView<unsigned char> send_buf,Int32ConstArrayView send_count,
442 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
443 virtual Request allToAllVariable(ConstArrayView<int> send_buf,Int32ConstArrayView send_count,
444 Int32ConstArrayView send_index,ArrayView<int> recv_buf,
445 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
446 virtual Request allToAllVariable(ConstArrayView<unsigned int> send_buf,Int32ConstArrayView send_count,
448 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
449 virtual Request allToAllVariable(ConstArrayView<short> send_buf,Int32ConstArrayView send_count,
450 Int32ConstArrayView send_index,ArrayView<short> recv_buf,
451 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
452 virtual Request allToAllVariable(ConstArrayView<unsigned short> send_buf,Int32ConstArrayView send_count,
454 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
455 virtual Request allToAllVariable(ConstArrayView<long> send_buf,Int32ConstArrayView send_count,
456 Int32ConstArrayView send_index,ArrayView<long> recv_buf,
457 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
458 virtual Request allToAllVariable(ConstArrayView<unsigned long> send_buf,Int32ConstArrayView send_count,
460 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
461 virtual Request allToAllVariable(ConstArrayView<long long> send_buf,Int32ConstArrayView send_count,
462 Int32ConstArrayView send_index,ArrayView<long long> recv_buf,
463 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
464 virtual Request allToAllVariable(ConstArrayView<unsigned long long> send_buf,Int32ConstArrayView send_count,
466 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
467 virtual Request allToAllVariable(ConstArrayView<float> send_buf,Int32ConstArrayView send_count,
468 Int32ConstArrayView send_index,ArrayView<float> recv_buf,
469 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
470 virtual Request allToAllVariable(ConstArrayView<double> send_buf,Int32ConstArrayView send_count,
471 Int32ConstArrayView send_index,ArrayView<double> recv_buf,
472 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
473 virtual Request allToAllVariable(ConstArrayView<long double> send_buf,Int32ConstArrayView send_count,
475 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
476#ifdef ARCANE_REAL_NOT_BUILTIN
477 virtual Request allToAllVariable(ConstArrayView<Real> send_buf,Int32ConstArrayView send_count,
478 Int32ConstArrayView send_index,ArrayView<Real> recv_buf,
479 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
480#endif
481 virtual Request allToAllVariable(ConstArrayView<Real2> send_buf,Int32ConstArrayView send_count,
482 Int32ConstArrayView send_index,ArrayView<Real2> recv_buf,
483 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
484 virtual Request allToAllVariable(ConstArrayView<Real3> send_buf,Int32ConstArrayView send_count,
485 Int32ConstArrayView send_index,ArrayView<Real3> recv_buf,
486 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
487 virtual Request allToAllVariable(ConstArrayView<Real2x2> send_buf,Int32ConstArrayView send_count,
488 Int32ConstArrayView send_index,ArrayView<Real2x2> recv_buf,
489 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
490 virtual Request allToAllVariable(ConstArrayView<Real3x3> send_buf,Int32ConstArrayView send_count,
491 Int32ConstArrayView send_index,ArrayView<Real3x3> recv_buf,
492 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
493 virtual Request allToAllVariable(ConstArrayView<HPReal> send_buf,Int32ConstArrayView send_count,
494 Int32ConstArrayView send_index,ArrayView<HPReal> recv_buf,
495 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
497
499
500
501 virtual Request barrier() =0;
503
513 virtual bool hasValidReduceForDerivedType() const =0;
514};
515
516/*---------------------------------------------------------------------------*/
517/*---------------------------------------------------------------------------*/
518
519ARCANE_END_NAMESPACE
520
521/*---------------------------------------------------------------------------*/
522/*---------------------------------------------------------------------------*/
523
524#endif
525
Déclarations des types utilisés dans Arcane.
Interface du gestionnaire de parallélisme pour un sous-domaine.
Interface des opérations parallèles collectives non bloquantes.
virtual Request barrier()=0
Effectue une barière.
virtual void build()=0
Construit l'instance.
virtual Request allGather(ConstArrayView< char > send_buf, ArrayView< char > recv_buf)=0
Effectue un regroupement sur tous les processeurs. Il s'agit d'une opération collective....
virtual bool hasValidReduceForDerivedType() const =0
Indique si l'implémentation autorise les réductions sur les types dérivés.
virtual IParallelMng * parallelMng() const =0
Gestionnaire de parallélisme associé.
virtual ~IParallelNonBlockingCollective()
Libère les ressources.
virtual Request allReduce(eReduceType rt, ConstArrayView< char > send_buf, ArrayView< char > recv_buf)=0
Effectue la réduction de type rt sur le tableau send_buf et stoque le résultat dans recv_buf.
virtual Request gather(ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Integer rank)=0
Effectue un regroupement sur un processeurs. Il s'agit d'une opération collective....
virtual Request allToAll(ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Integer count)=0
Effectue un broadcast d'une zone mémoire.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Vue constante d'un tableau de type T.
Requête d'un message.
Definition Request.h:77
eReduceType
Types des réductions supportées.