Codes Installés

Code mécaniques des matériaux

Codes dynamiques des fluides

Dakota

Pré/post traitement

Fiji

Paraview

Paraview est un logiciel de visualisation de données multidimensionnelles, fondé sur la librairie de visualisation VTK.
2 des versions sur VISION sont les versions binaires fournies par Kitware (5.7, 5.8), la troisième est compilé à partir des sources. Les 3 versions peuvent fonctionner en mode client/serveur en séparant la traitement graphique des données en parallèle.

[login@vision paraview_datafft]$ module av paraview
------------------------------------------------------- /zfs/softs/modulefiles --------------------------------------------------------
paraview/5.7.0_bin  paraview/5.8.1  paraview/5.8.1_bin

Utilisation en mode graphique

Un script runParaview est disponible pour configurer directement l'utilisation de paraview à travers la création d'un job interactif.
Le script permet :

  • de réserver les ressources (temps, CPU)
  • de créer un environnement graphique associé
  • de générer une connection via un tunnel ssh
  • de lancer un serveur VNC pour se connecter ensuite à l'environnement graphique et lancer paraview

[login@vision ~]$  runParaview -h

  Usage
  =====
  runParaview [<submit_params>] -- [<app specific options>]

  -------------------
  Optional parameters
  -------------------
  -D <openbox|xfce>
    This option allows you to select your desktop session.
    [openbox]

  -j <batch|visu>
    Choose the type of job.
    [visu]

  -m <memory limit>
    Memory limit for the job.
    In case of parallel job, this option means 'memory per task'.
    Value should be set in Gigabytes (e.g. -m 10G).
    [10G]

  -N <job name>
    Job name for the job.

  -n <N>
    Number of cpus.
    [1]

  -t <time limit>
    Set a walltime on your job.
    Value should be expressed in 'hours' (e.g. -t 1).
    [8]

  -V <version>
    This option allows you to specify the version of the application you would like to work with.
    [5.8.1]

  ---------------------------------------
  Enforced parameters for batch jobs only
  ---------------------------------------
  -i <file or script>
    Specify the job input file or input script.

  -----------------------
  Supported versions (-V)
  -----------------------
      paraview-5.7.0_bin
      paraview-5.8.1
      paraview-5.8.1_bin

Warning : Paraview charge ce qui se trouve dans $HOME/.local/lib/python* ; Il peut y avoir des conflits avec les modules installés si vous utilisez python dans Paraview.
Dans ce cas, la solution est de déplacer temporairement le contenu du répertoire $HOME/.local/lib/python*


Concernant les cas d’utilisation de Paraview GUI, :
- Quand le runParaview est lancé avec un seul cœur, il lance seulement la GUI en prenant 1 GPU en mode shared ;
- Quand le runParaview est lancé avec >= 2 cœurs, N pvservers sont lancés en background avec MPI, et la GUI se connecte automatiquement aux pvservers. (mode client/serveur)

Ainsi, l’utilisateur n’a rien à faire au niveau de la GUI, les pvservers sont déjà connectés.
D’autre part, les pvservers sont répartis sur les cartes graphiques, de sorte que chaque processus utilise une carte différente.
Si le nombre de cœurs est supérieur aux nombres de cartes graphiques disponibles, l'attribution se fait en mode round robin (donc plusieurs pvservers vont atterrir sur une même carte).
Si il est choisi N cœurs pour son job, N pvservers seront lancés.

Lancement de la commande

