Arcane  v4.1.7.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
AcceleratorInitializer.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/* AcceleratorInitializer.h (C) 2000-2026 */
9/* */
10/* Initialiseur pour un runtime-accélérator. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_ACCELERATOR_ACCELERATORINITIALIZER_H
13#define ARCCORE_ACCELERATOR_ACCELERATORINITIALIZER_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arccore/accelerator/AcceleratorGlobal.h"
18
19#include <memory>
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane::Accelerator
25{
26class Initializer;
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30/*!
31 * \brief Classe pour initialiser un runtime pour l'API accélérateur.
32 *
33 * \warning API expérimentatle en cours de définition.
34 *
35 * Une seule instance de cette classe peut exister à un moment donné.
36 */
37class ARCCORE_ACCELERATOR_EXPORT AcceleratorInitializer
38{
39 public:
40
41 //! Initialise un runtime séquentiel
43
44 /*!
45 * \brief Initialise un runtime.
46 *
47 * Si \a use_accelerator est vrai, on initialise le runtime accélérateur
48 * utilisé pour compiler Arcane. Dans ce cas executionPolicy() retournera
49 * ce runtime.
50 *
51 * Si \a nb_thread est supérieur à 1, alors on initialise aussi le
52 * runtime multi-thread.
53 */
54 explicit AcceleratorInitializer(bool use_accelerator, Int32 nb_thread = 1);
55
57
58 public:
59
62 AcceleratorInitializer& operator=(const AcceleratorInitializer&) = delete;
64
65 public:
66
67 //! Politique d'exécution initialisée par défaut
69
70 //! Gestionnaire de trace associé
71 ITraceMng* traceMng() const;
72
73 private:
74
75 std::unique_ptr<Initializer> m_initializer;
76};
77
78/*---------------------------------------------------------------------------*/
79/*---------------------------------------------------------------------------*/
80
81} // namespace Arcane::Accelerator
82
83/*---------------------------------------------------------------------------*/
84/*---------------------------------------------------------------------------*/
85
86#endif
eExecutionPolicy executionPolicy() const
Politique d'exécution initialisée par défaut.
ITraceMng * traceMng() const
Gestionnaire de trace associé
AcceleratorInitializer()
Initialise un runtime séquentiel.
Interface du gestionnaire de traces.
Espace de nom pour l'utilisation des accélérateurs.
eExecutionPolicy
Politique d'exécution pour un Runner.
std::int32_t Int32
Type entier signé sur 32 bits.