Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
Référence de la classe Arcane::ArcaneLauncher

Classe de gestion de l'exécution. Plus de détails...

#include <arcane/launcher/ArcaneLauncher.h>

+ Graphe de collaboration de Arcane::ArcaneLauncher:

Fonctions membres publiques statiques

static void init (const CommandLineArguments &args)
 Positionne les informations à partir des arguments de la ligne de commande et initialise le lanceur.
 
static bool isInitialized ()
 Indique si init() a déjà été appelé.
 
static int run ()
 Point d'entrée de l'exécutable dans Arcane.
 
static int run (std::function< int(DirectExecutionContext &)> func)
 Exécution directe.
 
static int run (std::function< int(DirectSubDomainExecutionContext &)> func)
 Exécution directe avec création de sous-domaine.
 
static void setDefaultMainFactory (IMainFactory *mf)
 Positionne la fabrique par défaut pour créer les différents gestionnaires.
 
static ApplicationInfoapplicationInfo ()
 Informations sur l'application.
 
static ApplicationBuildInfoapplicationBuildInfo ()
 Informations sur les paramêtre d'exécutions de l'application.
 
static DotNetRuntimeInitialisationInfodotNetRuntimeInitialisationInfo ()
 Informations pour l'initialisation du runtime '.Net'.
 
static AcceleratorRuntimeInitialisationInfoacceleratorRuntimeInitialisationInfo ()
 Informations pour l'initialisation des accélerateurs.
 
static String getExeDirectory ()
 Nom complet du répertoire où se trouve l'exécutable.
 
static StandaloneAcceleratorMng createStandaloneAcceleratorMng ()
 Créé une implémentation autonome pour gérer les accélérateurs.
 
static StandaloneSubDomain createStandaloneSubDomain (const String &case_file_name)
 Créé une implémentation autonome pour gérer un sous-domaine.
 
static int runDirect (std::function< int(IDirectExecutionContext *)> func)
 
static void setCommandLineArguments (const CommandLineArguments &args)
 

Fonctions membres privées statiques

static void _initStandalone ()
 
static void _notifyRemoveStandaloneSubDomain ()
 

Attributs privés

friend StandaloneSubDomain
 

Description détaillée

Classe de gestion de l'exécution.

Il existe deux modes d'utilisation d'Arcane : le mode classique et le mode autonome.

Quel que soit le mode retenu, la première chose à faire est d'initialiser Arcane en positionnant les arguments via la méthode init() car certains paramètres de la ligne de commande sont utilisés pour remplir les propriétés de applicationInfo() et dotNetRuntimeInitialisationInfo().

La page arcanedoc_execution_launcher donne des exemples d'usage.

Les deux modes d'éxécutions sont:

  • le mode classique qui utilise une boucle en temps et donc l'exécution complète sera gérée par Arcane. Dans mode il suffit d'appeler la méthode run() sans arguments.
  • le mode autonome qui permet d'utiliser Arcane sous la forme d'une bibliothèque. Pour ce mode il faut utiliser la méthode createStandaloneSubDomain() ou createStandaloneAcceleratorMng(). La page arcanedoc_execution_direct_execution décrit comment utiliser ce mécanisme.

L'usage classique est le suivant:

int main(int* argc,char* argv[])
{
app_info.setCodeName("MyCode");
app_info.setCodeVersion(VersionInfo(1,0,0));
}
static int run()
Point d'entrée de l'exécutable dans Arcane.
static void init(const CommandLineArguments &args)
Positionne les informations à partir des arguments de la ligne de commande et initialise le lanceur.
static ApplicationInfo & applicationInfo()
Informations sur l'application.
Arguments de la ligne de commande.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Informations sur une version.
Definition VersionInfo.h:46

L

Définition à la ligne 83 du fichier ArcaneLauncher.h.

Documentation des fonctions membres

◆ _initStandalone()

void Arcane::ArcaneLauncher::_initStandalone ( )
staticprivate

Définition à la ligne 369 du fichier ArcaneLauncher.cc.

