Les variables d'environnements suivantes permettent de modifier le comportement à l'exécution :
Variable | Description |
---|---|
ARCANE_PARALLEL_SERVICE (obsolète) | Nom du service utilisé pour gérer le parallélisme. Cette variable doit être positionnée si on souhaite un modèle d'exécution parallèle spécifique. Les valeurs possibles sont : Mpi ou Sequential . Le mode Mpi provoque l'appel à MPI_Init() et il faut donc que le programme soit lancé par le lanceur mpi de la plateforme (par exemple mpiexec , mpirun , prun , ...). Cette variable ne doit plus être utilisée car Arcane détecte automatiquement le lancement avec MPI. Si on souhaite surcharger le service de parallélisme, il faut le spécifier dans les arguments de la ligne de commande (voir Lancement d'un calcul) |
ARCANE_CHECK | Si définie, ajoute des tests de vérification de la validité des opérations effectuées. Cela est utile si le code plante dans une méthode Arcane. Il est possible de relancer le code avec cette variable pour espérer détecter la cause de l'erreur. La version 'check' de Arcane inclut automatiquement ces tests ainsi que d'autres tests plus coûteux comme les débordements de tableau. |
ARCANE_PAUSE_ON_ERROR | Si définie, met le code en pause en cas d'erreur détectée par Arcane, comme une exception fatale ou un débordement de tableau. |
ARCANE_PROFILING | Nom du service utiliser pour avoir des informations de profiling. Positionner cette option active le profiling. Cela permet en fin d'exécution d'avoir les temps passés dans chaque fonction. Les deux valeurs supportées sont 'Papi' et 'Prof'. Pour 'Papi', la bibliothèque 'papi' doit avoir être installée et le noyau linux compatible. 'Prof' utilise les signaux du système. |
ARCANE_PROFILING_PERIOD | Nombre de cycles CPU entre deux échantillons de profiling. Cette variable n'est utilisée que si le profiling est actif avec 'Papi'. Une valeur correcte est 500000, ce qui sur une machine à 3Ghz fait environ 6000 évènements par seconde. |
ARCANE_PROFILING_ONLYFLOPS | Si vrai, utilise uniquement le profiling pour déterminer le nombre d'opérations flottantes effectuées. Il faut bien noter qu'il s'agit du nombre d'instructions et pas du nombre d'opérations. Sur certaines machines comme les Itaniums, une instruction peut effectuer deux opérations (multiplication+addition). Cette option n'est disponible que si le profiling est actif avec l'option 'Papi'. |
ARCANE_LOOP_PROFILING_LEVEL | (version 3.8+). Entier indiquant le niveau de profiling des boucles. Positionner avec une valeur supérieure ou égale 1 active les traces des boucles basées sur les macros fournies par Arcane telles que les ENUMERATE_() (ENUMERATE_CELL(), ENUMERATE_NODE(), ...), et les RUNCOMMAND (RUNCOMMAND_LOOP(), RUNCOMMAND_ENUMERATE()). En fin de calcul le temps passé dans chaque boucle sera écrit dans le listing et dans des fichiers. |
ARCANE_MESSAGE_PASSING_PROFILING | Permet d'activer le profiling interne pour les opérations de message passing. Les valeurs possibles sont :
|
ARCANE_REDIRECT_SIGNALS | Active (TRUE) ou désactive (FALSE) la redirection des signaux par Arcane. Cette redirection est active par défaut dans Arcane et permet d'afficher la pile d'appel notamment en cas de plantage. Néanmoins, cela peut interférer avec d'autres bibliothèques et il est donc possible de désactiver la redirection des signaux. |
ARCANE_PARALLEL_OUTPUT | Active (TRUE) ou désactive (FALSE) les sorties listings de tous les sous-domaines en parallèle. Chaque sous-domaine écrira les informations de listing dans le fichier 'output::x' avec #x le numéro du sous-domaine. |
ARCANE_TRACE_VARIABLE_CREATION | Si définie, récupère la pile d'appel de chaque création de référence à une variable. Ces informations sont ensuite affichées en fin d'exécution afin de connaître les variables qui n'ont pas été désallouées. A noter que cela peut ralentir sensiblement une exécution. |
STDENV_VERIF, STDENV_VERIF_ENTRYPOINT, STDENV_VERIF_PATH, STDENV_VERIF_SKIP_GHOSTS | Voir la rubrique Comparaison bit à bit |
ARCANE_CHECK_MEMORY, ARCANE_CHECK_MEMORY_BLOCK_SIZE | Voir la rubrique Détection des problèmes mémoire. Cela ne fonctionne qu'avec certaines versions de Linux et la glibc. Ce mécanisme utilise des fonctionnalités obsolètes de la glibc et n'est donc pas disponible avec des versions récentes (>2021) de la glibc. Notamment, ubuntu 22.04 ne supporte pas ce mécanisme. |
ARCANE_DATA_INIT_POLICY | Permet de spécifier la politique d'initialisation des variables. L'utilisation de cette variable revient à appeler la méthode Arcane::setGlobalDataInitialisationPolicy(). Les valeurs possibles sont :
|
ARCANE_LISTENER_TIMEOUT | todo |
ARCANE_GDB_STACK | todo |