Lancer la commande runParaview : lancement de paraview 5.8 sur 2 processeurs et 10Go de mémoire pendant 1h ; un JID est généré (ici 5620

[login@vision ~]$ runParaview -t 1 -m 10G -n 2
5620.vision

Récupération des informations de connection

Une fois le job lancé, afficher le fichier paraview_xx.oJID associé au job.

[login@vision ~]$ cat paraview_1h.o5620
-----------------------------------------------------------------------------------------------------
                    [JobID]          5620.vision
                  [JobName]          paraview_1h
               [AppVersion]          5.8.1
                  [JobType]          visu
                  [NCPU(s)]          2
                 [Walltime]          1h
                   [Memory]          10G
            [Data transfer]          no
             [Keep scratch]          no
         [Submit directory]          /zfs/home/login
        [Scratch directory]          /zfs/scratch/login/paraview_1h-5620.vision
-----------------------------------------------------------------------------------------------------

[PARAVIEW][JOB] Info: /zfs/softs/paraview/5.8.1/bin/paraview

[PARAVIEW][JOB] Info: starting your TurboVNC session
[PARAVIEW][JOB] Info: successfully started VNC server on vision:5901
-----------------------------------------------------------------------------------------------------
[PARAVIEW][JOB] Info: *** SSH tunnel  ssh -p 86 -N -L5901:localhost:5901 login@vision.univ-poitiers.fr
[PARAVIEW][JOB] Info: *** VNC server  localhost:5901
-----------------------------------------------------------------------------------------------------
[PARAVIEW][JOB] Info: launching desktop 'openbox'
[PARAVIEW][JOB] Info: launching application 'PARAVIEW'

Ouverture du tunnel indiqué

Sur mon poste, lancer la commande ssh -N ... pour créer un tunnel sécurisé. Il faut laisser la commande active (elle ne rend pas la main).
Selon le nombre de sessions graphiques lancées, le port (ici 5901) peut changer. Il faut l'adapter à la prochaine étape.

client: homer$ ssh -p 86 -N -L5901:localhost:5901 homer@vision.univ-poitiers.fr

  • Sous windows, il faut créer le tunnel avec Putty :
  1. renseigner hostname et le port comme pour une connection "classique" sur la première page de putty
  2. source port (ici : 5901)
  3. destination (ici : localhost:5901)
  4. add
  5. open

Connection avec TurboVNC

  • Sur mon poste, lancer TurboVNC : renseigner localhost:5901 ou un autre numéro de port si différent.

  • Cliquer sur Connect
  • Renseigner login/password
  • La connection est établi dans un environnement graphique avec le logiciel paraview disponible.


Lancement manuel en mode client/serveur (sans runParaview, non recommandé)

Pour pouvoir réaliser du post-traitement parallèle, il faut tout d'abord lancer le "serveur" paraview (pvserver en mode parallèle, et de se connecter ensuite avec le client paraview.
Pour réaliser cette opération, il ne faut pas utiliser le script runParaview, mais runDesktop (cf ...).

runDesktop -n 24 -m 4G -t 2
  • Une fois la session graphique lancée, ouvrir un terminal, charger le module paraview, puis lancer pvserver avec le nombre de cpus requisitionné (dans l'exemple 24 cpus).
[homer@vision run]$ mpirun  -vv --oversubscribe --use-hwthread-cpus -n 24 vglrun pvserver --mpi
--------------------------------------------------------------------------
WARNING: There is at least non-excluded one OpenFabrics device found,
but there are no active ports detected (or Open MPI was unable to use
them).  This is most certainly not what you wanted.  Check your
cables, subnet manager configuration, etc.  The openib BTL will be
ignored for this job.

  Local host: vision
--------------------------------------------------------------------------
Waiting for client...
Connection URL: cs://vision:11111
Accepting connection(s): vision:11111
[vision:165699] 23 more processes have sent help message help-mpi-btl-openib.txt / no active ports found
[vision:165699] Set MCA parameter "orte_base_help_aggregate" to 0 to see all help / error messages

  • Dans un autre terminal, lancement de paraview
    [homer@vision run]$ vglrun paraview
    --------------------------------------------------------------------------
    WARNING: There is at least non-excluded one OpenFabrics device found,
    but there are no active ports detected (or Open MPI was unable to use
    them).  This is most certainly not what you wanted.  Check your
    cables, subnet manager configuration, etc.  The openib BTL will be
    ignored for this job.
    
      Local host: vision
    --------------------------------------------------------------------------
    
  • Dans l'interface graphique de paraview, il faut ensuite configurer la connection du client vers le serveur
  • une fois la connection réalisée, le message client connected s'affiche dans la console

Utilisation en mode batch

runParaview permet de lancer des scripts python directement en mode batch, et utilisant dans ce cas l'interface pvbatch de paraview.

Usage

Si vous avez un script python (ici paraview.py), il faut utiliser l'option :
  • -j batch permettant d'utiliser un script (à la différence de -j visu, option par défaut pour l'utilisation de runParaview)
  • -i ./paraview.py, l'option pour passer le script à la commande.
  • Exemple : je souhaite lancer mon script paraview.py pendant 1h et 1 cpu sur 64Go ; mon script accepte des options (ici -v 1000,1000 -c -f 100) que je passe ensuite après les "--"
[homer@vision]$ runParaview -j batch -n 1 -t 1 -m 64G -i ./paraview.py -- -v 1000,1000 -c -f 100

Gmsh

Gmsh is a 3D finite element grid generator with a build-in CAD engine and post-processor. Its design goal is to provide a fast, light and user-friendly meshing tool with parametric input and advanced visualization capabilities. Gmsh is built around four modules: geometry, mesh, solver and post-processing. The specification of any input to these modules is done either interactively using the graphical user interface or in ASCII text files using Gmsh's own scripting language.

Usage

[root@vision ~]# module add gmsh/4.1.3
[root@vision ~]# which gmsh
/softs/gmsh/4.1.3/bin/gmsh
[root@vision ~]# module show gmsh/4.1.3
-------------------------------------------------------------------
/zfs/softs/modulefiles/gmsh/4.1.3:

module-whatis     loads the gmsh environment
prepend-path     PATH /softs/gmsh/4.1.3/bin
prepend-path     MANPATH /softs/gmsh/4.1.3/share/man
-------------------------------------------------------------------

[root@vision ~]# module help gmsh/4.1.3

----------- Module Specific Help for 'gmsh/4.1.3' -----------------

    modules - loads the gmsh environment

    This adds /softs/gmsh/4.1.3/* to several of the
    environment variables.

    Version 4.1.3
[root@vision ~]# gmsh 

Exemple de Script

Définition d'un fichier de commande (fichier.geo) ; ici un cube de taille 20x20x20, et taille des éléments environ 20 :

[homer@hulk]$ cat cub_24C3D4.geo
//
// MUST BE USED WITH GMSH VERSION GREATER THAN 4, BUT WRITTEN WITH
// MSH 2 FORMAT
// gmsh cub_24C3D4.geo -o cub_24C3D4.msh2 -3
//
//
//
cellsize_outer = 20.;
boxsize = 20.;
//+
Point(1) = {0, 0, 0, cellsize_outer};
Point(2) = {boxsize, 0, 0, cellsize_outer};
Point(3) = {boxsize, 0, boxsize, cellsize_outer};
Point(4) = {0., 0, boxsize, cellsize_outer};
Point(5) = {0., boxsize, 0., cellsize_outer};
Point(6) = {boxsize, boxsize, 0., cellsize_outer};
Point(7) = {boxsize, boxsize, boxsize, cellsize_outer};
Point(8) = {0., boxsize, boxsize, cellsize_outer};
Physical Point("N_0") = {1, 4,5, 8};
Physical Point("N_000") = {1};
Physical Point("N_111") = {7};

//+
Line(1) = {1, 5};
Line(2) = {5, 6};
Line(3) = {6, 2};
Line(4) = {2, 1};
Line(5) = {1, 4};
Line(6) = {4, 3};
Line(7) = {3, 2};
Line(8) = {5, 8};
Line(9) = {8, 7};
Line(10) = {7, 6};
Line(11) = {8, 4};
Line(12) = {7, 3};

Line Loop(1) = {1, 2, 3, 4};
Plane Surface(1) = {1};
//+
Line Loop(2) = {5, 6, 7, 4};
Plane Surface(2) = {2};
//+
Line Loop(3) = {8, 9, 10, -2};
Plane Surface(3) = {3};
//+
Line Loop(4) = {11, -5, 1, 8};
Plane Surface(4) = {4};
//+
Line Loop(5) = {11, 6, -12, -9};
Plane Surface(5) = {5};
//+
Line Loop(6) = {12, 7, -3, -10};
Plane Surface(6) = {6};
//+
Surface Loop(55) = {3, 4, 5, 2, 6, 1};
Physical Surface("SOuter") = {55};

Physical Surface("Xsymm") = {4};
Physical Surface("Ysymm") = {2};
Physical Surface("Zsymm") = {1};
Physical Surface("Yplus") = {3};
Physical Surface("Zplus") = {5};
Physical Surface("Xplus") = {6};

Volume(100) = {55};
Physical Volume("Bulk") = {100};

Mesh 3;

  • Utilisation :
[homer@hulk]$ gmsh cub_24C3D4.geo -preserve_numbering_msh2 -o cub_24C3D4.msh2 -3 # old format (version 2)
[homer@hulk]$ gmsh cub_24C3D4.geo  -o cub_24C3D4.msh -3 # newer format 

CaptureTurboVNC_1.png (21.6 KB) Gueguen Mikael, 10/22/2020 12:12 AM

CaptureTurboVNC_2.png (283 KB) Gueguen Mikael, 10/22/2020 12:12 AM

putty2.png (38 KB) Gueguen Mikael, 11/18/2020 05:00 PM