◆ _notifyRemoveStandaloneSubDomain()

void Arcane::ArcaneLauncher::_notifyRemoveStandaloneSubDomain ( )
staticprivate

Définition à la ligne 407 du fichier ArcaneLauncher.cc.

◆ acceleratorRuntimeInitialisationInfo()

AcceleratorRuntimeInitialisationInfo & Arcane::ArcaneLauncher::acceleratorRuntimeInitialisationInfo ( )
static

Informations pour l'initialisation des accélerateurs.

Pour être prise en compte, ces informations doivent être modifiées avant l'appel à run() ou à rundDirect().

Définition à la ligne 138 du fichier ArcaneLauncher.cc.

Références Arcane::ArcaneMain::defaultAcceleratorRuntimeInitialisationInfo().

Référencé par init().

◆ applicationBuildInfo()

ApplicationBuildInfo & Arcane::ArcaneLauncher::applicationBuildInfo ( )
static

Informations sur les paramêtre d'exécutions de l'application.

Cette méthode permet de récupérer l'instance de ApplicationBuildInfo qui sera utilisée lors de l'appel à run().

Pour être prise en compte, ces informations doivent être modifiées avant l'appel à run() ou à runDirect().

Définition à la ligne 147 du fichier ArcaneLauncher.cc.

Références Arcane::ArcaneMain::defaultApplicationBuildInfo().

Référencé par run().

◆ applicationInfo()

ApplicationInfo & Arcane::ArcaneLauncher::applicationInfo ( )
static

Informations sur l'application.

Cette méthode permet de récupérer l'instance de ApplicationInfo qui sera utilisée lors de l'appel à run().

Pour être prise en compte, ces informations doivent être modifiées avant l'appel à run() ou à runDirect().

Définition à la ligne 120 du fichier ArcaneLauncher.cc.

Références Arcane::ArcaneMain::defaultApplicationInfo().

Référencé par init().

◆ createStandaloneAcceleratorMng()

StandaloneAcceleratorMng Arcane::ArcaneLauncher::createStandaloneAcceleratorMng ( )
static

Créé une implémentation autonome pour gérer les accélérateurs.

