Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
IAcceleratorMng.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/* IAcceleratorMng.h (C) 2000-2024 */
9/* */
10/* Interface du gestionnaire des accélérateurs. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ACCELERATOR_CORE_IACCELERATORMNG_H
13#define ARCANE_ACCELERATOR_CORE_IACCELERATORMNG_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane::Accelerator
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27/*!
28 * \brief Interface du gestionnaire des accélérateurs.
29 *
30 * Cette interface permet de récupérer une instance de Runner et RunQueue
31 * associée à un contexte. Il faut appeler initialize() pour créer ces deux
32 * instances qu'il est ensuite possible de récupérer via runner() ou queue().
33 *
34 * Il est nécessaire d'appeler initialize() avant de pouvoir accéder aux
35 * méthodes telles que defaultRunner() ou defaultQueue().
36 */
37class ARCANE_ACCELERATOR_CORE_EXPORT IAcceleratorMng
38{
39 public:
40
41 virtual ~IAcceleratorMng() = default;
42
43 public:
44
45 /*!
46 * \brief Initialise l'instance.
47 *
48 * \pre isInitialized()==false
49 */
50 virtual void initialize(const AcceleratorRuntimeInitialisationInfo& runtime_info) =0;
51
52 //! Indique si l'instance a été initialisée via l'appel à initialize()
53 virtual bool isInitialized() const =0;
54
55 /*!
56 * \brief Exécuteur par défaut.
57 *
58 * \note Cette méthode sera à terme obsolète.. Il est préférable d'utiliser
59 * la méthode runner() à la place car elle est toujours valide.
60 *
61 * Le pointeur retourné reste la propriété de cette instance.
62 *
63 * \pre isInitialized()==true
64 */
65 virtual Runner* defaultRunner() =0;
66
67 /*!
68 * \brief File d'exécution par défaut.
69 *
70 * Le pointeur retourné reste la propriété de cette instance.
71 *
72 * \note Cette méthode sera à terme obsolète.. Il est préférable d'utiliser
73 * la méthode queue() à la place car elle est toujours valide.
74 *
75 * * \pre isInitialized()==true
76 */
77 virtual RunQueue* defaultQueue() =0;
78
79 public:
80
81 /*!
82 * \brief Exécuteur associé à l'instance.
83 *
84 * Si l'instance a été initialisée, retourne *defaultRunner().
85 * Sinon, retourne une instance de Runner nulle.
86 */
87 virtual Runner runner() = 0;
88
89 /*!
90 * \brief File d'exécution associée à l'instance.
91 *
92 * Si l'instance a été initialisée, retourne *defaultQueue().
93 * Sinon, retourne une file nulle.
94 */
95 virtual RunQueue queue() = 0;
96};
97
98/*---------------------------------------------------------------------------*/
99/*---------------------------------------------------------------------------*/
100
101} // End namespace Arcane
102
103/*---------------------------------------------------------------------------*/
104/*---------------------------------------------------------------------------*/
105
106#endif
Interface du gestionnaire des accélérateurs.
virtual void initialize(const AcceleratorRuntimeInitialisationInfo &runtime_info)=0
Initialise l'instance.
virtual Runner runner()=0
Exécuteur associé à l'instance.
virtual bool isInitialized() const =0
Indique si l'instance a été initialisée via l'appel à initialize()
virtual RunQueue queue()=0
File d'exécution associée à l'instance.
virtual RunQueue * defaultQueue()=0
File d'exécution par défaut.
virtual Runner * defaultRunner()=0
Exécuteur par défaut.
File d'exécution pour un accélérateur.
Gestionnaire d'exécution pour accélérateur.
Definition core/Runner.h:53
Espace de nom pour l'utilisation des accélérateurs.