Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IParallelMng.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* IParallelMng.h (C) 2000-2024 */
9/* */
10/* Interface du gestionnaire du parallélisme sur un sous-domaine. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CORE_IPARALLELMNG_H
13#define ARCANE_CORE_IPARALLELMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
51class ARCANE_CORE_EXPORT IParallelMng
52{
54 // Classe pour accéder à _internalUtilsFactory()
55 friend class ParallelMngUtilsAccessor;
56
57 public:
58
59 // NOTE: Laisse temporairement ce destructeur publique tant que
60 // les méthodes createParallelMng() existent pour des raisons de
61 // compatibilité avec l'existant
62 virtual ~IParallelMng() = default;
63
64 public:
65
71 typedef Parallel::IStat IStat;
72
73 public:
74
76 virtual void build() =0;
77
78 public:
79
86 virtual bool isParallel() const =0;
87
88 private:
89
90 // NOTE: on laisse temporairement ces deux méthodes pour garder la compatibilité binaire.
91
93 virtual ARCANE_DEPRECATED Integer subDomainId() const final { return commRank(); }
94
96 virtual ARCANE_DEPRECATED Integer nbSubDomain() const final { return commSize(); }
97
98 public:
99
101 virtual Int32 commRank() const =0;
102
104 virtual Int32 commSize() const =0;
105
112 virtual void* getMPICommunicator() =0;
113
119 virtual ARCANE_DEPRECATED_120 void* mpiCommunicator();
120
133
140 virtual bool isThreadImplementation() const =0;
141
147 virtual bool isHybridImplementation() const =0;
148
151
153 virtual ITimeStats* timeStats() const =0;
154
156 virtual ITraceMng* traceMng() const =0;
157
159 virtual IThreadMng* threadMng() const =0;
160
162 virtual ITimerMng* timerMng() const =0;
163
165 virtual IIOMng* ioMng() const =0;
166
168 virtual IParallelMng* worldParallelMng() const =0;
169
171 virtual void initialize() =0;
172
175
176 public:
177
178
179 public:
180
182 virtual bool isMasterIO() const =0;
183
189 virtual Integer masterIORank() const =0;
190
192
193
200 virtual void allGather(ConstArrayView<char> send_buf,ArrayView<char> recv_buf) =0;
201 virtual void allGather(ConstArrayView<unsigned char> send_buf,ArrayView<unsigned char> recv_buf) =0;
202 virtual void allGather(ConstArrayView<signed char> send_buf,ArrayView<signed char> recv_buf) =0;
203 virtual void allGather(ConstArrayView<short> send_buf,ArrayView<short> recv_buf) =0;
204 virtual void allGather(ConstArrayView<unsigned short> send_buf,ArrayView<unsigned short> recv_buf) =0;
205 virtual void allGather(ConstArrayView<int> send_buf,ArrayView<int> recv_buf) =0;
206 virtual void allGather(ConstArrayView<unsigned int> send_buf,ArrayView<unsigned int> recv_buf) =0;
207 virtual void allGather(ConstArrayView<long> send_buf,ArrayView<long> recv_buf) =0;
208 virtual void allGather(ConstArrayView<unsigned long> send_buf,ArrayView<unsigned long> recv_buf) =0;
209 virtual void allGather(ConstArrayView<long long> send_buf,ArrayView<long long> recv_buf) =0;
210 virtual void allGather(ConstArrayView<unsigned long long> send_buf,ArrayView<unsigned long long> recv_buf) =0;
211 virtual void allGather(ConstArrayView<float> send_buf,ArrayView<float> recv_buf) =0;
212 virtual void allGather(ConstArrayView<double> send_buf,ArrayView<double> recv_buf) =0;
213 virtual void allGather(ConstArrayView<long double> send_buf,ArrayView<long double> recv_buf) =0;
214 virtual void allGather(ConstArrayView<APReal> send_buf,ArrayView<APReal> recv_buf) =0;
215 virtual void allGather(ConstArrayView<Real2> send_buf,ArrayView<Real2> recv_buf) =0;
216 virtual void allGather(ConstArrayView<Real3> send_buf,ArrayView<Real3> recv_buf) =0;
217 virtual void allGather(ConstArrayView<Real2x2> send_buf,ArrayView<Real2x2> recv_buf) =0;
218 virtual void allGather(ConstArrayView<Real3x3> send_buf,ArrayView<Real3x3> recv_buf) =0;
219 virtual void allGather(ConstArrayView<HPReal> send_buf,ArrayView<HPReal> recv_buf) =0;
220 virtual void allGather(ISerializer* send_serializer,ISerializer* recv_serializer) =0;
222
224
225
233 virtual void gather(ConstArrayView<char> send_buf,ArrayView<char> recv_buf,Int32 rank) =0;
234 virtual void gather(ConstArrayView<unsigned char> send_buf,ArrayView<unsigned char> recv_buf,Int32 rank) =0;
235 virtual void gather(ConstArrayView<signed char> send_buf,ArrayView<signed char> recv_buf,Int32 rank) =0;
236 virtual void gather(ConstArrayView<short> send_buf,ArrayView<short> recv_buf,Int32 rank) =0;
237 virtual void gather(ConstArrayView<unsigned short> send_buf,ArrayView<unsigned short> recv_buf,Int32 rank) =0;
238 virtual void gather(ConstArrayView<int> send_buf,ArrayView<int> recv_buf,Int32 rank) =0;
239 virtual void gather(ConstArrayView<unsigned int> send_buf,ArrayView<unsigned int> recv_buf,Int32 rank) =0;
240 virtual void gather(ConstArrayView<long> send_buf,ArrayView<long> recv_buf,Int32 rank) =0;
241 virtual void gather(ConstArrayView<unsigned long> send_buf,ArrayView<unsigned long> recv_buf,Int32 rank) =0;
242 virtual void gather(ConstArrayView<long long> send_buf,ArrayView<long long> recv_buf,Int32 rank) =0;
243 virtual void gather(ConstArrayView<unsigned long long> send_buf,ArrayView<unsigned long long> recv_buf,Int32 rank) =0;
244 virtual void gather(ConstArrayView<float> send_buf,ArrayView<float> recv_buf,Int32 rank) =0;
245 virtual void gather(ConstArrayView<double> send_buf,ArrayView<double> recv_buf,Int32 rank) =0;
246 virtual void gather(ConstArrayView<long double> send_buf,ArrayView<long double> recv_buf,Int32 rank) =0;
247 virtual void gather(ConstArrayView<APReal> send_buf,ArrayView<APReal> recv_buf,Int32 rank) =0;
248 virtual void gather(ConstArrayView<Real2> send_buf,ArrayView<Real2> recv_buf,Int32 rank) =0;
249 virtual void gather(ConstArrayView<Real3> send_buf,ArrayView<Real3> recv_buf,Int32 rank) =0;
250 virtual void gather(ConstArrayView<Real2x2> send_buf,ArrayView<Real2x2> recv_buf,Int32 rank) =0;
251 virtual void gather(ConstArrayView<Real3x3> send_buf,ArrayView<Real3x3> recv_buf,Int32 rank) =0;
252 virtual void gather(ConstArrayView<HPReal> send_buf,ArrayView<HPReal> recv_buf,Int32 rank) =0;
254
256
257
268 Array<char>& recv_buf,Int32 rank) =0;
269 virtual void gatherVariable(ConstArrayView<signed char> send_buf,
270 Array<signed char>& recv_buf,Int32 rank) =0;
271 virtual void gatherVariable(ConstArrayView<unsigned char> send_buf,
272 Array<unsigned char>& recv_buf,Int32 rank) =0;
273 virtual void gatherVariable(ConstArrayView<short> send_buf,
274 Array<short>& recv_buf,Int32 rank) =0;
275 virtual void gatherVariable(ConstArrayView<unsigned short> send_buf,
276 Array<unsigned short>& recv_buf,Int32 rank) =0;
277 virtual void gatherVariable(ConstArrayView<int> send_buf,
278 Array<int>& recv_buf,Int32 rank) =0;
279 virtual void gatherVariable(ConstArrayView<unsigned int> send_buf,
280 Array<unsigned int>& recv_buf,Int32 rank) =0;
281 virtual void gatherVariable(ConstArrayView<long> send_buf,
282 Array<long>& recv_buf,Int32 rank) =0;
283 virtual void gatherVariable(ConstArrayView<unsigned long> send_buf,
284 Array<unsigned long>& recv_buf,Int32 rank) =0;
285 virtual void gatherVariable(ConstArrayView<long long> send_buf,
286 Array<long long>& recv_buf,Int32 rank) =0;
287 virtual void gatherVariable(ConstArrayView<unsigned long long> send_buf,
288 Array<unsigned long long>& recv_buf,Int32 rank) =0;
289 virtual void gatherVariable(ConstArrayView<float> send_buf,
290 Array<float>& recv_buf,Int32 rank) =0;
291 virtual void gatherVariable(ConstArrayView<double> send_buf,
292 Array<double>& recv_buf,Int32 rank) =0;
293 virtual void gatherVariable(ConstArrayView<long double> send_buf,
294 Array<long double>& recv_buf,Int32 rank) =0;
295 virtual void gatherVariable(ConstArrayView<APReal> send_buf,
296 Array<APReal>& recv_buf,Int32 rank) =0;
297 virtual void gatherVariable(ConstArrayView<Real2> send_buf,
298 Array<Real2>& recv_buf,Int32 rank) =0;
299 virtual void gatherVariable(ConstArrayView<Real3> send_buf,
300 Array<Real3>& recv_buf,Int32 rank) =0;
301 virtual void gatherVariable(ConstArrayView<Real2x2> send_buf,
302 Array<Real2x2>& recv_buf,Int32 rank) =0;
303 virtual void gatherVariable(ConstArrayView<Real3x3> send_buf,
304 Array<Real3x3>& recv_buf,Int32 rank) =0;
305 virtual void gatherVariable(ConstArrayView<HPReal> send_buf,
306 Array<HPReal>& recv_buf,Int32 rank) =0;
308
310
311
321 Array<char>& recv_buf) =0;
322 virtual void allGatherVariable(ConstArrayView<signed char> send_buf,
323 Array<signed char>& recv_buf) =0;
324 virtual void allGatherVariable(ConstArrayView<unsigned char> send_buf,
325 Array<unsigned char>& recv_buf) =0;
326 virtual void allGatherVariable(ConstArrayView<short> send_buf,
327 Array<short>& recv_buf) =0;
328 virtual void allGatherVariable(ConstArrayView<unsigned short> send_buf,
329 Array<unsigned short>& recv_buf) =0;
330 virtual void allGatherVariable(ConstArrayView<int> send_buf,
331 Array<int>& recv_buf) =0;
332 virtual void allGatherVariable(ConstArrayView<unsigned int> send_buf,
333 Array<unsigned int>& recv_buf) =0;
334 virtual void allGatherVariable(ConstArrayView<long> send_buf,
335 Array<long>& recv_buf) =0;
336 virtual void allGatherVariable(ConstArrayView<unsigned long> send_buf,
337 Array<unsigned long>& recv_buf) =0;
338 virtual void allGatherVariable(ConstArrayView<long long> send_buf,
339 Array<long long>& recv_buf) =0;
340 virtual void allGatherVariable(ConstArrayView<unsigned long long> send_buf,
341 Array<unsigned long long>& recv_buf) =0;
342 virtual void allGatherVariable(ConstArrayView<float> send_buf,
343 Array<float>& recv_buf) =0;
344 virtual void allGatherVariable(ConstArrayView<double> send_buf,
345 Array<double>& recv_buf) =0;
346 virtual void allGatherVariable(ConstArrayView<long double> send_buf,
347 Array<long double>& recv_buf) =0;
348 virtual void allGatherVariable(ConstArrayView<APReal> send_buf,
349 Array<APReal>& recv_buf) =0;
350 virtual void allGatherVariable(ConstArrayView<Real2> send_buf,
351 Array<Real2>& recv_buf) =0;
352 virtual void allGatherVariable(ConstArrayView<Real3> send_buf,
353 Array<Real3>& recv_buf) =0;
354 virtual void allGatherVariable(ConstArrayView<Real2x2> send_buf,
355 Array<Real2x2>& recv_buf) =0;
356 virtual void allGatherVariable(ConstArrayView<Real3x3> send_buf,
357 Array<Real3x3>& recv_buf) =0;
358 virtual void allGatherVariable(ConstArrayView<HPReal> send_buf,
359 Array<HPReal>& recv_buf) =0;
361
363
364
368 ArrayView<char> recv_buf,Integer root) =0;
369 virtual void scatterVariable(ConstArrayView<signed char> send_buf,
370 ArrayView<signed char> recv_buf,Integer root) =0;
371 virtual void scatterVariable(ConstArrayView<unsigned char> send_buf,
372 ArrayView<unsigned char> recv_buf,Integer root) =0;
373 virtual void scatterVariable(ConstArrayView<short> send_buf,
374 ArrayView<short> recv_buf,Integer root) =0;
375 virtual void scatterVariable(ConstArrayView<unsigned short> send_buf,
376 ArrayView<unsigned short> recv_buf,Integer root) =0;
377 virtual void scatterVariable(ConstArrayView<int> send_buf,
378 ArrayView<int> recv_buf,Integer root) =0;
379 virtual void scatterVariable(ConstArrayView<unsigned int> send_buf,
380 ArrayView<unsigned int> recv_buf,Integer root) =0;
381 virtual void scatterVariable(ConstArrayView<long> send_buf,
382 ArrayView<long> recv_buf,Integer root) =0;
383 virtual void scatterVariable(ConstArrayView<unsigned long> send_buf,
384 ArrayView<unsigned long> recv_buf,Integer root) =0;
385 virtual void scatterVariable(ConstArrayView<long long> send_buf,
386 ArrayView<long long> recv_buf,Integer root) =0;
387 virtual void scatterVariable(ConstArrayView<unsigned long long> send_buf,
388 ArrayView<unsigned long long> recv_buf,Integer root) =0;
389 virtual void scatterVariable(ConstArrayView<float> send_buf,
390 ArrayView<float> recv_buf,Integer root) =0;
391 virtual void scatterVariable(ConstArrayView<double> send_buf,
392 ArrayView<double> recv_buf,Integer root) =0;
393 virtual void scatterVariable(ConstArrayView<long double> send_buf,
394 ArrayView<long double> recv_buf,Integer root) =0;
395 virtual void scatterVariable(ConstArrayView<APReal> send_buf,
396 ArrayView<APReal> recv_buf,Integer root) =0;
397 virtual void scatterVariable(ConstArrayView<Real2> send_buf,
398 ArrayView<Real2> recv_buf,Integer root) =0;
399 virtual void scatterVariable(ConstArrayView<Real3> send_buf,
400 ArrayView<Real3> recv_buf,Integer root) =0;
401 virtual void scatterVariable(ConstArrayView<Real2x2> send_buf,
402 ArrayView<Real2x2> recv_buf,Integer root) =0;
403 virtual void scatterVariable(ConstArrayView<Real3x3> send_buf,
404 ArrayView<Real3x3> recv_buf,Integer root) =0;
405 virtual void scatterVariable(ConstArrayView<HPReal> send_buf,
406 ArrayView<HPReal> recv_buf,Integer root) =0;
408
410
411
414 virtual char reduce(eReduceType rt,char v) =0;
415 virtual signed char reduce(eReduceType rt,signed char v) =0;
416 virtual unsigned char reduce(eReduceType rt,unsigned char v) =0;
417 virtual short reduce(eReduceType rt,short v) =0;
418 virtual unsigned short reduce(eReduceType rt,unsigned short v) =0;
419 virtual int reduce(eReduceType rt,int v) =0;
420 virtual unsigned int reduce(eReduceType rt,unsigned int v) =0;
421 virtual long reduce(eReduceType rt,long v) =0;
422 virtual unsigned long reduce(eReduceType rt,unsigned long v) =0;
423 virtual long long reduce(eReduceType rt,long long v) =0;
424 virtual unsigned long long reduce(eReduceType rt,unsigned long long v) =0;
425 virtual float reduce(eReduceType rt,float v) =0;
426 virtual double reduce(eReduceType rt,double v) =0;
427 virtual long double reduce(eReduceType rt,long double v) =0;
428 virtual APReal reduce(eReduceType rt,APReal v) =0;
429 virtual Real2 reduce(eReduceType rt,Real2 v) =0;
430 virtual Real3 reduce(eReduceType rt,Real3 v) =0;
431 virtual Real2x2 reduce(eReduceType rt,Real2x2 v) =0;
432 virtual Real3x3 reduce(eReduceType rt,Real3x3 v) =0;
433 virtual HPReal reduce(eReduceType rt,HPReal v) =0;
435
437
438
449 virtual void computeMinMaxSum(char val,char& min_val,
450 char& max_val,char& sum_val,
451 Int32& min_rank,Int32& max_rank) =0;
452 virtual void computeMinMaxSum(signed char val,signed char& min_val,
453 signed char& max_val,signed char& sum_val,
454 Int32& min_rank,Int32& max_rank) =0;
455 virtual void computeMinMaxSum(unsigned char val,unsigned char& min_val,
456 unsigned char& max_val,unsigned char& sum_val,
457 Int32& min_rank,Int32& max_rank) =0;
458 virtual void computeMinMaxSum(short val,short& min_val,
459 short& max_val,short& sum_val,
460 Int32& min_rank,Int32& max_rank) =0;
461 virtual void computeMinMaxSum(unsigned short val,unsigned short& min_val,
462 unsigned short& max_val,unsigned short& sum_val,
463 Int32& min_rank,Int32& max_rank) =0;
464 virtual void computeMinMaxSum(int val,int& min_val,
465 int& max_val,int& sum_val,
466 Int32& min_rank,Int32& max_rank) =0;
467 virtual void computeMinMaxSum(unsigned int val,unsigned int& min_val,
468 unsigned int& max_val,unsigned int& sum_val,
469 Int32& min_rank,Int32& max_rank) =0;
470 virtual void computeMinMaxSum(long val,long& min_val,
471 long& max_val,long& sum_val,
472 Int32& min_rank,Int32& max_rank) =0;
473 virtual void computeMinMaxSum(unsigned long val,unsigned long& min_val,
474 unsigned long& max_val,unsigned long& sum_val,
475 Int32& min_rank,Int32& max_rank) =0;
476 virtual void computeMinMaxSum(long long val,long long& min_val,
477 long long& max_val,long long& sum_val,
478 Int32& min_rank,Int32& max_rank) =0;
479 virtual void computeMinMaxSum(unsigned long long val,unsigned long long& min_val,
480 unsigned long long& max_val,unsigned long long& sum_val,
481 Int32& min_rank,Int32& max_rank) =0;
482 virtual void computeMinMaxSum(float val,float& min_val,
483 float& max_val,float& sum_val,
484 Int32& min_rank,Int32& max_rank) =0;
485 virtual void computeMinMaxSum(double val,double& min_val,
486 double& max_val,double& sum_val,
487 Int32& min_rank,Int32& max_rank) =0;
488 virtual void computeMinMaxSum(long double val,long double& min_val,
489 long double& max_val,long double& sum_val,
490 Int32& min_rank,Int32& max_rank) =0;
491 virtual void computeMinMaxSum(APReal val,APReal& min_val,
493 Int32& min_rank,Int32& max_rank) =0;
494 virtual void computeMinMaxSum(Real2 val,Real2& min_val,
496 Int32& min_rank,Int32& max_rank) =0;
497 virtual void computeMinMaxSum(Real3 val,Real3& min_val,
499 Int32& min_rank,Int32& max_rank) =0;
500 virtual void computeMinMaxSum(Real2x2 val,Real2x2& min_val,
502 Int32& min_rank,Int32& max_rank) =0;
503 virtual void computeMinMaxSum(Real3x3 val,Real3x3& min_val,
505 Int32& min_rank,Int32& max_rank) =0;
506 virtual void computeMinMaxSum(HPReal val,HPReal& min_val,
508 Int32& min_rank,Int32& max_rank) =0;
510
512
513
527 virtual void computeMinMaxSum(ConstArrayView<signed char> values, ArrayView<signed char> min_values,
530 virtual void computeMinMaxSum(ConstArrayView<unsigned char> values, ArrayView<unsigned char> min_values,
533 virtual void computeMinMaxSum(ConstArrayView<short> values, ArrayView<short> min_values,
536 virtual void computeMinMaxSum(ConstArrayView<unsigned short> values, ArrayView<unsigned short> min_values,
539 virtual void computeMinMaxSum(ConstArrayView<int> values, ArrayView<int> min_values,
542 virtual void computeMinMaxSum(ConstArrayView<unsigned int> values, ArrayView<unsigned int> min_values,
545 virtual void computeMinMaxSum(ConstArrayView<long> values, ArrayView<long> min_values,
548 virtual void computeMinMaxSum(ConstArrayView<unsigned long> values, ArrayView<unsigned long> min_values,
551 virtual void computeMinMaxSum(ConstArrayView<long long> values, ArrayView<long long> min_values,
557 virtual void computeMinMaxSum(ConstArrayView<float> values, ArrayView<float> min_values,
560 virtual void computeMinMaxSum(ConstArrayView<double> values, ArrayView<double> min_values,
563 virtual void computeMinMaxSum(ConstArrayView<long double> values, ArrayView<long double> min_values,
566 virtual void computeMinMaxSum(ConstArrayView<APReal> values, ArrayView<APReal> min_values,
569 virtual void computeMinMaxSum(ConstArrayView<Real2> values, ArrayView<Real2> min_values,
572 virtual void computeMinMaxSum(ConstArrayView<Real3> values, ArrayView<Real3> min_values,
575 virtual void computeMinMaxSum(ConstArrayView<Real2x2> values, ArrayView<Real2x2> min_values,
578 virtual void computeMinMaxSum(ConstArrayView<Real3x3> values, ArrayView<Real3x3> min_values,
581 virtual void computeMinMaxSum(ConstArrayView<HPReal> values, ArrayView<HPReal> min_values,
585
586
588
589
593 virtual void reduce(eReduceType rt,ArrayView<signed char> v) =0;
594 virtual void reduce(eReduceType rt,ArrayView<unsigned char> v) =0;
595 virtual void reduce(eReduceType rt,ArrayView<short> v) =0;
596 virtual void reduce(eReduceType rt,ArrayView<unsigned short> v) =0;
597 virtual void reduce(eReduceType rt,ArrayView<int> v) =0;
598 virtual void reduce(eReduceType rt,ArrayView<unsigned int> v) =0;
599 virtual void reduce(eReduceType rt,ArrayView<long> v) =0;
600 virtual void reduce(eReduceType rt,ArrayView<unsigned long> v) =0;
601 virtual void reduce(eReduceType rt,ArrayView<long long> v) =0;
602 virtual void reduce(eReduceType rt,ArrayView<unsigned long long> v) =0;
603 virtual void reduce(eReduceType rt,ArrayView<float> v) =0;
604 virtual void reduce(eReduceType rt,ArrayView<double> v) =0;
605 virtual void reduce(eReduceType rt,ArrayView<long double> v) =0;
606 virtual void reduce(eReduceType rt,ArrayView<APReal> v) =0;
607 virtual void reduce(eReduceType rt,ArrayView<Real2> v) =0;
608 virtual void reduce(eReduceType rt,ArrayView<Real3> v) =0;
609 virtual void reduce(eReduceType rt,ArrayView<Real2x2> v) =0;
610 virtual void reduce(eReduceType rt,ArrayView<Real3x3> v) =0;
611 virtual void reduce(eReduceType rt,ArrayView<HPReal> v) =0;
613
626 virtual void broadcast(ArrayView<char> send_buf,Int32 rank) =0;
627 virtual void broadcast(ArrayView<signed char> send_buf,Int32 rank) =0;
628 virtual void broadcast(ArrayView<unsigned char> send_buf,Int32 rank) =0;
629 virtual void broadcast(ArrayView<short> send_buf,Int32 rank) =0;
630 virtual void broadcast(ArrayView<unsigned short> send_buf,Int32 rank) =0;
631 virtual void broadcast(ArrayView<int> send_buf,Int32 rank) =0;
632 virtual void broadcast(ArrayView<unsigned int> send_buf,Int32 rank) =0;
633 virtual void broadcast(ArrayView<long> send_buf,Int32 rank) =0;
634 virtual void broadcast(ArrayView<unsigned long> send_buf,Int32 rank) =0;
635 virtual void broadcast(ArrayView<long long> send_buf,Int32 rank) =0;
636 virtual void broadcast(ArrayView<unsigned long long> send_buf,Int32 rank) =0;
637 virtual void broadcast(ArrayView<float> send_buf,Int32 rank) =0;
638 virtual void broadcast(ArrayView<double> send_buf,Int32 rank) =0;
639 virtual void broadcast(ArrayView<long double> send_buf,Int32 rank) =0;
640 virtual void broadcast(ArrayView<APReal> send_buf,Int32 rank) =0;
641 virtual void broadcast(ArrayView<Real2> send_buf,Int32 rank) =0;
642 virtual void broadcast(ArrayView<Real3> send_buf,Int32 rank) =0;
643 virtual void broadcast(ArrayView<Real2x2> send_buf,Int32 rank) =0;
644 virtual void broadcast(ArrayView<Real3x3> send_buf,Int32 rank) =0;
645 virtual void broadcast(ArrayView<HPReal> send_buf,Int32 rank) =0;
646 virtual void broadcastString(String& str,Int32 rank) =0;
647
648 virtual void broadcastSerializer(ISerializer* values,Int32 rank) =0;
657 virtual void broadcastMemoryBuffer(ByteArray& bytes,Int32 rank) =0;
659
672 virtual void send(ConstArrayView<char> values,Int32 rank) =0;
673 virtual void send(ConstArrayView<signed char> values,Int32 rank) =0;
674 virtual void send(ConstArrayView<unsigned char> values,Int32 rank) =0;
675 virtual void send(ConstArrayView<short> values,Int32 rank) =0;
676 virtual void send(ConstArrayView<unsigned short> values,Int32 rank) =0;
677 virtual void send(ConstArrayView<int> values,Int32 rank) =0;
678 virtual void send(ConstArrayView<unsigned int> values,Int32 rank) =0;
679 virtual void send(ConstArrayView<long> values,Int32 rank) =0;
680 virtual void send(ConstArrayView<unsigned long> values,Int32 rank) =0;
681 virtual void send(ConstArrayView<long long> values,Int32 rank) =0;
682 virtual void send(ConstArrayView<unsigned long long> values,Int32 rank) =0;
683 virtual void send(ConstArrayView<float> values,Int32 rank) =0;
684 virtual void send(ConstArrayView<double> values,Int32 rank) =0;
685 virtual void send(ConstArrayView<long double> values,Int32 rank) =0;
686 virtual void send(ConstArrayView<APReal> values,Int32 rank) =0;
687 virtual void send(ConstArrayView<Real2> values,Int32 rank) =0;
688 virtual void send(ConstArrayView<Real3> values,Int32 rank) =0;
689 virtual void send(ConstArrayView<Real2x2> values,Int32 rank) =0;
690 virtual void send(ConstArrayView<Real3x3> values,Int32 rank) =0;
691 virtual void send(ConstArrayView<HPReal> values,Int32 rank) =0;
692
693 virtual void sendSerializer(ISerializer* values,Int32 rank) =0;
698 ARCCORE_DEPRECATED_2019("Use createSendSerializer(Int32 rank) instead")
699 virtual Parallel::Request sendSerializer(ISerializer* values,Int32 rank,ByteArray& bytes) =0;
700
706 virtual ISerializeMessage* createSendSerializer(Int32 rank) =0;
708
710
711
712 virtual void recv(ArrayView<char> values,Int32 rank) =0;
713 virtual void recv(ArrayView<signed char> values,Int32 rank) =0;
714 virtual void recv(ArrayView<unsigned char> values,Int32 rank) =0;
715 virtual void recv(ArrayView<short> values,Int32 rank) =0;
716 virtual void recv(ArrayView<unsigned short> values,Int32 rank) =0;
717 virtual void recv(ArrayView<int> values,Int32 rank) =0;
718 virtual void recv(ArrayView<unsigned int> values,Int32 rank) =0;
719 virtual void recv(ArrayView<long> values,Int32 rank) =0;
720 virtual void recv(ArrayView<unsigned long> values,Int32 rank) =0;
721 virtual void recv(ArrayView<long long> values,Int32 rank) =0;
722 virtual void recv(ArrayView<unsigned long long> values,Int32 rank) =0;
723 virtual void recv(ArrayView<float> values,Int32 rank) =0;
724 virtual void recv(ArrayView<double> values,Int32 rank) =0;
725 virtual void recv(ArrayView<long double> values,Int32 rank) =0;
726 virtual void recv(ArrayView<APReal> values,Int32 rank) =0;
727 virtual void recv(ArrayView<Real2> values,Int32 rank) =0;
728 virtual void recv(ArrayView<Real3> values,Int32 rank) =0;
729 virtual void recv(ArrayView<Real2x2> values,Int32 rank) =0;
730 virtual void recv(ArrayView<Real3x3> values,Int32 rank) =0;
731 virtual void recv(ArrayView<HPReal> values,Int32 rank) =0;
732 virtual void recvSerializer(ISerializer* values,Int32 rank) =0;
734
740 virtual ISerializeMessage* createReceiveSerializer(Int32 rank) =0;
741
746
750 virtual void freeRequests(ArrayView<Parallel::Request> requests) =0;
751
765 virtual Request send(ConstArrayView<char> values,Int32 rank,bool is_blocking) =0;
766 virtual Request send(ConstArrayView<signed char> values,Int32 rank,bool is_blocking) =0;
767 virtual Request send(ConstArrayView<unsigned char> values,Int32 rank,bool is_blocking) =0;
768 virtual Request send(ConstArrayView<short> values,Int32 rank,bool is_blocking) =0;
769 virtual Request send(ConstArrayView<unsigned short> values,Int32 rank,bool is_blocking) =0;
770 virtual Request send(ConstArrayView<int> values,Int32 rank,bool is_blocking) =0;
771 virtual Request send(ConstArrayView<unsigned int> values,Int32 rank,bool is_blocking) =0;
772 virtual Request send(ConstArrayView<long> values,Int32 rank,bool is_blocking) =0;
773 virtual Request send(ConstArrayView<unsigned long> values,Int32 rank,bool is_blocking) =0;
774 virtual Request send(ConstArrayView<long long> values,Int32 rank,bool is_blocking) =0;
775 virtual Request send(ConstArrayView<unsigned long long> values,Int32 rank,bool is_blocking) =0;
776 virtual Request send(ConstArrayView<float> values,Int32 rank,bool is_blocking) =0;
777 virtual Request send(ConstArrayView<double> values,Int32 rank,bool is_blocking) =0;
778 virtual Request send(ConstArrayView<long double> values,Int32 rank,bool is_blocking) =0;
779 virtual Request send(ConstArrayView<APReal> values,Int32 rank,bool is_blocking) =0;
780 virtual Request send(ConstArrayView<Real2> values,Int32 rank,bool is_blocking) =0;
781 virtual Request send(ConstArrayView<Real3> values,Int32 rank,bool is_blocking) =0;
782 virtual Request send(ConstArrayView<Real2x2> values,Int32 rank,bool is_blocking) =0;
783 virtual Request send(ConstArrayView<Real3x3> values,Int32 rank,bool is_blocking) =0;
784 virtual Request send(ConstArrayView<HPReal> values,Int32 rank,bool is_blocking) =0;
786
788
789
790 virtual Request recv(ArrayView<char> values,Int32 rank,bool is_blocking) =0;
791 virtual Request recv(ArrayView<signed char> values,Int32 rank,bool is_blocking) =0;
792 virtual Request recv(ArrayView<unsigned char> values,Int32 rank,bool is_blocking) =0;
793 virtual Request recv(ArrayView<short> values,Int32 rank,bool is_blocking) =0;
794 virtual Request recv(ArrayView<unsigned short> values,Int32 rank,bool is_blocking) =0;
795 virtual Request recv(ArrayView<int> values,Int32 rank,bool is_blocking) =0;
796 virtual Request recv(ArrayView<unsigned int> values,Int32 rank,bool is_blocking) =0;
797 virtual Request recv(ArrayView<long> values,Int32 rank,bool is_blocking) =0;
798 virtual Request recv(ArrayView<unsigned long> values,Int32 rank,bool is_blocking) =0;
799 virtual Request recv(ArrayView<long long > values,Int32 rank,bool is_blocking) =0;
800 virtual Request recv(ArrayView<unsigned long long> values,Int32 rank,bool is_blocking) =0;
801 virtual Request recv(ArrayView<float> values,Int32 rank,bool is_blocking) =0;
802 virtual Request recv(ArrayView<double> values,Int32 rank,bool is_blocking) =0;
803 virtual Request recv(ArrayView<long double> values,Int32 rank,bool is_blocking) =0;
804 virtual Request recv(ArrayView<APReal> values,Int32 rank,bool is_blocking) =0;
805 virtual Request recv(ArrayView<Real2> values,Int32 rank,bool is_blocking) =0;
806 virtual Request recv(ArrayView<Real3> values,Int32 rank,bool is_blocking) =0;
807 virtual Request recv(ArrayView<Real2x2> values,Int32 rank,bool is_blocking) =0;
808 virtual Request recv(ArrayView<Real3x3> values,Int32 rank,bool is_blocking) =0;
809 virtual Request recv(ArrayView<HPReal> values,Int32 rank,bool is_blocking) =0;
811
813
814
815 virtual Request receive(Span<char> values,const PointToPointMessageInfo& message) =0;
816 virtual Request receive(Span<signed char> values,const PointToPointMessageInfo& message) =0;
817 virtual Request receive(Span<unsigned char> values,const PointToPointMessageInfo& message) =0;
818 virtual Request receive(Span<short> values,const PointToPointMessageInfo& message) =0;
819 virtual Request receive(Span<unsigned short> values,const PointToPointMessageInfo& message) =0;
820 virtual Request receive(Span<int> values,const PointToPointMessageInfo& message) =0;
821 virtual Request receive(Span<unsigned int> values,const PointToPointMessageInfo& message) =0;
822 virtual Request receive(Span<long> values,const PointToPointMessageInfo& message) =0;
823 virtual Request receive(Span<unsigned long> values,const PointToPointMessageInfo& message) =0;
824 virtual Request receive(Span<long long> values,const PointToPointMessageInfo& message) =0;
825 virtual Request receive(Span<unsigned long long> values,const PointToPointMessageInfo& message) =0;
826 virtual Request receive(Span<float> values,const PointToPointMessageInfo& message) =0;
827 virtual Request receive(Span<double> values,const PointToPointMessageInfo& message) =0;
828 virtual Request receive(Span<long double> values,const PointToPointMessageInfo& message) =0;
829 virtual Request receive(Span<APReal> values,const PointToPointMessageInfo& message) =0;
830 virtual Request receive(Span<Real2> values,const PointToPointMessageInfo& message) =0;
831 virtual Request receive(Span<Real3> values,const PointToPointMessageInfo& message) =0;
832 virtual Request receive(Span<Real2x2> values,const PointToPointMessageInfo& message) =0;
833 virtual Request receive(Span<Real3x3> values,const PointToPointMessageInfo& message) =0;
834 virtual Request receive(Span<HPReal> values,const PointToPointMessageInfo& message) =0;
835 virtual Request receiveSerializer(ISerializer* values,const PointToPointMessageInfo& message) =0;
837
839
840
841 virtual Request send(Span<const char> values,const PointToPointMessageInfo& message) =0;
842 virtual Request send(Span<const signed char> values,const PointToPointMessageInfo& message) =0;
843 virtual Request send(Span<const unsigned char> values,const PointToPointMessageInfo& message) =0;
844 virtual Request send(Span<const short> values,const PointToPointMessageInfo& message) =0;
845 virtual Request send(Span<const unsigned short> values,const PointToPointMessageInfo& message) =0;
846 virtual Request send(Span<const int> values,const PointToPointMessageInfo& message) =0;
847 virtual Request send(Span<const unsigned int> values,const PointToPointMessageInfo& message) =0;
848 virtual Request send(Span<const long> values,const PointToPointMessageInfo& message) =0;
849 virtual Request send(Span<const unsigned long> values,const PointToPointMessageInfo& message) =0;
850 virtual Request send(Span<const long long> values,const PointToPointMessageInfo& message) =0;
851 virtual Request send(Span<const unsigned long long> values,const PointToPointMessageInfo& message) =0;
852 virtual Request send(Span<const float> values,const PointToPointMessageInfo& message) =0;
853 virtual Request send(Span<const double> values,const PointToPointMessageInfo& message) =0;
854 virtual Request send(Span<const long double> values,const PointToPointMessageInfo& message) =0;
855 virtual Request send(Span<const APReal> values,const PointToPointMessageInfo& message) =0;
856 virtual Request send(Span<const Real2> values,const PointToPointMessageInfo& message) =0;
857 virtual Request send(Span<const Real3> values,const PointToPointMessageInfo& message) =0;
858 virtual Request send(Span<const Real2x2> values,const PointToPointMessageInfo& message) =0;
859 virtual Request send(Span<const Real3x3> values,const PointToPointMessageInfo& message) =0;
860 virtual Request send(Span<const HPReal> values,const PointToPointMessageInfo& message) =0;
861 virtual Request sendSerializer(const ISerializer* values,const PointToPointMessageInfo& message) =0;
863
869 virtual MessageId probe(const PointToPointMessageInfo& message) =0;
870
876 virtual MessageSourceInfo legacyProbe(const PointToPointMessageInfo& message) =0;
877
878 virtual void sendRecv(ConstArrayView<char> send_buf,
879 ArrayView<char> recv_buf,Int32 rank) =0;
880 virtual void sendRecv(ConstArrayView<signed char> send_buf,
881 ArrayView<signed char> recv_buf,Int32 rank) =0;
882 virtual void sendRecv(ConstArrayView<unsigned char> send_buf,
883 ArrayView<unsigned char> recv_buf,Int32 rank) =0;
884 virtual void sendRecv(ConstArrayView<short> send_buf,
885 ArrayView<short> recv_buf,Int32 rank) =0;
886 virtual void sendRecv(ConstArrayView<unsigned short> send_buf,
887 ArrayView<unsigned short> recv_buf,Int32 rank) =0;
888 virtual void sendRecv(ConstArrayView<int> send_buf,
889 ArrayView<int> recv_buf,Int32 rank) =0;
890 virtual void sendRecv(ConstArrayView<unsigned int> send_buf,
891 ArrayView<unsigned int> recv_buf,Int32 rank) =0;
892 virtual void sendRecv(ConstArrayView<long> send_buf,
893 ArrayView<long> recv_buf,Int32 rank) =0;
894 virtual void sendRecv(ConstArrayView<unsigned long> send_buf,
895 ArrayView<unsigned long> recv_buf,Int32 rank) =0;
896 virtual void sendRecv(ConstArrayView<long long> send_buf,
897 ArrayView<long long> recv_buf,Int32 rank) =0;
898 virtual void sendRecv(ConstArrayView<unsigned long long> send_buf,
899 ArrayView<unsigned long long> recv_buf,Int32 rank) =0;
900 virtual void sendRecv(ConstArrayView<float> send_buf,
901 ArrayView<float> recv_buf,Int32 rank) =0;
902 virtual void sendRecv(ConstArrayView<double> send_buf,
903 ArrayView<double> recv_buf,Int32 rank) =0;
904 virtual void sendRecv(ConstArrayView<long double> send_buf,
905 ArrayView<long double> recv_buf,Int32 rank) =0;
906 virtual void sendRecv(ConstArrayView<APReal> send_buf,
907 ArrayView<APReal> recv_buf,Int32 rank) =0;
908 virtual void sendRecv(ConstArrayView<Real2> send_buf,
909 ArrayView<Real2> recv_buf,Int32 rank) =0;
910 virtual void sendRecv(ConstArrayView<Real3> send_buf,
911 ArrayView<Real3> recv_buf,Int32 rank) =0;
912 virtual void sendRecv(ConstArrayView<Real2x2> send_buf,
913 ArrayView<Real2x2> recv_buf,Int32 rank) =0;
914 virtual void sendRecv(ConstArrayView<Real3x3> send_buf,
915 ArrayView<Real3x3> recv_buf,Int32 rank) =0;
916 virtual void sendRecv(ConstArrayView<HPReal> send_buf,
917 ArrayView<HPReal> recv_buf,Int32 rank) =0;
918
919 virtual void allToAll(ConstArrayView<char> send_buf,ArrayView<char> recv_buf,
920 Integer count) =0;
921 virtual void allToAll(ConstArrayView<signed char> send_buf,ArrayView<signed char> recv_buf,
922 Integer count) =0;
923 virtual void allToAll(ConstArrayView<unsigned char> send_buf,ArrayView<unsigned char> recv_buf,
924 Integer count) =0;
925 virtual void allToAll(ConstArrayView<short> send_buf,ArrayView<short> recv_buf,Integer count) =0;
926 virtual void allToAll(ConstArrayView<unsigned short> send_buf,ArrayView<unsigned short> recv_buf,
927 Integer count) =0;
928 virtual void allToAll(ConstArrayView<int> send_buf,ArrayView<int> recv_buf,Integer count) =0;
929 virtual void allToAll(ConstArrayView<unsigned int> send_buf,ArrayView<unsigned int> recv_buf,
930 Integer count) =0;
931 virtual void allToAll(ConstArrayView<long> send_buf,ArrayView<long> recv_buf,Integer count) =0;
932 virtual void allToAll(ConstArrayView<unsigned long> send_buf,ArrayView<unsigned long> recv_buf,
933 Integer count) =0;
934 virtual void allToAll(ConstArrayView<long long> send_buf,ArrayView<long long> recv_buf,
935 Integer count) =0;
936 virtual void allToAll(ConstArrayView<unsigned long long> send_buf,
937 ArrayView<unsigned long long> recv_buf,Integer count) =0;
938 virtual void allToAll(ConstArrayView<float> send_buf,ArrayView<float> recv_buf,
939 Integer count) =0;
940 virtual void allToAll(ConstArrayView<double> send_buf,ArrayView<double> recv_buf,
941 Integer count) =0;
942 virtual void allToAll(ConstArrayView<long double> send_buf,ArrayView<long double> recv_buf,
943 Integer count) =0;
944 virtual void allToAll(ConstArrayView<APReal> send_buf,ArrayView<APReal> recv_buf,
945 Integer count) =0;
946 virtual void allToAll(ConstArrayView<Real2> send_buf,ArrayView<Real2> recv_buf,
947 Integer count) =0;
948 virtual void allToAll(ConstArrayView<Real3> send_buf,ArrayView<Real3> recv_buf,
949 Integer count) =0;
950 virtual void allToAll(ConstArrayView<Real2x2> send_buf,ArrayView<Real2x2> recv_buf,
951 Integer count) =0;
952 virtual void allToAll(ConstArrayView<Real3x3> send_buf,ArrayView<Real3x3> recv_buf,
953 Integer count) =0;
954 virtual void allToAll(ConstArrayView<HPReal> send_buf,ArrayView<HPReal> recv_buf,
955 Integer count) =0;
956
957
963 virtual void allToAllVariable(ConstArrayView<char> send_buf,Int32ConstArrayView send_count,
964 Int32ConstArrayView send_index,ArrayView<char> recv_buf,
965 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
966 virtual void allToAllVariable(ConstArrayView<signed char> send_buf,Int32ConstArrayView send_count,
967 Int32ConstArrayView send_index,ArrayView<signed char> recv_buf,
968 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
969 virtual void allToAllVariable(ConstArrayView<unsigned char> send_buf,Int32ConstArrayView send_count,
970 Int32ConstArrayView send_index,ArrayView<unsigned char> recv_buf,
971 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
972 virtual void allToAllVariable(ConstArrayView<short> send_buf,Int32ConstArrayView send_count,
973 Int32ConstArrayView send_index,ArrayView<short> recv_buf,
974 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
975 virtual void allToAllVariable(ConstArrayView<unsigned short> send_buf,Int32ConstArrayView send_count,
976 Int32ConstArrayView send_index,ArrayView<unsigned short> recv_buf,
977 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
978 virtual void allToAllVariable(ConstArrayView<int> send_buf,Int32ConstArrayView send_count,
979 Int32ConstArrayView send_index,ArrayView<int> recv_buf,
980 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
981 virtual void allToAllVariable(ConstArrayView<unsigned int> send_buf,Int32ConstArrayView send_count,
982 Int32ConstArrayView send_index,ArrayView<unsigned int> recv_buf,
983 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
984 virtual void allToAllVariable(ConstArrayView<long> send_buf,Int32ConstArrayView send_count,
985 Int32ConstArrayView send_index,ArrayView<long> recv_buf,
986 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
987 virtual void allToAllVariable(ConstArrayView<unsigned long> send_buf,Int32ConstArrayView send_count,
988 Int32ConstArrayView send_index,ArrayView<unsigned long> recv_buf,
989 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
990 virtual void allToAllVariable(ConstArrayView<long long> send_buf,Int32ConstArrayView send_count,
991 Int32ConstArrayView send_index,ArrayView<long long> recv_buf,
992 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
993 virtual void allToAllVariable(ConstArrayView<unsigned long long> send_buf,Int32ConstArrayView send_count,
994 Int32ConstArrayView send_index,ArrayView<unsigned long long> recv_buf,
995 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
996 virtual void allToAllVariable(ConstArrayView<float> send_buf,Int32ConstArrayView send_count,
997 Int32ConstArrayView send_index,ArrayView<float> recv_buf,
998 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
999 virtual void allToAllVariable(ConstArrayView<double> send_buf,Int32ConstArrayView send_count,
1000 Int32ConstArrayView send_index,ArrayView<double> recv_buf,
1001 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
1002 virtual void allToAllVariable(ConstArrayView<long double> send_buf,Int32ConstArrayView send_count,
1003 Int32ConstArrayView send_index,ArrayView<long double> recv_buf,
1004 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
1005 virtual void allToAllVariable(ConstArrayView<APReal> send_buf,Int32ConstArrayView send_count,
1006 Int32ConstArrayView send_index,ArrayView<APReal> recv_buf,
1007 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
1008 virtual void allToAllVariable(ConstArrayView<Real2> send_buf,Int32ConstArrayView send_count,
1009 Int32ConstArrayView send_index,ArrayView<Real2> recv_buf,
1010 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
1011 virtual void allToAllVariable(ConstArrayView<Real3> send_buf,Int32ConstArrayView send_count,
1012 Int32ConstArrayView send_index,ArrayView<Real3> recv_buf,
1013 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
1014 virtual void allToAllVariable(ConstArrayView<Real2x2> send_buf,Int32ConstArrayView send_count,
1015 Int32ConstArrayView send_index,ArrayView<Real2x2> recv_buf,
1016 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
1017 virtual void allToAllVariable(ConstArrayView<Real3x3> send_buf,Int32ConstArrayView send_count,
1018 Int32ConstArrayView send_index,ArrayView<Real3x3> recv_buf,
1019 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
1020 virtual void allToAllVariable(ConstArrayView<HPReal> send_buf,Int32ConstArrayView send_count,
1021 Int32ConstArrayView send_index,ArrayView<HPReal> recv_buf,
1022 Int32ConstArrayView recv_count,Int32ConstArrayView recv_index) =0;
1024
1031 virtual void scan(eReduceType rt,ArrayView<char> v) =0;
1032 virtual void scan(eReduceType rt,ArrayView<signed char> v) =0;
1033 virtual void scan(eReduceType rt,ArrayView<unsigned char> v) =0;
1034 virtual void scan(eReduceType rt,ArrayView<short> v) =0;
1035 virtual void scan(eReduceType rt,ArrayView<unsigned short> v) =0;
1036 virtual void scan(eReduceType rt,ArrayView<int> v) =0;
1037 virtual void scan(eReduceType rt,ArrayView<unsigned int> v) =0;
1038 virtual void scan(eReduceType rt,ArrayView<long> v) =0;
1039 virtual void scan(eReduceType rt,ArrayView<unsigned long> v) =0;
1040 virtual void scan(eReduceType rt,ArrayView<long long> v) =0;
1041 virtual void scan(eReduceType rt,ArrayView<unsigned long long> v) =0;
1042 virtual void scan(eReduceType rt,ArrayView<float> v) =0;
1043 virtual void scan(eReduceType rt,ArrayView<double> v) =0;
1044 virtual void scan(eReduceType rt,ArrayView<long double> v) =0;
1045 virtual void scan(eReduceType rt,ArrayView<APReal> v) =0;
1046 virtual void scan(eReduceType rt,ArrayView<Real2> v) =0;
1047 virtual void scan(eReduceType rt,ArrayView<Real3> v) =0;
1048 virtual void scan(eReduceType rt,ArrayView<Real2x2> v) =0;
1049 virtual void scan(eReduceType rt,ArrayView<Real3x3> v) =0;
1050 virtual void scan(eReduceType rt,ArrayView<HPReal> v) =0;
1052
1058 ARCCORE_DEPRECATED_2020("Use createSerializeMessageListRef() instead")
1059 virtual ISerializeMessageList* createSerializeMessageList() =0;
1060
1062 virtual Ref<ISerializeMessageList> createSerializeMessageListRef() =0;
1063
1065
1066
1067 virtual void barrier() =0;
1068
1070 virtual void waitAllRequests(ArrayView<Request> rvalues) =0;
1071
1077 virtual UniqueArray<Integer> waitSomeRequests(ArrayView<Request> rvalues) =0;
1078
1084 virtual UniqueArray<Integer> testSomeRequests(ArrayView<Request> rvalues) =0;
1085
1087
1088
1090
1091
1099 virtual IParallelMng* sequentialParallelMng() =0;
1100 virtual Ref<IParallelMng> sequentialParallelMngRef() =0;
1101
1103
1110 [[deprecated("Y2021: Use Arcane::ParallelMngUtils;:createGetVariablesValuesOperationRef() instead")]]
1111 virtual IGetVariablesValuesParallelOperation* createGetVariablesValuesOperation() =0;
1112
1119 [[deprecated("Y2021: Use Arcane::ParallelMngUtils;:createTransferValuesOperationRef() instead")]]
1120 virtual ITransferValuesParallelOperation* createTransferValuesOperation() =0;
1121
1128 [[deprecated("Y2021: Use Arcane::ParallelMngUtils;:createExchangerRef() instead")]]
1129 virtual IParallelExchanger* createExchanger() =0;
1130
1137 [[deprecated("Y2021: Use Arcane::ParallelMngUtils;:createSynchronizerRef() instead")]]
1138 virtual IVariableSynchronizer* createSynchronizer(IItemFamily* family) =0;
1139
1146 [[deprecated("Y2021: Use Arcane::ParallelMngUtils;:createSynchronizerRef() instead")]]
1147 virtual IVariableSynchronizer* createSynchronizer(const ItemGroup& group) =0;
1148
1156 [[deprecated("Y2021: Use Arcane::ParallelMngUtils;:createTopologyRef() instead")]]
1157 virtual IParallelTopology* createTopology() =0;
1158
1165 virtual IParallelReplication* replication() const =0;
1166
1173 virtual void setReplication(IParallelReplication* v) =0;
1174
1181 ARCCORE_DEPRECATED_2020("Use createSubParallelMngRef() instead")
1183
1199
1203 virtual Ref<Parallel::IRequestList> createRequestListRef() =0;
1204
1206 virtual IStat* stat() =0;
1207
1209 virtual void printStats() =0;
1210
1212 virtual IParallelNonBlockingCollective* nonBlockingCollective() const =0;
1213
1215 virtual IMessagePassingMng* messagePassingMng() const =0;
1216
1217 public:
1218
1220 virtual IParallelMngInternal* _internalApi() =0;
1221
1222 private:
1223
1228 virtual Ref<IParallelMngUtilsFactory> _internalUtilsFactory() const =0;
1229};
1230
1231/*---------------------------------------------------------------------------*/
1232/*---------------------------------------------------------------------------*/
1243{
1245 protected:
1246 virtual ~IParallelMngContainer() = default;
1247 public:
1249 virtual Ref<IParallelMng> _createParallelMng(Int32 local_rank,ITraceMng* tm) =0;
1250};
1251
1252/*---------------------------------------------------------------------------*/
1253/*---------------------------------------------------------------------------*/
1259class ARCANE_CORE_EXPORT IParallelMngContainerFactory
1260{
1261 public:
1262 virtual ~IParallelMngContainerFactory() = default;
1263 public:
1273};
1274
1275/*---------------------------------------------------------------------------*/
1276/*---------------------------------------------------------------------------*/
1277
1278} // End namepsace Arcane
1279
1280/*---------------------------------------------------------------------------*/
1281/*---------------------------------------------------------------------------*/
1282
1283#endif
Fichier contenant les déclarations concernant le modèle de programmation par échange de message.
#define ARCCORE_DECLARE_REFERENCE_COUNTED_INCLASS_METHODS()
Macro pour déclarer les méthodes virtuelles gérant les compteurs de référence.
Déclarations des types utilisés dans Arcane.
Tableau d'items de types quelconques.
Classe implémentant un réel Haute Précision.
Definition HPReal.h:161
Opérations pour accéder aux valeurs de variables d'un autre sous-domaine.
Interface du gestionnaire des entrées sorties.
Definition IIOMng.h:42
Interface d'une famille d'entités.
Echange d'informations entre processeurs.
Interface d'une fabrique de conteneur de 'IParallelMng'.
virtual Ref< IParallelMngContainer > _createParallelMngBuilder(Int32 nb_local_rank, Parallel::Communicator communicator)=0
Créé un conteneur pour nb_local_rank rangs locaux et avec comme communicateur communicator.
Interface d'un conteneur de 'IParallelMng'.
virtual Ref< IParallelMng > _createParallelMng(Int32 local_rank, ITraceMng *tm)=0
Créé le IParallelMng pour le rang local local_rank.
Partie interne de IParallelMng.
Interface d'une fabrique pour les fonctions utilitaires de IParallelMng.
Interface du gestionnaire de parallélisme pour un sous-domaine.
virtual void gatherVariable(ConstArrayView< char > send_buf, Array< char > &recv_buf, Int32 rank)=0
Effectue un regroupement sur tous les processeurs.
virtual bool isThreadImplementation() const =0
Indique si l'implémentation utilise les threads.
virtual ITraceMng * traceMng() const =0
Gestionnaire de traces.
virtual void computeMinMaxSum(char val, char &min_val, char &max_val, char &sum_val, Int32 &min_rank, Int32 &max_rank)=0
Calcule en une opération la somme, le min, le max d'une valeur.
virtual Int32 commRank() const =0
Rang de cette instance dans le communicateur.
virtual void computeMinMaxSum(ConstArrayView< char > values, ArrayView< char > min_values, ArrayView< char > max_values, ArrayView< char > sum_values, ArrayView< Int32 > min_ranks, ArrayView< Int32 > max_ranks)=0
Calcule en une opération la somme, le min, le max d'une valeur.
virtual ITimeStats * timeStats() const =0
Gestionnaire de statistiques associé (peut être nul)
virtual ~IParallelMng()=default
Libère les ressources.
virtual void broadcastMemoryBuffer(ByteArray &bytes, Int32 rank)=0
Effectue un broadcast d'une zone mémoire.
virtual void reduce(eReduceType rt, ArrayView< char > v)=0
Effectue la réduction de type rt sur le tableau v.
virtual ITimeMetricCollector * timeMetricCollector() const =0
Collecteur Arccore des statistiques temporelles (peut être nul)
virtual void allGatherVariable(ConstArrayView< char > send_buf, Array< char > &recv_buf)=0
Effectue un regroupement sur tous les processeurs.
virtual bool isMasterIO() const =0
true si l'instance est un gestionnaire maître des entrées/sorties.
virtual Int32 commSize() const =0
Nombre d'instance dans le communicateur.
virtual void scatterVariable(ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Integer root)=0
Scinde un tableau sur plusieurs processeurs.
virtual bool isHybridImplementation() const =0
Indique si l'implémentation utilise le mode hybride.
virtual void 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 IIOMng * ioMng() const =0
Gestionnaire des entrées/sorties.
virtual IThreadMng * threadMng() const =0
Gestionnaire de threads.
virtual void build()=0
Construit l'instance.
virtual ARCANE_DEPRECATED Integer subDomainId() const final
Numéro du sous-domaine associé à ce gestionnaire.
virtual void initialize()=0
Initialise le gestionnaire du parallélisme.
virtual Parallel::Communicator communicator() const =0
Communicateur MPI associé à ce gestionnaire.
virtual ARCANE_DEPRECATED Integer nbSubDomain() const final
Nombre total de sous-domaines.
virtual IParallelMng * worldParallelMng() const =0
Gestionnaire de parallélisme sur l'ensemble des ressources allouées.
virtual void gather(ConstArrayView< char > send_buf, ArrayView< char > recv_buf, Int32 rank)=0
Effectue un regroupement sur un processeurs. Il s'agit d'une opération collective....
virtual ITimerMng * timerMng() const =0
Gestionnaire de timers.
virtual Integer masterIORank() const =0
Rang de l'instance gérant les entrées/sorties (pour laquelle isMasterIO() est vrai)
virtual bool isParallel() const =0
Retourne true si l'exécution est parallèle.
virtual void * getMPICommunicator()=0
Adresse du communicateur MPI associé à ce gestionnaire.
virtual void setTimeStats(ITimeStats *time_stats)=0
Positionne le gestionnaire de statistiques.
virtual char reduce(eReduceType rt, char v)=0
Effectue la réduction de type rt sur le réel v et retourne la valeur.
Interface des opérations parallèles collectives non bloquantes.
Informations sur la réplication des sous-domaines en parallèle.
Informations sur la topologie d'allocation des coeurs de calcul.
Interface d'un gestionnaire de thread.
Definition IThreadMng.h:30
Interface gérant les statistiques sur les temps d'exécution.
Definition ITimeStats.h:48
Interface d'un gestionnaire de timer.
Definition ITimerMng.h:53
Envoie de valeurs sur différents processeurs.
Interface d'un service de synchronisation de variable.
Groupe d'entités de maillage.
Definition ItemGroup.h:49
Vue typée sur une liste d'entités d'une connectivité.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Classe ' friend' de IParallelMng permettant d'accéder à IParallelMng::_internalUtilsFactory() const;.
Statistiques sur le parallélisme.
Classe gérant un vecteur de réel de dimension 2.
Definition Real2.h:121
Classe gérant une matrice de réel de dimension 2x2.
Definition Real2x2.h:53
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
Classe gérant une matrice de réel de dimension 3x3.
Definition Real3x3.h:66
Emulation de réel en précision arbitraire.
Vue modifiable d'un tableau d'un type T.
Vue constante d'un tableau de type T.
Interface gérant les statistiques sur l'exécution.
Interface du gestionnaire de traces.
Communicateur pour l'échange de message.
Interface du gestionnaire des échanges de messages.
Informations sur la source d'un message.
Informations pour envoyer/recevoir un message point à point.
Requête d'un message.
Definition Request.h:77
Référence à une instance.
Vue d'un tableau d'éléments de type T.
Definition Span.h:510
Chaîne de caractères unicode.
Vecteur 1D de données avec sémantique par valeur (style STL).
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eReduceType
Types des réductions supportées.