Classe de gestion de l'exécution. Plus de détails...
#include <arcane/launcher/ArcaneLauncher.h>
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 ApplicationInfo & | applicationInfo () |
Informations sur l'application. | |
static ApplicationBuildInfo & | applicationBuildInfo () |
Informations sur les paramêtre d'exécutions de l'application. | |
static DotNetRuntimeInitialisationInfo & | dotNetRuntimeInitialisationInfo () |
Informations pour l'initialisation du runtime '.Net'. | |
static AcceleratorRuntimeInitialisationInfo & | acceleratorRuntimeInitialisationInfo () |
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 |
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:
L'usage classique est le suivant:
L
Définition à la ligne 83 du fichier ArcaneLauncher.h.
|
staticprivate |
Définition à la ligne 369 du fichier ArcaneLauncher.cc.
|
staticprivate |
Définition à la ligne 407 du fichier ArcaneLauncher.cc.
|
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().
|
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().
|
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().
|
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.
|
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.
|
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().
|
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().
|
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().
|
static |
Indique si init() a déjà été appelé.
Définition à la ligne 351 du fichier ArcaneLauncher.cc.
|
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.
0 | en cas de succès |
Définition à la ligne 111 du fichier ArcaneLauncher.cc.
Références Arcane::ArcaneMain::run().
|
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.
|
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().
|
static |
Définition à la ligne 199 du fichier ArcaneLauncher.cc.
|
inlinestatic |
Définition à la ligne 227 du fichier ArcaneLauncher.h.
|
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().
|
private |
Définition à la ligne 85 du fichier ArcaneLauncher.h.