Arcane  4.1.12.0
Developer documentation
Loading...
Searching...
No Matches
IParallelNonBlockingCollectiveDispatch.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 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 for non-blocking collectives for a given type. */
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
33template <class Type>
35{
36 public:
37
38 typedef Parallel::Request Request;
39 typedef Parallel::eReduceType eReduceType;
40
41 public:
42
44 virtual void finalize() = 0;
45
46 public:
47
48 virtual Request broadcast(ArrayView<Type> send_buf, Integer sub_domain) = 0;
49 virtual Request allGather(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf) = 0;
50 virtual Request allGatherVariable(ConstArrayView<Type> send_buf, Array<Type>& recv_buf) = 0;
51 virtual Request gather(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf, Integer rank) = 0;
52 virtual Request gatherVariable(ConstArrayView<Type> send_buf, Array<Type>& recv_buf, Integer rank) = 0;
53 virtual Request scatterVariable(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf, Integer root) = 0;
54 virtual Request allToAll(ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf, Integer count) = 0;
55 virtual Request allToAllVariable(ConstArrayView<Type> send_buf, Int32ConstArrayView send_count,
56 Int32ConstArrayView send_index, ArrayView<Type> recv_buf,
57 Int32ConstArrayView recv_count, Int32ConstArrayView recv_index) = 0;
58 virtual Request allReduce(eReduceType op, ConstArrayView<Type> send_buf, ArrayView<Type> recv_buf) = 0;
59};
60
61/*---------------------------------------------------------------------------*/
62/*---------------------------------------------------------------------------*/
63
64} // namespace Arcane
65
66/*---------------------------------------------------------------------------*/
67/*---------------------------------------------------------------------------*/
68
69#endif
Declarations of Arcane's general types.
File containing declarations concerning the message passing model.
Modifiable view of an array of type T.
Base class for 1D data vectors.
Constant view of an array of type T.
Interface for non-blocking collectives for the type Type.
eReduceType
Supported reduction types.
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --
Int32 Integer
Type representing an integer.
ConstArrayView< Int32 > Int32ConstArrayView
C equivalent of a 1D array of 32-bit integers.
Definition UtilsTypes.h:482