Notions générales ================= .. _U1.04.00_Notions_generales: Voici quelques définitions et informations que l'on utilisera dans les sections suivantes : Serveur ------- Il existe deux types de serveurs utilisés dans le cadre de l’exécution de code_aster : * Serveur de calcul : machine sur laquelle sont installés les services nécessaires à l’exécution des calculs. On peut y accéder pour lancer des calculs, consulter les résultats et manipuler les fichiers nécessaires à l'exécution. * Serveur de fichiers : machine utilisée uniquement pour stocker et accéder aux fichiers nécessaires aux calculs, sans possibilité d'exécution directe sur celle-ci. Dans la suite de ce document, nous distinguerons deux catégories de serveurs selon leur localisation par rapport à l'utilisateur : * Serveur local : il s’agit de la machine sur laquelle l’utilisateur travaille directement. Par défaut, cette machine peut être utilisée comme serveur de fichiers, car ses informations de connexion sont déjà connues. Toutefois, si l’on souhaite y exécuter des calculs (par exemple si une version de code_aster y est installée), il est nécessaire de la déclarer explicitement comme serveur de calcul. * Serveur distant : toute machine autre que celle de l’utilisateur, accessible via le réseau, peut être déclarée comme serveur de calcul ou de fichiers, selon les besoins. Conteneur salome_meca ---------------------- Il s'agit d’un environnement logiciel autonome, contenant le programme principal ainsi que ses dépendances. Il permet d'exécuter une application sans avoir à l'installer directement sur le système hôte. Le nom de l'image du conteneur est construit de la manière suivante : .. code-block:: text salome_meca-----.sif Les dernières images sont construites sur la base de salome_meca 2024. L’image de référence est : salome_meca-edf-2024.1.0-1-20240327-scibian-11 (cf. `historique_des_images`_ pour plus de détails.) .. _historique_des_images: https://codeaster.pages.pleiade.edf.fr/lab/salome-meca-containers/tools/changelog.html#historique-des-images-versions-de-prerequis Comment installer le conteneur ? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Il existe deux façons : 1. Ouvrir l’application *Paquets* et rechercher ``salome-meca`` (Voir figure ci-contre). Sélectionner le paquet *salome-meca* ou *conteneur scibian11 pour salome-meca-2024*, cocher la case et cliquer sur Appliquer les modifications. .. figure:: images/installer_conteneur.png :width: 5.9063in :height: 4.0in Paquet d'installation de salome-meca (**EDF seulement**) 2. Télécharger l’image en local (souvent dans le répertoire *${HOME}/containers/*) depuis un terminal. Écrire la ligne de commande : .. code-block:: bash wget -c https://minio.retd.edf.fr/codeaster/sif/stable/salome_meca-edf-2024.1.0-1-20240327-scibian-11.sif Ensuite, lancer le script d'installation : .. code-block:: bash singularity run --app install salome_meca-edf-2024.1.0-1-20240327-scibian-11.sif Pour plus d'informations, veuillez visiter `Prise en main rapide`_. .. _Prise en main rapide: https://codeaster.pages.pleiade.edf.fr/lab/salome-meca-containers/howto.html Comment accéder au conteneur ? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Il peut y avoir deux cas selon comment on a installé le conteneur : 1. Quand on a utilisé l'application *Paquets* : Sur une machine Scibian, l'application *Paquets* a installé différents fichiers dont les plus importants sont ``/usr/bin/salome-meca-2024`` et ``/usr/bin/salome-meca-2024-container-shell``. Le premier nous permet d'accéder au conteneur salome_meca dans lequel on pourra utiliser asterStudy et astk. Le deuxième nous permet d'accéder au bash du conteneur afin d'exécuter les lignes de commande run_aster/run_ctest et/ou as_run. 2. Quand on a téléchargé l'image du conteneur : On se place dans le répertoire ayant le conteneur et démarre l’exécution de salome_meca avec : .. code-block:: bash ./salome_meca-edf-2024.1.0-1-20240327-scibian-11 On peut ajouter le chemin d’installation dans le PATH en mettant : .. code-block:: text export PATH=${HOME}/containers:${PATH} dans le fichier *~/.bashrc*. On pourra alors exécuter directement salome_meca-edf-2024.1.0-1-20240327-scibian-11 depuis n’importe où (et sans ./ devant). On peut encore simplifier l'exécution en créant un lien dans le terminal avec : .. code-block:: bash ln -s ${HOME}/containers/salome_meca-edf-2024.1.0-1-20240327-scibian-11 ct Ensuite, on peut lancer le conteneur en faisant : .. code-block:: bash ct De plus, voici quelques options de lancement : .. code-block:: bash ct --shell # démarre bash (seul .bashrc est chargé). ct --help # affiche l'aide d'utilisation du script de démarrage. ct shell # démarre salome shell (charge l’environnement SALOME). ct -- shell --help # affiche l’aide de salome shell (pas du script de lancement). Profil ASTK ----------- Un profil est un fichier (extension .astk) qui contient toutes les informations relatives à une étude : l’emplacement des fichiers de l’étude, en données, en résultats, le type associé à chaque fichier, les paramètres de soumission du calcul (mémoire, temps, machine de calcul, batch/interactif, etc.). Comme son nom l'indique, il est inhérent à l'interface astk. En conséquence, il contient également des paramètres sur l’interface elle-même pour reprendre une étude exactement dans le même état où elle avait été laissée. Il est enregistré sur demande de l’utilisateur et à chaque lancement d’un calcul. Fichier EXPORT ---------------- Ce fichier (extension .export) est une représentation simplifiée du profil astk : il ne contient que les informations sur les fichiers et les paramètres nécessaires au calcul (et aucune information sur l'interface graphique astk). La syntaxe de ce fichier est la même pour tous les outils qui lancent code_aster en ligne de commande. Remarque : Notez que tous les outils de lancement de code_aster ont d'une manière ou d'une autre besoin du fichier *.export* (voir la documentation [:ref:`D1.02.05 `]). Exemple de fichier .export ^^^^^^^^^^^^^^^^^^^^^^^^^ Voici un extrait : .. code-block:: text P actions make_etude P time_limit 60 P memory_limit 512 P ncpus 1 P mpi_nbcpu 1 P mpi_nbnoeud 1 P version stable F comm fichier.comm D 1 F datg fichier.datg D 16 F mmed fichier.mmed D 20 F resu fichier.resu R 8 F mess fichier.mess R 6 Cet exemple illustre les paramètres indispensables à définir : * actions make_etude : pour lancer un calcul * time_limit : temps en secondes du travail soumis * memory_limit : mémoire en Mo pour le calcul * ncpus : nombre de processeurs pour le parallélisme OpenMP * mpi_nbcpu : nombre total de processeurs pour le parallélisme MPI * mpi_nbnoeud : nombre de noeuds pour le parallélisme MPI * version: une version de code_aster : stable, dev, etc. Pour plus d'informations et les autres paramètres facultatifs, visitez le document [:ref:`D1.02.05 `]. Notez que les fichiers de données nécessaires au passage du test sont décrits sous la forme : .. code-block:: text F/R type chemin D/R/C numéro_unité_logique Ici, F/R signifie que l'utilisateur a la possibilité de déclarer la nature de l'objet pointé par le chemin : fichier (F) ou répertoire (R). De plus, l'utilisateur a aussi la possibilité de dire si l'objet est de données d'entrée (D), de résultats (R) ou compressé (C). Le numéro_unité_logique permet d'identifier chacun des fichiers (il peut être utilisé dans le fichier de commande pour désigner les fichiers d'entrée ou de sortie). Liste de types pour une étude ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. csv-table:: **TYPE**, **DESCRIPTION**, **UNITÉ LOGIQUE** "comm", "fichiers de commande code_aster (y compris les fichiers de poursuite)", "1" "mail", "fichier maillage au format code_aster", "20" "mmed", "maillage au format MED", "20" "mess", "fichier des messages de l’exécution", "6" "resu", "fichier de résultat (impression des tests, impression au format code_aster)", "8" "rmed", "fichier résultat au format MED", "80" "base", "répertoire contenant la base du calcul", "0" Comment ajouter des fichiers et/ou répertoires Python ? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Nous abordons le cas où l'utilisateur a un fichier Python *.py* avec des fonctions qui sont appelées dans le fichier de commande. Tout d'abord, il faut remarquer que faire cette action est possible avec as_run, run_aster et astk. Jusqu'à la version 2024, AsterStudy n'inclut pas cette fonctionnalité. Si l'utilisateur utilise les méthodes as_run, run_aster ou astk, il faudrait ajouter la ligne suivante dans le fichier .export : .. code-block:: text F nom chemin_du_fichier D 0 Si l'utilisateur a besoin de rajouter un dossier avec différents fichiers, il faudrait ajouter la ligne suivante : .. code-block:: text R nom chemin_du_dossier D 0 # ou R repe chemin_du_dossier D 0 Cependant, quand on utilise astk, il y a quelques remarques à considérer lors de l'appel des fonctions. Pour plus d'informations, veuillez lire [:ref:`Exemple d'importation des dossiers `]. Comment ajouter une version de développement ? ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Il existe la possibilité de rajouter de nouvelles versions de code_aster (par exemple développement) dans astk et asterStudy (basés sur as_run). Pour cela on rajoute la ligne suivante dans le fichier `$HOME/.astkrc/prefs`: .. code-block:: text vers : DEV:$HOME/dev/codeaster/install/mpi/share/aster Sur les serveurs à distance d'EDF R&D, le chemin d’installation est différent : .. code-block:: text vers : DEV:/scratch/users/$USER/dev/codeaster/install/mpi/share/aster