Visualization/fr: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
No edit summary
No edit summary
 
(171 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages />
<languages />
[[Category:Software]]
[[Category:Software]]
= Outils recommandés=
==Paquets populaires==


=== ParaView ===
=== ParaView ===
[http://www.paraview.org ParaView] est un outil d'usage général de visualisation tridimensionnelle pour les domaines scientifiques.  
[http://www.paraview.org ParaView] est un outil d'usage général de visualisation tridimensionnelle pour les domaines scientifiques.  
Ce logiciel libre fonctionne sous Linux, Windows et Mac; traite la plupart des formats de données; offre plusieurs modes de rendu; utilise les scripts Python; et peut gérer des dizaines de milliers de processeurs pour produire des rendus à partir de grands ensembles de données.  
Ce logiciel libre fonctionne sous Linux, Windows et Mac; traite la plupart des formats de données; offre plusieurs modes de rendu; utilise les scripts Python; et peut gérer des dizaines de milliers de processeurs pour produire des rendus à partir de grands ensembles de données.
 
* [[ParaView/fr|page wiki de l'Alliance]]
* [http://www.paraview.org/documentation  documentation]
* [http://www.paraview.org/documentation  documentation]
* [http://www.paraview.org/gallery gallery]
* [http://www.paraview.org/gallery gallery]
Line 13: Line 15:
=== VisIt ===
=== VisIt ===
Semblable à ParaView, le logiciel libre d'usage général [https://wci.llnl.gov/simulation/computer-codes/visit/ VisIt] est un outil d'analyse et de visualisation tridimensionnelle, capable d'opérer sur un poste de travail ou dans un environnement CHP avec des dizaines de milliers de processeurs.
Semblable à ParaView, le logiciel libre d'usage général [https://wci.llnl.gov/simulation/computer-codes/visit/ VisIt] est un outil d'analyse et de visualisation tridimensionnelle, capable d'opérer sur un poste de travail ou dans un environnement CHP avec des dizaines de milliers de processeurs.
* [https://wci.llnl.gov/simulation/computer-codes/visit/manuals manuals]
 
* [https://wci.llnl.gov/simulation/computer-codes/visit/gallery gallery]
* [[VisIt/fr|page wiki de l'Alliance]]
* [https://visit-dav.github.io/visit-website VisIt website]
* [https://visit-dav.github.io/visit-website/examples VisIt gallery]  
* [http://www.visitusers.org/ user community wiki]
* [http://www.visitusers.org/ user community wiki]
* [http://www.visitusers.org/index.php?title=VisIt_Tutorial tutorials] and [http://www.visitusers.org/index.php?title=Tutorial_Data sample datasets]
* [http://www.visitusers.org/index.php?title=VisIt_Tutorial tutorials] avec [http://www.visitusers.org/index.php?title=Tutorial_Data sample datasets]


=== VMD ===
=== VMD ===
[http://www.ks.uiuc.edu/Research/vmd VMD] est un logiciel libre pour visualiser, animer et analyser les grands systèmes moléculaires en mode tridimensionnel. C'est un outil multiplateforme (MacOS X, Linux, Windows) qui accepte les scripts Tcl et Python. Capable d'intégrer un grand nombre de plugiciels (''plugins''), l'application permet de travailler avec plusieurs formats de données moléculaires.
[http://www.ks.uiuc.edu/Research/vmd VMD] est un logiciel libre pour afficher, animer et analyser les grands systèmes moléculaires en mode tridimensionnel. C'est un outil de visualisation multiplateforme (MacOS X, Linux, Windows) qui accepte les scripts Tcl et Python. Capable d'intégrer un grand nombre de plugiciels (''plugins''), l'application permet de travailler avec plusieurs formats de données moléculaires.
*[http://www.ks.uiuc.edu/Research/vmd/current/ug guide de l'utilisateur]
 
* [[VMD/fr|page wiki de l'Alliance]]
* [http://www.ks.uiuc.edu/Research/vmd/current/ug VMD User's Guide]


=== VTK ===
=== VTK ===
VTK (''Visualization Toolkit'') est un boîte à outils logiciels 3D ouverts pour le traitement des images et la visualisation. Comprenant une bibliothèque de classes C++ et d'interfaces pour plusieurs langages interprétés dont Tcl/Tk, Java et Python, VTK a servi de base à plusieurs excellents logiciels de visualisation comme ParaView et VisIt.  
VTK (''Visualization Toolkit'') est une boîte à outils logiciels 3D ouverts pour le traitement des images et la visualisation. Comprenant une bibliothèque de classes C++ et d'interfaces pour plusieurs langages interprétés dont Tcl/Tk, Java et Python, VTK a servi de base à plusieurs excellents logiciels de visualisation comme ParaView et VisIt.
 
* [[VTK/fr|page wiki de l'Alliance]]
* [https://itk.org/Wiki/VTK/Tutorials tutorials]
* [https://itk.org/Wiki/VTK/Tutorials tutorials]


= Nouvelles grappes de Calcul Canada =
=== YT ===
YT est une bibliothèque Python pour l'analyse et la visualisation de données volumétriques multirésolution. Développée au départ pour les données de simulation en astrophysique, elle peut traiter toutes les données uniformes multirésolution sur les particules et dans des maillages non structurés cartésiens et curvilignes.


== Start a remote desktop via VNC ==
* [[yt/fr|page wiki de l'Alliance]]


Frequently, it may be useful to start up graphical user interfaces for various software packages like Matlab. Doing so over X-forwarding can result in a very slow connection to the server, one useful alternative to X-forwarding is using VNC to start and connect to a remote desktop.
== Utiliser nos grappes ==


For more information, please see the article on [[VNC]].
Il existe plusieurs options de travail à distance. Règle générale, pour un rendu interactif, nous recommandons autant que possible la visualisation '''client-serveur''' avec des nœuds interactifs ou de haute priorité. Pour une visualisation non interactive, nous recommandons les tâches en lot avec des nœuds de calcul réguliers.


==Mode client-serveur ParaView avec GPU sur Cedar et Graham==
D'autres options moins efficaces sont la redirection X11 et VNC qui, dans le cas de certains paquets, sont les seules options d'interface utilisateur à distance.
<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>


Cedar et Graham offrent plusieurs nœuds interactifs avec GPU pour travailler avec ParaView en mode client-serveur.
=== Visualisation interactive client-serveur===


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.
En mode client-serveur (avec ParaView et VisIt), les données sont traitées sur la grappe à distance avec le rendu sur CPU ou GPU, alors que vous travaillez avec une interface utilisateur client sur votre ordinateur. Pour configurer la visualisation client-serveur, voyez les pages [[ParaView/fr|ParaView]] et [[VisIt/fr|VisIt]].


  salloc --time=1:00:0 --ntasks=1 --gres=gpu:1 --account=def-someprof
=== Fenêtres à distance avec redirection X11 ===


:La tâche devrait commencer automatiquement sur un des nœuds interactif GPU.
Règle générale, il faut éviter la redirection X11 pour le traitement graphique intensif puisqu'il y a beaucoup d'interactions et que la vitesse est moindre qu'avec VNC (ci-dessous). Par contre, dans certains cas, vous pouvez vous connecter à nos grappes via SSH par X11, comme indiqué ci-dessous. Un serveur X doit être installé sur votre ordinateur.
2. À l'invite dans votre tâche, chargez le module GPU+EGL; modifiez la variable d'affichage pour éviter que ParaView utilise le contexte de rendu X11; démarrez le serveur ParaView.


  module load paraview-offscreen-gpu/5.4.0
<tabs>
  unset DISPLAY
<tab name="Cedar, Graham et Béluga">
  pvserver


:Attendez que le serveur soit prêt à accepter la connexion client.
Connectez-vous à la grappe avec l'indicateur <code> -X/-Y</code> pour la redirection X11. Vous pouvez démarrer votre application graphique dans le nœud de connexion (pour les petites visualisations).


  Waiting for client...
  module load vmd
  Connection URL: cs://cdr347.int.cedar.computecanada.ca:11111
  vmd
  Accepting connection(s): cdr347.int.cedar.computecanada.ca:11111


3. Prenez note du nœud (ici cdr347) et du port (habituellement 11111); dans un autre terminal sur votre poste de travail Mac/Linux (sous Windows, utilisez un émulateur de terminal), liez le port 11111 à votre poste de travail et le même port au nœud de calcul (assurez-vous d'utiliser le bon nœud de calcul).
Vous pouvez aussi demander des ressources interactives avec un nœud de calcul (visualisations d'envergure).


   ssh <username>@cedar.computecanada.ca -L 11111:cdr347:11111
   salloc --time=1:00:0 --ntasks=1 --mem=3500 --account=def-someprof --x11


4. Sur votre poste de travail, démarrez ParaView; allez à ''File -> Connect'' (ou cliquez sur le bouton vert ''Connect'' dans la barre d'outils); cliquez sur ''Add Server''. Pointez ParaView à votre port local 11111 pour avoir des paramètres semblables à ceci  ''name = cedar, server type = Client/Server, host = localhost, port = 11111''; cliquez sur ''Configure''; cliquez sur ''Save''.
Une fois que la tâche est en exécution, démarrez l'application graphique à l'intérieur de la tâche.
:Une fois que la connexion est ajoutée à la configuration, sélectionnez le serveur dans la liste affichée et cliquez sur ''Connect''. Dans la première fenêtre de terminal, le message  ''Accepting connection ...'' se lit maintenant ''Client connected''.


5. Ouvrez un fichier ParaView (qui vous a dirigé vers le système de fichiers distant) pour le visualiser.
  module load vmd
  vmd


'''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.
</tab>
<tab name="Niagara">


== Mode client-serveur ParaView avec CPU sur Cedar et Graham ==
Puisque le temps d'exécution dans les nœuds de connexion est limité, vous pourriez demander une tâche test afin de disposer de plus de temps pour explorer et visualiser vos données. Un avantage serait que vous auriez accès à 40 cœurs sur chacun des nœuds demandés. Pour utiliser une session de visualisation interactive, suivez les directives ci-dessous.


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.
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.
  salloc --time=1:00:0 --ntasks=1 --account=def-someprof
:La tâche devrait commencer automatiquement sur un des nœuds interactif CPU.
2. À l'invite dans votre tâche, chargez le module de rendu hors écran de ParaView; démarrez le serveur.
  module load paraview-offscreen/5.3.0
  pvserver --mesa-swr-avx2 --force-offscreen-rendering
:Avec la librairie OpenSWR, l'indicateur '''--mesa-swr-avx2''' est important pour obtenir un rendu plus rapide.
:Attendez que le serveur soit prêt à accepter la connexion client.
  Waiting for client...
  Connection URL: cs://cdr774.int.cedar.computecanada.ca:11111
  Accepting connection(s): cdr774.int.cedar.computecanada.ca:11111
3. Prenez note du nœud (ici cdr774) et du port (habituellement 11111); dans un autre terminal sur votre poste de travail Mac/Linux (sous Windows, utilisez un émulateur de terminal), liez le port 11111 à votre poste de travail et le même port au nœud de calcul (assurez-vous d'utiliser le bon nœud de calcul).
  ssh <username>@cedar.computecanada.ca -L 11111:cdr774:11111
4. Sur votre poste de travail, démarrez ParaView; allez à ''File -> Connect'' (ou cliquez sur le bouton vert ''Connect'' dans la barre d'outils); cliquez sur ''Add Server''. Pointez ParaView à votre port local 11111 pour avoir des paramètres semblables à ceci  ''name = cedar, server type = Client/Server, host = localhost, port = 11111''; cliquez sur ''Configure''; cliquez sur ''Save''.
:Une fois que la connexion est ajoutée à la configuration, sélectionnez le serveur dans la liste affichée et cliquez sur ''Connect''. Dans la première fenêtre de terminal, le message  ''Accepting connection ...'' se lit maintenant ''Client connected''.
5. Ouvrez un fichier ParaView (qui vous a dirigé vers le système de fichiers distant) pour le visualiser.
'''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 CPU 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 CPU 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.
Pour effectuer le rendu sur plusieurs CPU, démarrez une tâche en parallèle sans oublier de spécifier la limite correcte en temps réel.
  salloc --time=0:30:0 --ntasks=8 --account=def-someprof
Démarrez ParaView avec ''srun''.
  module load paraview-offscreen/5.3.0
  srun pvserver --mesa --force-offscreen-rendering
Comme l'indicateur ''--mesa-swr-avx2'' ne semble pas avoir d'effet en parallèle, nous l'avons remplacé par ''--mesa'' qui, nous l'espérons, permet la détection automatique de la meilleure option logicielle.
Pour vérifier que le rendu s'effectue en parallèle, utilisez le filtre ''Process Id Scalars'' et appliquez la couleur avec ''process id''.
== Mode client-serveur VisIt avec CPU sur Cedar et Graham ==
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/''.
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
Host nickname = graham
Remote host name = graham.computecanada.ca
Indiquez votre nom d'utilisateur CCDB.
Username = yourOwwUserName
Les paramètres autres que le nom d'utilisateur devraient être semblables à ceci :
[[File:HostSetting.png]]
Dans cette fenêtre, cliquez sur ''Launch Profiles''; ''login'' et ''slurm'' devraient être disponibles.
[[File:LaunchProfiles.png]]
*Le profil ''login'' est pour utiliser le moteur VisIt avec le nœud frontal d'une grappe, ce qui n'est pas recommandé pour les visualisations intensives.
*Le profil ''slurm'' utilise le moteur VisIt dans une tâche interactive avec un nœud de calcul; cliquez sur ''Parallel'' puis sur ''Advanced'' et entrez ''--account=def-someuser'' dans le champ ''Launcher arguments''.
[[File:LauncherArguments.png]]
Sauvegardez les paramètres avec ''Option -> Save Settings'' et redémarrez VisIt sur votre poste de travail. Dans le dialogue d'ouverture de fichiers, entrez ''cedar'' ou ''graham'' dans le champ ''Host'', en remplacement de ''localhost''. En principe, la connexion s'établit, le ''Component Launcher'' démarre dans le nœud frontal et vous devriez pouvoir naviguer dans le système de fichiers de la grappe pour sélectionner un fichier. À l'invite, sélectionnez ''login'' (rendu avec le nœud frontal) ou ''slurm'' (rendu dans une tâche interactive dans un nœud de calcul). Dans le cas de ''slurm'', vous devez aussi indiquer le nombre de nœuds, le nombre de processeurs et le temps d'exécution maximal.
[[File:SelectProfile.png]]
Cliquez sur ''OK'' et attendez que le moteur VisIt soit en opération.
Si le rendu doit s'effectuer sur un nœud de calcul, le temps d'attente peut être plus long.
Une fois que le jeu de données est affiché dans ''Active source'' de VisIt, le moteur fonctionne et vous pouvez commencer à travailler sur votre graphe.
== Visualization on Niagara ==
=== Software Available ===
We have installed the latest versions of the open source visualization suites: VMD, VisIt and ParaView.
Notice that for using ParaView you need to explicitly specify one of the mesa flags in order to avoid trying to use openGL, i.e.,
after loading the paraview module, use the following command:
  paraview --mesa-swr
Notice that Niagara does not have specialized nodes nor specially designated hardware for visualization, so if you want to perform interactive visualization or exploration of your data you will need to submit an interactive job (debug job, see [[https://docs.scinet.utoronto.ca/index.php/Niagara_Quickstart#Testing]]).
For the same reason you won't be able to request or use GPUs for rendering as there are none!
=== Interactive Visualization ===
Runtime is limited on the login nodes, so you will need to request a testing job in order to have more time for exploring and visualizing your data.
Additionally by doing so, you will have access to the 40 cores of each of the nodes requested.
For performing an interactive visualization session in this way please follow these steps:
<ol>
<ol>
<li> ssh into niagara.scinet.utoronto.ca with the -X/-Y flag for x-forwarding
<li> Connectez-vous via SSH à niagara.scinet.utoronto.ca avec l'indicateur <code>-X/-Y</code> pour la redirection X11.
 
<li> Demandez une tâche interactive.</li>
<li> request an interactive job, ie.</li>
   debugjob
   debugjob
this will connect you to a node, let's say for the argument "niaXYZW"
Ceci vous connectera à un nœud, par exemple "niaXYZW".
 
<li> Démarrez l'application graphique (ici, VMD). </li>
<li> run your favourite visualization program, eg. VisIt/ParaView </li>


   module load visit
   module load vmd
   visit
   vmd


  module load paraview
<li> Quittez la session de débogage.
  paraview --mesa-swr
 
<li> exit the debug session.
</ol>
</ol>


=== Remote Visualization -- Client-Server Mode ===
</tab>
You can use any of the remote visualization protocols supported for both VisIt and ParaView.
</tabs>


Both, VisIt and ParaView, support "remote visualization" protocols.
=== Écrans virtuels avec Xvfb ===
This includes:
<ul>
<li>  accessing data remotely, ie. stored on the cluster
<li> rendering visualizations using the compute nodes as rendering engines
<li> or both
</ul>


==== VisIt Client-Server Configuration ====
Certaines applications insistent pour afficher les résultats sous forme graphique, mais il n'est pas vraiment nécessaire de les voir parce qu'ils sont enregistrés dans un fichier.
For allowing VisIt connect to the Niagara cluster you need to set up a "Host Configuration".
Pour travailler sans l'affichage des graphiques, la tâche peut être soumise par lots sur un CPU ou un GPU; pour ceci, exécutez l'application avec les commandes Xvfb (<i>X virtual framebuffer</i>) suivantes&nbsp;:


Utilisez *une* des méthodes suivantes :
  xvfb-run <name-of-application>


====Niagara Host Configuration File====
si vous travaillez avec un CPU
You can just download the Niagara host file, right click on the following link [https://support.scinet.utoronto.ca/~mponce/viz/host_niagara.xml host_niagara.xml] and select save as...
Depending on the OS you are using on your local machine:
<ul>
<li> on a Linux/Mac OS place this file in <code>~/.visit/hosts/</code>
<li> on a Windows machine, place the file in  <code>My Documents\VisIt 2.13.0\hosts\</code>
</ul>


Restart VisIt and check that the niagara profile should be available in your hosts.
  xvfb-run vglrun -d egl <name-of-application>


====Manual Niagara Host Configuration====
si vous travaillez avec un GPU. Dans ce cas, vous devez réserver un GPU (voir [[Using_GPUs_with_Slurm/fr|Ordonnancement Slurm des tâches exécutées avec GPU]]). Remarquez que si le GPU est surchargé, il pourrait ne pas être plus rapide qu'un CPU. L'étalonnage est donc important pour éviter d'utiliser des GPU qui sont plus coûteux.
If you prefer to set up the verser yourself, instead of the configuration file from the previous section, just follow along these steps.
Open VisIt in your computer, go to the 'Options' menu, and click on "Host profiles..."
Then click on 'New Host' and select:


Host nickname = niagara
=== Connexion à distance par VNC ===
Remote host name = niagara.scinet.utoronto.ca
Username = Enter_Your_OWN_username_HERE
Path to VisIt installation = /scinet/niagara/software/2018a/opt/base/visit/2.13.1


Click on the "<code>Tunnel data connections through SSH</code>", and then hit Apply!
Il peut souvent être utile de démarrer une interface utilisateur graphique pour certaines applications comme MATLAB, mais faire ceci par redirection X peut ralentir de beaucoup la connexion au serveur. Nous recommandons d'utiliser VNC pour démarrer et se connecter à distance. Pour plus d'information, voyez la [[VNC/fr|page VNC]].


{| align="center"
= Formation =
| [[File:Visit_niagara-01.png|480px|]]
|}


Si vous êtes intéressé à organiser un atelier à votre établissement, écrivez à [mailto:support@tech.alliancecan.ca].


Now on the top of the window click on 'Launch Profiles' tab.
=== Ateliers d'une journée ou demi-journée ===
You will have to create two profiles:
* [https://docs.alliancecan.ca/mediawiki/images/5/5d/Visit201606.pdf VisIt workshop], HPCS 2016 à Edmonton, <i>Marcelo Ponce</i> et <i>Alex Razoumov</i>
<ol>
* [https://docs.alliancecan.ca/mediawiki/images/6/6c/Paraview201707.pdf ParaView workshop], juillet 2017, <i>Alex Razoumov</i>
<li> <code>login</code>: for connecting through the login nodes and accessing data </li>
* [https://support.scinet.utoronto.ca/~mponce/courses/ss2016/ss2016_visualization-I.pdf Gnuplot, xmgrace, remote visualization tools (X-forwarding and VNC), python's matplotlib] , école d'été 2016 en Ontario, <i>Marcelo Ponce</i> (SciNet, Université de Toronto)
<li> <code>slurm</code>: for using compute nodes as rendering engines </li>
* [https://support.scinet.utoronto.ca/~mponce/courses/ss2016/ss2016_visualization-II.pdf  Brief overview of ParaView & VisIt] école d'été 2016 en Ontario, <i>Marcelo Ponce</i> (SciNet, Université de Toronto)
</ol>
For doing so, click on 'New Profile', set the corresponding profile name, ie. login/slurm.
Then click on the Parallel tab and set the "Launch parallel engine"


For the slurm profile, you will need to set the parameters as seen below:
=== Séminaires Web et autres brèves présentations ===


<br style="clear:both" />
La page [https://training.westdri.ca/tools/visualization Visualization Resources du partenaire de l'Ouest canadien] présente des diapositives et des vidéos de plusieurs webinaires&nbsp;:
{| align="center"
| [[File:Visit_niagara-02.png|400px|]]
| [[File:Visit_niagara-03.png|400px|]]
|}
<br style="clear:both" />


Finally, after you are done with these changes, go to the "Options" menu and select "Save settings", so that your changes are saved and available next time you relaunch VisIt.
* YT series: “Using YT for analysis and visualization of volumetric data” (Part 1) et "Working with data objects in YT” (Part 2)
* “Scientific visualization with Plotly”
* “Novel Visualization Techniques from the 2017 Visualize This Challenge”
* “Data Visualization on Compute Canada’s Supercomputers”; recettes et démos client-serveur avec ParaView et scripts batch ParaView sur partitions CPU et GPU de Cedar et Graham
* “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”


==== ParaView Client-Server Configuration ====
Autres présentations :
Similarly to VisIt you will need to start a <code>debugjob</code> in order to use a compute node to files and compute resources.
Here are the steps to follow:
<ol>
<li> Launch an interactive job (debugjob) on Niagara,</li>
 
  debugjob
 
<li> After getting a compute node, let's say niaXYZW, load the ParaView module and start a ParaView server,</li>
 
  module load paraview
  pvserver --mesa-swr-ax2
 
The <code>--mesa-swr-avx2</code> flag has been reported to offer faster software rendering using the OpenSWR library.
 
<li> Now, you have to wait a few seconds for the server to be ready to accept client connections.</li>
 
  Waiting for client...
  Connection URL: cs://niaXYZW.scinet.local:11111
  Accepting connection(s): niaXYZW.scinet.local:11111
 
<li> Open a new terminal without closing your debugjob, and ssh into Niagara using the following command,</li>
 
  ssh YOURusername@niagara.scinet.utoronto.ca -L11111:niaXYZW:11111 -N
 
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'.
You will need to point ParaView to your local port <code>11111</code>, so you can do something like</li>
name = niagara
server type = Client/Server
host = localhost
port = 11111
then click Configure, select <code>Manual</code> and click Save.
 
<li> Once the remote server is added to the configuration, simply select the server from the list and click Connect.
The first terminal window that read <code>Accepting connection...</code> will now read <code>Client connected</code>.
 
<li> Open a file in ParaView (it will point you to the remote filesystem) and visualize it as usual.
 
</ol>
 
====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
 
<source lang="bash"> salloc --ntasks=N*40 --nodes=N --time=1:00:00</source>
 
  module load paraview
  srun pvserver --mesa
 
==== Final Considerations ====
Usually both VisIt and ParaView require to use the same version between the local client and the remote host, please try to stick to that to avoid having incompatibility issues, which might result in potential problems during the connections.
 
=== Other Versions ===
Alternatively you can try to use the visualization modules available on the CCEnv stack, for doing so just load the CCEnv module and select your favourite visualization module.
 
== Mode client-serveur sur une instance infonuagique ==
 
=== Prérequis ===
 
La page [[Cloud_Quick_Start/fr|Lancement de votre première instance]] vous apprend comment vous connecter. Une fois la connexion établie, vous devrez installer quelques logiciels afin de pouvoir compiler ParaView ou VisIt. Par exemple, sur une instance CentOS, entrez
 
  sudo yum install xauth wget gcc gcc-c++ ncurses-devel python-devel libxcb-devel
  sudo yum install patch imake libxml2-python mesa-libGL mesa-libGL-devel
  sudo yum install mesa-libGLU mesa-libGLU-devel bzip2 bzip2-libs libXt-devel zlib-devel flex byacc
  sudo ln -s /usr/include/GL/glx.h /usr/local/include/GL/glx.h
 
Si vous avez votre propre paire de clés publique-privée SSH (plutôt qu'une clé ''cloud''), vous pouvez copier la clé publique sur l'instance pour faciliter les connexions futures en entrant sur votre poste de travail la commande
 
  cat ~/.ssh/id_rsa.pub | ssh -i ~/.ssh/cloudwestkey.pem centos@vm.ip.address 'cat >>.ssh/authorized_keys'
 
=== Client-serveur ParaView ===
 
==== Compiler avec OSMesa ====
 
Comme la plupart des instances sur le West Cloud n'ont pas accès à un processeur graphique (GPU), il faut compiler ParaView avec OSMesa pour obtenir un rendu hors écran (''offscreen rendering''). La configuration par défaut de OSMesa active OpenSWR, la librairie logicielle de tramage (''rasterization'') d'Intel qui permet d'opérer OpenGL. Le résultat sera un serveur ParaView qui utilise OSMesa pour construire un rendu sans X hors écran avec un processeur, mais avec les pilotes llvmpipe et SWR, ce dernier étant plus récent et plus rapide. Nous recommandons SWR.
 
Sur l'instance, compilez cmake
wget https://cmake.org/files/v3.7/cmake-3.7.0.tar.gz
unpack and cd there
./bootstrap
make
sudo make install
Ensuite, compilez llvm
cd
wget http://releases.llvm.org/3.9.1/llvm-3.9.1.src.tar.xz
unpack and cd there
mkdir -p build && cd build
cmake \
  -DCMAKE_BUILD_TYPE=Release \
  -DLLVM_BUILD_LLVM_DYLIB=ON \
  -DLLVM_ENABLE_RTTI=ON \
  -DLLVM_INSTALL_UTILS=ON \
  -DLLVM_TARGETS_TO_BUILD:STRING=X86 \
  ..
make
sudo make install
Ensuite, compilez Mesa avec OSMesa
cd
wget ftp://ftp.freedesktop.org/pub/mesa/mesa-17.0.0.tar.gz
unpack and cd there
./configure \
  --enable-opengl --disable-gles1 --disable-gles2 \
  --disable-va --disable-xvmc --disable-vdpau \
  --enable-shared-glapi \
  --disable-texture-float \
  --enable-gallium-llvm --enable-llvm-shared-libs \
  --with-gallium-drivers=swrast,swr \
  --disable-dri \
  --disable-egl --disable-gbm \
  --disable-glx \
  --disable-osmesa --enable-gallium-osmesa
make
sudo make install
Ensuite, compilez le serveur ParaView
cd
wget http://www.paraview.org/files/v5.2/ParaView-v5.2.0.tar.gz
unpack and cd there
mkdir -p build && cd build
cmake \
      -DCMAKE_BUILD_TYPE=Release \
      -DCMAKE_INSTALL_PREFIX=/home/centos/paraview \
      -DPARAVIEW_USE_MPI=OFF \
      -DPARAVIEW_ENABLE_PYTHON=ON \
      -DPARAVIEW_BUILD_QT_GUI=OFF \
      -DVTK_OPENGL_HAS_OSMESA=ON \
      -DVTK_USE_OFFSCREEN=ON \
      -DVTK_USE_X=OFF \
      ..
make
make install
 
==== Opérer en mode client-serveur ====
 
Vous pouvez maintenant démarrer le serveur ParaView sur l'instance pour un rendu SWR.
./paraview/bin/pvserver --mesa-swr-avx2
Sur votre poste de travail, établissez un lien SSH à partir du port local 11111 vers le port 11111 de l'instance.
ssh centos@vm.ip.address -L 11111:localhost:11111
Démarrez le client ParaView sur le poste de travail et connectez-vous à ''localhost:11111'', ce qui devrait vous permettre d'ouvrir des fichiers situés sur l'instance. Pendant le calcul du rendu, le message ''SWR detected AVX2'' est affiché sur la console.
 
=== Client-serveur VisIt  ===
 
==== Compiler avec OSMesa ====
 
Avec VisIt, un seul script est nécessaire pour activer le rendu hors écran.
wget http://portal.nersc.gov/project/visit/releases/2.12.1/build_visit2_12_1
chmod u+x build_visit2_12_1
./build_visit2_12_1 --prefix /home/centos/visit --mesa --system-python \
    --hdf4 --hdf5 --netcdf --silo --szip --xdmf --zlib
Le script peut prendre quelques heures à s'exécuter; lorsqu'il est terminé, testez l'installation avec la commande
~/visit/bin/visit -cli -nowin
L'interpréteur (''shell'') Python devrait être activé.
 
==== Opérer en mode client-serveur ====
 
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.
 
= Formation =
à confirmer
 
Please let us know if you would like to see a visualization workshop at your institution.
 
= Documentation de Calcul Canada =
 
=== Ateliers d'une journée ou demi-journée ===
* [https://docs.computecanada.ca/mediawiki/images/5/5d/Visit201606.pdf VisIt workshop], HPCS 2016 à Edmonton, <i>Marcelo Ponce</i> et <i>Alex Razoumov</i>
* [https://docs.computecanada.ca/mediawiki/images/6/6c/Paraview201707.pdf ParaView workshop], juillet 2017, <i>Alex Razoumov</i>
* [https://support.scinet.utoronto.ca/~mponce/ss2016/ss2016_visualization-I.pdf Gnuplot, xmgrace, remote visualization tools (X-forwarding and VNC), python's matplotlib] , école d'été 2016 en Ontario, <i>Marcelo Ponce</i> (SciNet, Université de Toronto)
* [https://support.scinet.utoronto.ca/~mponce/ss2016/ss2016_visualization-II.pdf  Brief overview of ParaView & VisIt] école d'été 2016 en Ontario, <i>Marcelo Ponce</i> (SciNet, Université de Toronto)
 
=== Séminaires Web et autres brèves présentations ===
 
Lorsque possible, les liens suivants conduisent à un enregistrement vidéo et des diapositives.


* [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://oldwiki.scinet.utoronto.ca/wiki/images/5/51/Remoteviz.pdf Remote Graphics on SciNet's GPC system (Client-Server and VNC)], rencontre du SciNet User Group d'octobre 2015, <i>Ramses van Zon</i> (SciNet, Université de Toronto)
* [https://www.westgrid.ca/events/visualization_support_westgrid_compute_canada Visualization support in WestGrid / Compute Canada], janvier 2017, <i>Alex Razoumov</i>; comprend des démonstrations de comment opérer ParaView et VisIt localement sur un poste de travail (introduction à la visualisation 3D)
*[https://www.westgrid.ca/events/using_paraviewweb_3d_visualization_and_data_analysis_web_browser Using ParaViewWeb for 3D visualization and data analysis in a browser], mars 2017, <i>Alex Razoumov</i>
* [https://www.westgrid.ca/events/scripting_and_other_advanced_topics_visit_visualization VisIt scripting], novembre 2016, <i>Alex Razoumov</i>
* [https://www.westgrid.ca/events/paraview_cinema_using_prerendered_images_interactive_visualization Batch visualization webinar], mars 2015, <i>Alex Razoumov</i>
* [https://www.westgrid.ca/events/cpubased_rendering_ospray CPU-based rendering with OSPRay], septembre 2016, <i>Alex Razoumov</i>
* [https://www.westgrid.ca/events/graph_visualization_gephi Graph Visualization with Gephi], mars 201, <i>Alex Razoumov</i>
* [https://www.westgrid.ca/events/westgrid_online_workshop_3d_graphs_networkx_vtk_and_paraview 3D graphs with NetworkX, VTK, and ParaView], mai 2016, <i>Alex Razoumov</i>
* [https://wiki.scinet.utoronto.ca/wiki/images/5/51/Remoteviz.pdf Remote Graphics on SciNet's GPC system (Client-Server and VNC)], rencontre du SciNet User Group d'octobre 2015, <i>Ramses van Zon</i> (SciNet, Université de Toronto)
* [https://support.scinet.utoronto.ca/education/go.php/242/file_storage/index.php/download/1/files%5B%5D/6399/ VisIt Basics], rencontre du SciNet User Group de février 2016, <i>Marcelo Ponce</i> (SciNet, Université de Toronto)
* [https://support.scinet.utoronto.ca/education/go.php/242/file_storage/index.php/download/1/files%5B%5D/6399/ VisIt Basics], rencontre du SciNet User Group de février 2016, <i>Marcelo Ponce</i> (SciNet, Université de Toronto)
* [https://wiki.scinet.utoronto.ca/wiki/images/e/ea/8_ComplexNetworks.pdf Intro to Complex Networks Visualization, with Python], <i>Marcelo Ponce</i> (SciNet, Université de Toronto)
* [https://oldwiki.scinet.utoronto.ca/wiki/images/e/ea/8_ComplexNetworks.pdf Intro to Complex Networks Visualization, with Python], <i>Marcelo Ponce</i> (SciNet, Université de Toronto)
* [https://wiki.scinet.utoronto.ca/wiki/images/9/9c/Tkinter.pdf Introduction to GUI Programming with Tkinter], septembre 2014, <i>Erik Spence</i> (SciNet, Université de Toronto)
* [https://oldwiki.scinet.utoronto.ca/wiki/images/9/9c/Tkinter.pdf Introduction to GUI Programming with Tkinter], septembre 2014, <i>Erik Spence</i> (SciNet, Université de Toronto)


= Trucs et astuces =
== Trucs et astuces ==


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.


= Partenaires régionaux=  
== Partenaires régionaux ==
== [http://www.westgrid.ca WestGrid] ==
* [https://www.westgrid.ca/support/visualization/vis_quickstart Visualization QuickStart Guide]
* [https://www.westgrid.ca/support/visualization/remote_visualization Remote Visualization]
* [https://www.westgrid.ca/support/visualization/batch_rendering Batch Rendering]
 
== [http://www.scinet.utoronto.ca SciNet, le CHP à l'Université de Toronto] ==
* [https://wiki.scinet.utoronto.ca/wiki/index.php/Software_and_Libraries#anchor_viz Visualization tools]
* [https://wiki.scinet.utoronto.ca/wiki/index.php/VNC VNC]
* [https://wiki.scinet.utoronto.ca/wiki/index.php/Visualization_Nodes Visualisation Nodes]
* [https://wiki.scinet.utoronto.ca/wiki/index.php/Knowledge_Base:_Tutorials_and_Manuals#Visualization Further Resources and Viz-tech Talks]
* [https://wiki.scinet.utoronto.ca/wiki/index.php/Using_Paraview Using ParaView]
 
== [https://www.sharcnet.ca SHARCNET] ==
* [https://www.sharcnet.ca/help/index.php/Visualization_in_SHARCNET Overview]
* [https://www.sharcnet.ca/help/index.php/Remote_Graphical_Connections Running Pre-/Post-Processing Graphical Applications]
* [https://www.sharcnet.ca/my/software Supported Software (see Visualization section at bottom)]
 
= Galerie =


Parcourez la [https://www.computecanada.ca/page-daccueil-du-portail-de-recherche/services-nationale/visualisation/?lang=fr galerie de visualisations] réalisées à partir de modèles traités par les systèmes de Calcul Canada.
=== [http://www.scinet.utoronto.ca SciNet, le CHP à l'Université de Toronto] ===
* [https://docs.scinet.utoronto.ca/index.php/Visualization Visualization in Niagara]
* [https://oldwiki.scinet.utoronto.ca/wiki/index.php/Software_and_Libraries#anchor_viz visualization software]
* [https://oldwiki.scinet.utoronto.ca/wiki/index.php/VNC VNC]
* [https://oldwiki.scinet.utoronto.ca/wiki/index.php/Visualization_Nodes visualization nodes]
* [https://oldwiki.scinet.utoronto.ca/wiki/index.php/Knowledge_Base:_Tutorials_and_Manuals#Visualization further resources and viz-tech talks]
* [https://oldwiki.scinet.utoronto.ca/wiki/index.php/Using_Paraview using ParaView]


=Dépannage=
==Dépannage==
Contactez le [[Technical support|soutien technique]].
Contactez le [[Technical support|soutien technique]].

Latest revision as of 20:19, 12 June 2024

Other languages:

Paquets populaires

ParaView

ParaView est un outil d'usage général de visualisation tridimensionnelle pour les domaines scientifiques. Ce logiciel libre fonctionne sous Linux, Windows et Mac; traite la plupart des formats de données; offre plusieurs modes de rendu; utilise les scripts Python; et peut gérer des dizaines de milliers de processeurs pour produire des rendus à partir de grands ensembles de données.

VisIt

Semblable à ParaView, le logiciel libre d'usage général VisIt est un outil d'analyse et de visualisation tridimensionnelle, capable d'opérer sur un poste de travail ou dans un environnement CHP avec des dizaines de milliers de processeurs.

VMD

VMD est un logiciel libre pour afficher, animer et analyser les grands systèmes moléculaires en mode tridimensionnel. C'est un outil de visualisation multiplateforme (MacOS X, Linux, Windows) qui accepte les scripts Tcl et Python. Capable d'intégrer un grand nombre de plugiciels (plugins), l'application permet de travailler avec plusieurs formats de données moléculaires.

VTK

VTK (Visualization Toolkit) est une boîte à outils logiciels 3D ouverts pour le traitement des images et la visualisation. Comprenant une bibliothèque de classes C++ et d'interfaces pour plusieurs langages interprétés dont Tcl/Tk, Java et Python, VTK a servi de base à plusieurs excellents logiciels de visualisation comme ParaView et VisIt.

YT

YT est une bibliothèque Python pour l'analyse et la visualisation de données volumétriques multirésolution. Développée au départ pour les données de simulation en astrophysique, elle peut traiter toutes les données uniformes multirésolution sur les particules et dans des maillages non structurés cartésiens et curvilignes.

Utiliser nos grappes

Il existe plusieurs options de travail à distance. Règle générale, pour un rendu interactif, nous recommandons autant que possible la visualisation client-serveur avec des nœuds interactifs ou de haute priorité. Pour une visualisation non interactive, nous recommandons les tâches en lot avec des nœuds de calcul réguliers.

D'autres options moins efficaces sont la redirection X11 et VNC qui, dans le cas de certains paquets, sont les seules options d'interface utilisateur à distance.

Visualisation interactive client-serveur

En mode client-serveur (avec ParaView et VisIt), les données sont traitées sur la grappe à distance avec le rendu sur CPU ou GPU, alors que vous travaillez avec une interface utilisateur client sur votre ordinateur. Pour configurer la visualisation client-serveur, voyez les pages ParaView et VisIt.

Fenêtres à distance avec redirection X11

Règle générale, il faut éviter la redirection X11 pour le traitement graphique intensif puisqu'il y a beaucoup d'interactions et que la vitesse est moindre qu'avec VNC (ci-dessous). Par contre, dans certains cas, vous pouvez vous connecter à nos grappes via SSH par X11, comme indiqué ci-dessous. Un serveur X doit être installé sur votre ordinateur.

Connectez-vous à la grappe avec l'indicateur -X/-Y pour la redirection X11. Vous pouvez démarrer votre application graphique dans le nœud de connexion (pour les petites visualisations).

  module load vmd
  vmd

Vous pouvez aussi demander des ressources interactives avec un nœud de calcul (visualisations d'envergure).

 salloc --time=1:00:0 --ntasks=1 --mem=3500 --account=def-someprof --x11

Une fois que la tâche est en exécution, démarrez l'application graphique à l'intérieur de la tâche.

 module load vmd
 vmd

Puisque le temps d'exécution dans les nœuds de connexion est limité, vous pourriez demander une tâche test afin de disposer de plus de temps pour explorer et visualiser vos données. Un avantage serait que vous auriez accès à 40 cœurs sur chacun des nœuds demandés. Pour utiliser une session de visualisation interactive, suivez les directives ci-dessous.

  1. Connectez-vous via SSH à niagara.scinet.utoronto.ca avec l'indicateur -X/-Y pour la redirection X11.
  2. Demandez une tâche interactive.
  3. debugjob Ceci vous connectera à un nœud, par exemple "niaXYZW".
  4. Démarrez l'application graphique (ici, VMD).
  5. module load vmd vmd
  6. Quittez la session de débogage.

Écrans virtuels avec Xvfb

Certaines applications insistent pour afficher les résultats sous forme graphique, mais il n'est pas vraiment nécessaire de les voir parce qu'ils sont enregistrés dans un fichier. Pour travailler sans l'affichage des graphiques, la tâche peut être soumise par lots sur un CPU ou un GPU; pour ceci, exécutez l'application avec les commandes Xvfb (X virtual framebuffer) suivantes :

 xvfb-run <name-of-application>

si vous travaillez avec un CPU

 xvfb-run vglrun -d egl <name-of-application>

si vous travaillez avec un GPU. Dans ce cas, vous devez réserver un GPU (voir Ordonnancement Slurm des tâches exécutées avec GPU). Remarquez que si le GPU est surchargé, il pourrait ne pas être plus rapide qu'un CPU. L'étalonnage est donc important pour éviter d'utiliser des GPU qui sont plus coûteux.

Connexion à distance par VNC

Il peut souvent être utile de démarrer une interface utilisateur graphique pour certaines applications comme MATLAB, mais faire ceci par redirection X peut ralentir de beaucoup la connexion au serveur. Nous recommandons d'utiliser VNC pour démarrer et se connecter à distance. Pour plus d'information, voyez la page VNC.

Formation

Si vous êtes intéressé à organiser un atelier à votre établissement, écrivez à [1].

Ateliers d'une journée ou demi-journée

Séminaires Web et autres brèves présentations

La page Visualization Resources du partenaire de l'Ouest canadien présente des diapositives et des vidéos de plusieurs webinaires :

  • YT series: “Using YT for analysis and visualization of volumetric data” (Part 1) et "Working with data objects in YT” (Part 2)
  • “Scientific visualization with Plotly”
  • “Novel Visualization Techniques from the 2017 Visualize This Challenge”
  • “Data Visualization on Compute Canada’s Supercomputers”; recettes et démos client-serveur avec ParaView et scripts batch ParaView sur partitions CPU et GPU de Cedar et Graham
  • “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”

Autres présentations :

Trucs et astuces

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.

Partenaires régionaux

SciNet, le CHP à l'Université de Toronto

Dépannage

Contactez le soutien technique.