Visualization/fr: Difference between revisions

Jump to navigation Jump to search
Updating to match new version of source page
No edit summary
(Updating to match new version of source page)
Line 26: Line 26:
* [https://itk.org/Wiki/VTK/Tutorials tutorials]
* [https://itk.org/Wiki/VTK/Tutorials tutorials]


=== 3D Slicer ===
3D Slicer is an open source software platform for medical image informatics, image processing, and three-dimensional visualization. Built over two decades through support from the National Institutes of Health and a worldwide developer community, Slicer brings free, powerful cross-platform processing tools to physicians, researchers, and the general public.
* [https://www.slicer.org/wiki/Documentation/4.10 3D Slicer user manual]
* [[Slicer]]
<div class="mw-translate-fuzzy">
= Nouvelles grappes de Calcul Canada =
= Nouvelles grappes de Calcul Canada =
</div>


== Start a remote desktop via VNC ==
== Start a remote desktop via VNC ==
Line 34: Line 41:
For more information, please see the article on [[VNC]].
For more information, please see the article on [[VNC]].


<div class="mw-translate-fuzzy">
==Mode client-serveur ParaView avec GPU sur Cedar et Graham==
==Mode client-serveur ParaView avec GPU sur Cedar et Graham==
<span style="color:red">Il y a présentement un problème avec cette fonctionnalité sur Graham; dans l'attente de la solution, veuillez utiliser le mode client-serveur avec CPU.</span>
<span style="color:red">Il y a présentement un problème avec cette fonctionnalité sur Graham; dans l'attente de la solution, veuillez utiliser le mode client-serveur avec CPU.</span>
</div>


<div class="mw-translate-fuzzy">
Cedar et Graham offrent plusieurs nœuds interactifs avec GPU pour travailler avec ParaView en mode client-serveur.
Cedar et Graham offrent plusieurs nœuds interactifs avec GPU pour travailler avec ParaView en mode client-serveur.
</div>


<div class="mw-translate-fuzzy">
1. Sur votre poste de travail, installez la même version de ParaView que celle présente sur la grappe que vous utiliserez; connectez-vous à la grappe et lancez une tâche interactive en série sur un GPU.
1. Sur votre poste de travail, installez la même version de ParaView que celle présente sur la grappe que vous utiliserez; connectez-vous à la grappe et lancez une tâche interactive en série sur un GPU.
</div>


   salloc --time=1:00:0 --ntasks=1 --gres=gpu:1 --account=def-someprof
   salloc --time=1:00:0 --ntasks=1 --gres=gpu:1 --account=def-someprof
Line 67: Line 80:
'''NOTE :''' Parmi les préférences ParaView, le paramètre '' Render View -> Remote/Parallel Rendering Options -> Remote Render Threshold'' est à considérer. Fixé à environ 20Mo, le GPU de votre poste de travail peut afficher le rendu de petits fichiers et la rotation effectuée avec la souris est rapide; par contre, des travaux avec de  moindres exigences (moins de 20Mo) seront pris en charge par le poste de travail et la vitesse de la visualisation dépendra beaucoup de la connexion. Avec ce paramètre fixé à 0Mo, toutes les opérations se font à distance et le GPU de la grappe fait tout le travail, ce qui est bien pour le traitement de grandes quantités de données, mais moins intéressant pour ce qui de l'interactivité. Faites l'essai de plusieurs valeurs différentes pour obtenir le résultat qui vous convient.
'''NOTE :''' Parmi les préférences ParaView, le paramètre '' Render View -> Remote/Parallel Rendering Options -> Remote Render Threshold'' est à considérer. Fixé à environ 20Mo, le GPU de votre poste de travail peut afficher le rendu de petits fichiers et la rotation effectuée avec la souris est rapide; par contre, des travaux avec de  moindres exigences (moins de 20Mo) seront pris en charge par le poste de travail et la vitesse de la visualisation dépendra beaucoup de la connexion. Avec ce paramètre fixé à 0Mo, toutes les opérations se font à distance et le GPU de la grappe fait tout le travail, ce qui est bien pour le traitement de grandes quantités de données, mais moins intéressant pour ce qui de l'interactivité. Faites l'essai de plusieurs valeurs différentes pour obtenir le résultat qui vous convient.


<div class="mw-translate-fuzzy">
== Mode client-serveur ParaView avec CPU sur Cedar et Graham ==
== Mode client-serveur ParaView avec CPU sur Cedar et Graham ==
</div>


ParaView peut aussi être utilisé sur le CPU d'une grappe. Dans certains cas, les librairies pour CPU modernes, par exemple OSPray ou OpenSWR, offrent une performance comparable à celle obtenue avec un GPU. Aussi, étant donné que le serveur ParaView utilise MPI en mémoire distribuée, les très grands jeux de données peuvent être traités en parallèle avec plusieurs cœurs CPU sur un seul nœud ou sur plusieurs nœuds distribués.
ParaView peut aussi être utilisé sur le CPU d'une grappe. Dans certains cas, les librairies pour CPU modernes, par exemple OSPray ou OpenSWR, offrent une performance comparable à celle obtenue avec un GPU. Aussi, étant donné que le serveur ParaView utilise MPI en mémoire distribuée, les très grands jeux de données peuvent être traités en parallèle avec plusieurs cœurs CPU sur un seul nœud ou sur plusieurs nœuds distribués.


<div class="mw-translate-fuzzy">
1. Sur votre poste de travail, installez la même version de ParaView que celle présente sur la grappe que vous utiliserez; connectez-vous à la grappe et lancez une tâche interactive en série avec un CPU.
1. Sur votre poste de travail, installez la même version de ParaView que celle présente sur la grappe que vous utiliserez; connectez-vous à la grappe et lancez une tâche interactive en série avec un CPU.
</div>


   salloc --time=1:00:0 --ntasks=1 --account=def-someprof
   salloc --time=1:00:0 --ntasks=1 --account=def-someprof
Line 114: Line 131:
Pour vérifier que le rendu s'effectue en parallèle, utilisez le filtre ''Process Id Scalars'' et appliquez la couleur avec ''process id''.
Pour vérifier que le rendu s'effectue en parallèle, utilisez le filtre ''Process Id Scalars'' et appliquez la couleur avec ''process id''.


<div class="mw-translate-fuzzy">
== Mode client-serveur VisIt avec CPU sur Cedar et Graham ==
== Mode client-serveur VisIt avec CPU sur Cedar et Graham ==
</div>


<div class="mw-translate-fuzzy">
Les deux versions sont visit/2.12.3 et visit/2.13.0. Pour utiliser VisIt à distance en mode client-serveur, une version majeure correspondante (2.12.x ou 2.13.x) doit être installée sur votre poste de travail.  
Les deux versions sont visit/2.12.3 et visit/2.13.0. Pour utiliser VisIt à distance en mode client-serveur, une version majeure correspondante (2.12.x ou 2.13.x) doit être installée sur votre poste de travail.  
Avant de lancer l'application, téléchargez le fichier [https://owncloud.westgrid.ca/index.php/s/HGxHPO2fPspdb0O/download host_cedar.xml]. Sous Linux, copiez le fichier dans ''~/.visit/hosts/''; sous Windows, copiez le fichier dans ''My Documents\VisIt 2.13.0\hosts\"~/.visit/hosts/''.
Avant de lancer l'application, téléchargez le fichier [https://owncloud.westgrid.ca/index.php/s/HGxHPO2fPspdb0O/download host_cedar.xml]. Sous Linux, copiez le fichier dans ''~/.visit/hosts/''; sous Windows, copiez le fichier dans ''My Documents\VisIt 2.13.0\hosts\"~/.visit/hosts/''.
Démarrez VisIt sur votre poste de travail; dans le menu principal, sous ''Options -> Host profiles'' vous devriez voir un profil nommé ''cedar''. Pour travailler avec Graham, utilisez
Démarrez VisIt sur votre poste de travail; dans le menu principal, sous ''Options -> Host profiles'' vous devriez voir un profil nommé ''cedar''. Pour travailler avec Graham, utilisez
</div>


  Host nickname = graham
  Host nickname = graham
  Remote host name = graham.computecanada.ca
  Remote host name = graham.computecanada.ca


<div class="mw-translate-fuzzy">
Indiquez votre nom d'utilisateur CCDB.
Indiquez votre nom d'utilisateur CCDB.
</div>


  Username = yourOwwUserName
  <div class="mw-translate-fuzzy">
Username = yourOwwUserName
</div>


Les paramètres autres que le nom d'utilisateur devraient être semblables à ceci :
Les paramètres autres que le nom d'utilisateur devraient être semblables à ceci :
Line 255: Line 280:
<li> After getting a compute node, let's say niaXYZW, load the ParaView module and start a ParaView server,</li>
<li> After getting a compute node, let's say niaXYZW, load the ParaView module and start a ParaView server,</li>


   module load paraview
   <div class="mw-translate-fuzzy">
module load paraview
   pvserver --mesa-swr-ax2
   pvserver --mesa-swr-ax2
</div>


The <code>--mesa-swr-avx2</code> flag has been reported to offer faster software rendering using the OpenSWR library.
The <code>--mesa-swr-avx2</code> flag has been reported to offer faster software rendering using the OpenSWR library.
Line 272: Line 299:
this will establish a tunnel mapping the port 11111 in your computer (<code>localhost</code>) to the port 11111 on the Niagara's compute node, <code>niaXYZW</code>, where the ParaView server will be waiting for connections.
this will establish a tunnel mapping the port 11111 in your computer (<code>localhost</code>) to the port 11111 on the Niagara's compute node, <code>niaXYZW</code>, where the ParaView server will be waiting for connections.


<li> Start ParaView on your local computer, go to "File -> Connect" and click on 'Add Server'.
<li> Start ParaView (version 5.6.0) on your local computer, go to "File -> Connect" and click on 'Add Server'.
You will need to point ParaView to your local port <code>11111</code>, so you can do something like</li>
You will need to point ParaView to your local port <code>11111</code>, so you can do something like</li>
  name = niagara
  name = niagara
Line 288: Line 315:


====Multiple CPUs====
====Multiple CPUs====
For performing parallel rendering using multiple CPUs, <code>pvserver</code> should be run using <code>srun</code>, ie. either submit a job script or request a job using
For performing parallel rendering using multiple CPUs, <code>pvserver</code> should be run using <code>mpiexec</code>, ie. either submit a job script or request a job using


<source lang="bash"> salloc --ntasks=N*40 --nodes=N --time=1:00:00</source>
<source lang="bash"> salloc --ntasks=N*40 --nodes=N --time=1:00:00</source>


   module load paraview
   <div class="mw-translate-fuzzy">
module load paraview
   srun pvserver --mesa
   srun pvserver --mesa
</div>


==== Final Considerations ====
==== Final Considerations ====
Line 402: Line 431:
Sur votre poste de travail, démarrez VisIt. Sous ''Options -> Host profiles...'', modifiez les paramètres suivants&nbsp;: le nom de la connexion (''Cloud West'' par exemple), le nom de l'instance hôte (''host name''),  le chemin vers VisIt (''/home/centos/visit''), le nom de l'utilisateur de l'instance. Activez enfin le lien SSH. N’oubliez pas de sauvegarder les paramètres avec ‘’ Options -> Save Settings’’.
Sur votre poste de travail, démarrez VisIt. Sous ''Options -> Host profiles...'', modifiez les paramètres suivants&nbsp;: le nom de la connexion (''Cloud West'' par exemple), le nom de l'instance hôte (''host name''),  le chemin vers VisIt (''/home/centos/visit''), le nom de l'utilisateur de l'instance. Activez enfin le lien SSH. N’oubliez pas de sauvegarder les paramètres avec ‘’ Options -> Save Settings’’.
En ouvrant un fichier (''File -> Open file... -> Host = Cloud West''), vous devriez voir le système de fichiers de l’instance. Chargez et visualisez un fichier. Le traitement des données et le rendu devraient s’effectuer sur l’instance alors que le résultat et les contrôles de l’interface utilisateur seront affichés sur le poste de travail.
En ouvrant un fichier (''File -> Open file... -> Host = Cloud West''), vous devriez voir le système de fichiers de l’instance. Chargez et visualisez un fichier. Le traitement des données et le rendu devraient s’effectuer sur l’instance alors que le résultat et les contrôles de l’interface utilisateur seront affichés sur le poste de travail.
== yt rendering on clusters ==
To install [http://yt-project.org yt] for CPU rendering on a cluster in your own directory, please do
$ module load python
$ virtualenv astro    # install Python tools in your $HOME/astro
$ source ~/astro/bin/activate
$ pip install cython
$ pip install numpy
$ pip install yt
$ pip install mpi4py
Then, in normal use, simply load the environment and start python
$ source ~/astro/bin/activate  # load the environment
$ python
...
$ deactivate
We assume that you have downloaded the sample dataset Enzo_64 from http://yt-project.org/data. Start with the following script `grids.py` to render 90 frames rotating the dataset around the vertical axis
import yt
from numpy import pi
yt.enable_parallelism()  # turn on MPI parallelism via mpi4py
ds = yt.load("Enzo_64/DD0043/data0043")
sc = yt.create_scene(ds, ('gas', 'density'))
cam = sc.camera
cam.resolution = (1024, 1024)  # resolution of each frame
sc.annotate_domain(ds, color=[1, 1, 1, 0.005])  # draw the domain boundary [r,g,b,alpha]
sc.annotate_grids(ds, alpha=0.005)  # draw the grid boundaries
sc.save('frame0000.png', sigma_clip=4)
nspin = 90
for i in cam.iter_rotate(pi, nspin):  # rotate by 180 degrees over nspin frames
    sc.save('frame%04d.png' % (i+1), sigma_clip=4)
and the job submission script `yt-mpi.sh`
#!/bin/bash
#SBATCH --time=0:30:00  # walltime in d-hh:mm or hh:mm:ss format
#SBATCH --ntasks=4      # number of MPI processes
#SBATCH --mem-per-cpu=3800
#SBATCH --account=...
source $HOME/astro/bin/activate
srun python grids.py
Then submit the job with `sbatch yt-mpi.sh`, wait for it to finish, and then create a movie at 30fps
$ ffmpeg -r 30 -i frame%04d.png -c:v libx264 -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" grids.mp4


= Formation =  
= Formation =  
Line 418: Line 491:
=== Séminaires Web et autres brèves présentations ===
=== Séminaires Web et autres brèves présentations ===


[https://westgrid.github.io/trainingMaterials/tools/visualization/ WestGrid's visualization training materials page] has embedded video recordings and slides from the following webinars:
* “Using YT for analysis and visualization of volumetric data”
* “Scientific visualization with Plotly”
* “Novel Visualization Techniques from the 2017 Visualize This Challenge”
* “Data Visualization on Compute Canada’s Supercomputers”
* “Using ParaViewWeb for 3D Visualization and Data Analysis in a Web Browser”
* “Scripting and other advanced topics in VisIt visualization”
* “CPU-based rendering with OSPRay”
* “3D graphs with NetworkX, VTK, and ParaView”
* “Graph visualization with Gephi”
<div class="mw-translate-fuzzy">
Lorsque possible, les liens suivants conduisent à un enregistrement vidéo et des diapositives.
Lorsque possible, les liens suivants conduisent à un enregistrement vidéo et des diapositives.
</div>


* [https://www.westgrid.ca/events/data_visualization_compute_canadas_supercomputers Data visualizaton on Cedar and Graham], octobre 2017, <i>Alex Razoumov</i>; comprend des recettes et des démos de l'exécution de scripts ParaView en client-serveur et en lot sur des partitions CPU et GPU de Cedar et Graham
* [https://www.westgrid.ca/events/data_visualization_compute_canadas_supercomputers Data visualizaton on Cedar and Graham], octobre 2017, <i>Alex Razoumov</i>; comprend des recettes et des démos de l'exécution de scripts ParaView en client-serveur et en lot sur des partitions CPU et GPU de Cedar et Graham
Line 437: Line 524:
Vous pouvez ajouter ici vos propres scripts et autres renseignements qui ne se trouvent pas dans la documentation signalée sur cette page. Ils pourraient s'avérer intéressants pour d'autres utilisateurs.
Vous pouvez ajouter ici vos propres scripts et autres renseignements qui ne se trouvent pas dans la documentation signalée sur cette page. Ils pourraient s'avérer intéressants pour d'autres utilisateurs.


<div class="mw-translate-fuzzy">
= Partenaires régionaux=  
= Partenaires régionaux=  
== [http://www.westgrid.ca WestGrid] ==
== [http://www.westgrid.ca WestGrid] ==
Line 442: Line 530:
* [https://www.westgrid.ca/support/visualization/remote_visualization Remote Visualization]
* [https://www.westgrid.ca/support/visualization/remote_visualization Remote Visualization]
* [https://www.westgrid.ca/support/visualization/batch_rendering Batch Rendering]
* [https://www.westgrid.ca/support/visualization/batch_rendering Batch Rendering]
</div>


== [http://www.scinet.utoronto.ca SciNet, le CHP à l'Université de Toronto] ==
== [http://www.scinet.utoronto.ca SciNet, le CHP à l'Université de Toronto] ==
35,853

edits

Navigation menu