Il faut appeler init() avant d'appeler cette méthode. Le choix du runtime (Arcane::Accelerator::eExecutionPolicy) est déterminé par les arguments utilisés lors de l'appel à init() ou spécifiés via acceleratorRuntimeInitialisationInfo() (voir arcanedoc_parallel_accelerator_exec pour plus d'informations)

Définition à la ligne 382 du fichier ArcaneLauncher.cc.

◆ createStandaloneSubDomain()

StandaloneSubDomain Arcane::ArcaneLauncher::createStandaloneSubDomain ( const String case_file_name)
static

Créé une implémentation autonome pour gérer un sous-domaine.

Une seule instance de StandaloneSubDomain est autorisée. Si on appelle cette méthode plus d'une fois cela génère une exception.

Il faut appeler init() avant d'appeler cette méthode.

Si on appelle cette méthode il ne faut pas appeler d'autres méthodes d'exécution de ArcaneLauncher (par exemple ArcaneLauncher::run()).

case_file_name est le nom du fichier contenant le jeu de données Si nul, alors il n'y a pas de jeu de données.

Définition à la ligne 392 du fichier ArcaneLauncher.cc.

Références ARCANE_FATAL.

◆ dotNetRuntimeInitialisationInfo()

DotNetRuntimeInitialisationInfo & Arcane::ArcaneLauncher::dotNetRuntimeInitialisationInfo ( )
static

Informations pour l'initialisation du runtime '.Net'.

Pour être prise en compte, ces informations doivent être modifiées avant l'appel à run() ou à rundDirect().

Définition à la ligne 129 du fichier ArcaneLauncher.cc.

Références Arcane::ArcaneMain::defaultDotNetRuntimeInitialisationInfo().

Référencé par init().

◆ getExeDirectory()

String Arcane::ArcaneLauncher::getExeDirectory ( )
static

Nom complet du répertoire où se trouve l'exécutable.

Définition à la ligne 156 du fichier ArcaneLauncher.cc.

Références Arcane::platform::getExeFullPath().

◆ init()

void Arcane::ArcaneLauncher::init ( const CommandLineArguments args)
static

Positionne les informations à partir des arguments de la ligne de commande et initialise le lanceur.

Cette méthode remplit les valeurs non initialisées de applicationInfo() et dotNetRuntimeInitialisationInfo() avec les paramètres spécifiés dans args.

Il ne faut appeler cette méthode qu'une seule fois. Les appels supplémentaires génèrent une exception FatalErrorException.

Définition à la ligne 318 du fichier ArcaneLauncher.cc.

Références acceleratorRuntimeInitialisationInfo(), applicationInfo(), ARCANE_FATAL, dotNetRuntimeInitialisationInfo(), Arcane::CommandLineArguments::parameters(), et Arcane::TaskFactory::setDefaultParallelLoopOptions().

◆ isInitialized()

bool Arcane::ArcaneLauncher::isInitialized ( )
static

Indique si init() a déjà été appelé.

Définition à la ligne 351 du fichier ArcaneLauncher.cc.

◆ run() [1/3]

int Arcane::ArcaneLauncher::run ( )
static

Point d'entrée de l'exécutable dans Arcane.

Cette méthode appelle initialise l'application, lit le jeu de données et exécute le code suivant la boucle en temps spécifiée dans le jeu de donnée.

Valeurs retournées
0en cas de succès
Renvoie
une valeur différente de 0 en cas d'erreur.

Définition à la ligne 111 du fichier ArcaneLauncher.cc.

Références Arcane::ArcaneMain::run().

◆ run() [2/3]

int Arcane::ArcaneLauncher::run ( std::function< int(DirectExecutionContext &)>  func)
static

Exécution directe.

Initialise l'application et appelle la fonction func après l'initialisation Cette méthode ne doit être appelée qu'en exécution séquentielle.

Définition à la ligne 223 du fichier ArcaneLauncher.cc.

◆ run() [3/3]

int Arcane::ArcaneLauncher::run ( std::function< int(DirectSubDomainExecutionContext &)>  func)
static

Exécution directe avec création de sous-domaine.

Initialise l'application et créé le ou les sous-domaines et appelle la fonction func après. Cette méthode permet d'exécuter du code sans passer par les mécanismes de la boucle en temps. Cette méthode permet de gérer automatiquement la création des sous-domaines en fonction des paramètres de lancement (exécution parallèle MPI, multithreading, ...).

Définition à la ligne 272 du fichier ArcaneLauncher.cc.

Références applicationBuildInfo().

◆ runDirect()

int Arcane::ArcaneLauncher::runDirect ( std::function< int(IDirectExecutionContext *)>  func)
static
Obsolète:

Définition à la ligne 199 du fichier ArcaneLauncher.cc.

◆ setCommandLineArguments()

static void Arcane::ArcaneLauncher::setCommandLineArguments ( const CommandLineArguments args)
inlinestatic
Obsolète:

Définition à la ligne 227 du fichier ArcaneLauncher.h.

◆ setDefaultMainFactory()

void Arcane::ArcaneLauncher::setDefaultMainFactory ( IMainFactory mf)
static

Positionne la fabrique par défaut pour créer les différents gestionnaires.

Cette méthode doit être appelée avant run(). L'instance passée en argument doit rester valide durant l'exécution de run(). L'appelant reste propriétaire de l'instance.

Définition à la ligne 360 du fichier ArcaneLauncher.cc.

Références Arcane::ArcaneMain::setDefaultMainFactory().

Documentation des données membres

◆ StandaloneSubDomain

friend Arcane::ArcaneLauncher::StandaloneSubDomain
private

Définition à la ligne 85 du fichier ArcaneLauncher.h.


La documentation de cette classe a été générée à partir des fichiers suivants :