|
Tags: Mobile edit Mobile web edit |
Line 1: |
Line 1: |
| <languages /> | | <languages /> |
| [[Category:Software]] | | [[Category:Software]] |
| | <div class="mw-translate-fuzzy"> |
| = Outils recommandés= | | = Outils recommandés= |
| | </div> |
|
| |
|
| | <div class="mw-translate-fuzzy"> |
| === 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. |
Line 10: |
Line 13: |
| * [http://www.paraview.org/Wiki/ParaView wiki] | | * [http://www.paraview.org/Wiki/ParaView wiki] |
| * [http://www.paraview.org/Wiki/ParaView/Python_ Python scripting] | | * [http://www.paraview.org/Wiki/ParaView/Python_ Python scripting] |
| | </div> |
|
| |
|
| | * [[ParaView|Using ParaView on Compute Canada systems]] |
| | * [http://www.paraview.org/documentation ParaView official documentation] |
| | * [http://www.paraview.org/gallery ParaView gallery] |
| | * [http://www.paraview.org/Wiki/ParaView ParaView wiki] |
| | * [http://www.paraview.org/Wiki/ParaView/Python_Scripting ParaView Python scripting] |
| | |
| | <div class="mw-translate-fuzzy"> |
| === 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. |
Line 17: |
Line 28: |
| * [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] and [http://www.visitusers.org/index.php?title=Tutorial_Data sample datasets] |
| | </div> |
| | |
| | * [[VisIt|Using VisIt on Compute Canada systems]] |
| | * [https://wci.llnl.gov/simulation/computer-codes/visit/manuals VisIt manuals] |
| | * [https://wci.llnl.gov/simulation/computer-codes/visit/gallery VisIt gallery] |
| | * [http://www.visitusers.org VisIt user community wiki] |
| | * [http://www.visitusers.org/index.php?title=VisIt_Tutorial VisIt tutorials] along with [http://www.visitusers.org/index.php?title=Tutorial_Data sample datasets] |
|
| |
|
| | <div class="mw-translate-fuzzy"> |
| === 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 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/current/ug guide de l'utilisateur] | | *[http://www.ks.uiuc.edu/Research/vmd/current/ug guide de l'utilisateur] |
| | </div> |
| | |
| | * [[VMD|Using VMD on Compute Canada systems]] |
| | * [http://www.ks.uiuc.edu/Research/vmd/current/ug VMD User's Guide] |
|
| |
|
| | <div class="mw-translate-fuzzy"> |
| === VTK === | | === 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. | | 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. |
| * [https://itk.org/Wiki/VTK/Tutorials tutorials] | | * [https://itk.org/Wiki/VTK/Tutorials tutorials] |
| | </div> |
|
| |
|
| === 3D Slicer ===
| | * [[VTK|Using VTK on Compute Canada systems]] |
| 3D Slicer est une plateforme logicielle ''open source'' d'analyse d'image et de visualisation scientifique développée avec le soutien du National Institutes of Health des États-Unis et l'ensemble de ses utilisateurs. Elle met gratuitement des outils multiplateforme puissants au service des médecins, des chercheurs et du public.
| | * [https://itk.org/Wiki/VTK/Tutorials VTK tutorials] |
| * [https://www.slicer.org/wiki/Documentation/4.10 Manuel de l'utilisateur] | |
| * [[Slicer]]
| |
|
| |
|
| = Utiliser les grappes de Calcul Canada = | | === YT === |
| | YT is a Python library for analyzing and visualizing volumetric, multi-resolution data. Initially developed for astrophysical simulation data, it can handle any uniform and multiple-resolution data on Cartesian, curvilinear, unstructured meshes and on particles. |
|
| |
|
| == Connexion à distance par VNC ==
| | * [[yt|Using YT on Compute Canada systems]] |
|
| |
|
| 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. Une solution est d'utiliser VNC pour démarrer et se connecter à distance.
| | = Utiliser les grappes de Calcul Canada = |
| | |
| Pour plus d'information, voyez la page [[VNC/fr|VNC]].
| |
| | |
| ==Mode client-serveur ParaView avec GPU sur les grappes d'usage général==
| |
| <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>
| |
| | |
| Les grappes d'usage général possèdent plusieurs nœuds interactifs avec GPU pour travailler avec ParaView en mode 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.
| |
| | |
| salloc --time=1:00:0 --ntasks=1 --gres=gpu:1 --account=def-someprof
| |
| | |
| :La tâche devrait commencer automatiquement sur un des nœuds interactifs GPU.
| |
| 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
| |
| unset DISPLAY
| |
| pvserver
| |
| | |
| :Attendez que le serveur soit prêt à accepter la connexion client.
| |
| | |
| Waiting for client...
| |
| Connection URL: cs://cdr347.int.cedar.computecanada.ca:11111
| |
| 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).
| |
| | |
| ssh <username>@cedar.computecanada.ca -L 11111:cdr347: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 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.
| |
| | |
| == Mode client-serveur ParaView avec CPU sur les grappes d'usage général ==
| |
| | |
| 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''.
| | There are many options for remote visualization on Compute Canada systems. In general, whenever possible, for interactive rendering we recommend '''client-server visualization''' on interactive nodes, and for non-interactive visualization we recommend '''off-screen batch jobs''' on regular compute nodes. |
|
| |
|
| module load paraview-offscreen/5.3.0
| | Other, ''less efficient'' options are X11-forwarding and VNC. For some packages these are the only available remote GUI options. |
| 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.
| | === Client-server interactive visualization === |
|
| |
|
| Pour vérifier que le rendu s'effectue en parallèle, utilisez le filtre ''Process Id Scalars'' et appliquez la couleur avec ''process id''.
| | In the client-server mode, supported by both ParaView and VisIt, all data will be processed remotely on the cluster, using either CPU or GPU rendering, while you interact with your visualization through a familiar GUI client on your laptop. You can find the details of setting up client-server visualization in [[ParaView]] and [[VisIt]] pages. |
|
| |
|
| == Mode client-serveur VisIt avec CPU sur les grappes d'usage général == | | === Remote windows with X11-forwarding === |
|
| |
|
| Les deux versions disponibles sur les grappes d'usage général 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.
| | In general, X11-forwarding should be avoided for any heavy graphics, as it requires many round trips and is much slower than VNC (below). However, in some cases you can connect via ssh with X11. Below we show how you would do this on our clusters. We assume you have an X-server installed on your laptop. |
| 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''. Par exemple. pour travailler avec Graham, utilisez
| |
|
| |
|
| Host nickname = graham
| | <tabs> |
| Remote host name = graham.computecanada.ca
| | <tab name="Cedar and Graham"> |
|
| |
|
| Indiquez votre nom d'utilisateur CCDB.
| | Connect to Cedar or Graham with the -X/-Y flag for X11-forwarding. You can start your graphical application on the login node (small visualizations) |
|
| |
|
| Username = yourOwnUserName
| | module load vmd |
| | vmd |
|
| |
|
| Les paramètres autres que le nom d'utilisateur devraient être semblables à ceci :
| | or you can request interactive resources on a compute node (large visualizations) |
|
| |
|
| [[File:HostSetting.png]]
| | salloc --time=1:00:0 --ntasks=1 --mem=3500 --account=def-someprof --x11 |
|
| |
|
| Dans cette fenêtre, cliquez sur ''Launch Profiles''; ''login'' et ''slurm'' devraient être disponibles.
| | : and, once the job is running, start your graphical application inside the job |
|
| |
|
| [[File:LaunchProfiles.png]]
| | module load vmd |
| | vmd |
|
| |
|
| *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.
| | </tab> |
| *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''.
| | <tab name="Niagara"> |
|
| |
|
| [[File:LauncherArguments.png]]
| | Since runtime is limited on the login nodes, you might want to request a testing job in order to have more time for exploring and visualizing your data. On the plus side, you will have access to 40 cores on each of the nodes requested. For performing an interactive visualization session in this way please follow these steps: |
|
| |
|
| 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.
| |
|
| |
| == Visualisation sur Niagara ==
| |
| === Logiciels disponibles===
| |
| Les plus récentes versions ''open source'' des suites VMD, VisIt et ParaView ont été installées.
| |
|
| |
| Pour utiliser ParaView, vous devez explicitement indiquer un des indicateurs mesa pour empêcher OpenGL. Après avoir chargé le module ParaView, lancez la commande
| |
|
| |
| paraview --mesa-swr
| |
|
| |
| Niagara ne dispose pas de nœud spécialisé ni de matériel attitré pour la visualisation. Pour explorer ou visualiser vos données de manière interactive, vous devez soumettre une tâche interactive (''debug''); voyez [https://docs.scinet.utoronto.ca/index.php/Niagara_Quickstart#Testing_and_Debugging Testing and Debugging]. Notez aussi qu'il n'y a pas de GPU.
| |
|
| |
| === Visualisation interactive ===
| |
| Puisque le temps d'exécution est limité sur les nœuds d'exécution, vous devrez demander une tâche ''test'' pour avoir plus de temps pour explorer et visualiser vos données.
| |
| Ce faisant, vous aurez accès aux 40 cœurs de chacun des nœuds demandés.
| |
| Pour visualiser de façon interactive :
| |
| <ol> | | <ol> |
| <li> Connectez-vous via SSH à niagara.scinet.utoronto.ca avec l'indicateur -X/-Y pour la redirection. | | <li> ssh into niagara.scinet.utoronto.ca with the -X/-Y flag for X11-forwarding |
| | | <li> request an interactive job, ie.</li> |
| <li> Demandez une tâche interactive</li> | |
| debugjob | | debugjob |
| pour vous connecter à un nœud, par exemple ''niaXYZW''.
| | this will connect you to a node, let's say for the argument "niaXYZW" |
| | <li> run your visualization program, eg. VMD </li> |
|
| |
|
| <li> Démarrez l'application de visualisation, par exemple VisIt/ParaView. </li>
| | module load vmd |
| | vmd |
|
| |
|
| module load visit
| | <li> exit the debug session. |
| visit
| |
| | |
| module load paraview
| |
| paraview --mesa-swr
| |
| | |
| <li> Quittez la session ''debug''. | |
| </ol> | | </ol> |
|
| |
|
| === Visualisation à distance : mode client-serveur===
| | </tab> |
| Vous pouvez utiliser tous les protocoles de visualisation à distance compatibles avec VisIt et ParaView.
| | </tabs> |
|
| |
|
| VisIt et ParaView permettent les protocoles de visualisation à distance, ce qui inclut
| | <div class="mw-translate-fuzzy"> |
| <ul>
| | == Connexion à distance par VNC == |
| <li> accès à distance des données stockées sur la grappe, | | </div> |
| <li> utilisation des nœuds de calcul comme moteur pour le rendu,
| |
| <li> les deux fonctionnalités.
| |
| </ul>
| |
| | |
| ==== VisIt : configuration client-serveur====
| |
| Pour que VisIt se connecte à Niagara, vous devez définir une configuration hôte par une des méthodes suivantes :
| |
| | |
| Utilisez *une* des méthodes suivantes :
| |
| | |
| ====Fichier de configuration hôte====
| |
| Sur [https://support.scinet.utoronto.ca/~mponce/viz/host_niagara.xml host_niagara.xml] faites un double-clic.
| |
| Selon le système d'exploitation de votre ordinateur,
| |
| <ul>
| |
| <li> avec Linux/Mac, sauvegardez le fichier dans <code>~/.visit/hosts/</code>
| |
| <li> avec Windows, sauvegardez le fichier dans <code>My Documents\VisIt 2.13.0\hosts\</code>
| |
| </ul>
| |
| | |
| Redémarrez VisIt et assurez-vous que le profil de Niagara se trouve parmi vos hôtes.
| |
| | |
| ====Configuration manuelle====
| |
| Démarrez VisIt sur votre ordinateur. Dans le menu ''Options'', cliquez sur ''Host profiles...'', puis cliquez sur ''New Host'' et sélectionnez
| |
| | |
| Host nickname = niagara
| |
| 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
| |
| | |
| Sélectionnez ''Tunnel data connections through SSH'' et cliquez sur ''Apply''.
| |
| | |
| {| align="center"
| |
| | [[File:Visit_niagara-01.png|480px|]]
| |
| |}
| |
| | |
| | |
| Dans le haut de la page, cliquez sur l'onglet ''Launch Profiles''.
| |
| Créez deux profils :
| |
| <ol>
| |
| <li> <code>login</code> pour vous connecter par les nœuds de connexion et accéder aux données </li>
| |
| <li> <code>slurm</code> pour utiliser les nœuds de calcul comme moteur de rendu </li>
| |
| </ol>
| |
| Pour ce faire, cliquez sur ''New Profile'' et entrez le nom des profils ''login'' et ''slurm''.
| |
| Cliquez sur l'onglet ''Parallel'' et sélectionnez ''Launch parallel engine''.
| |
| | |
| Pour le profil Slurm, vous devez configurer les paramètres comme suit :
| |
| | |
| <br style="clear:both" />
| |
| {| align="center"
| |
| | [[File:Visit_niagara-02.png|400px|]]
| |
| | [[File:Visit_niagara-03.png|400px|]]
| |
| |}
| |
| <br style="clear:both" />
| |
| | |
| Quand toutes les modifications ont été effectuées, sauvegardez-les avec ''Options > Save Settings''; elles seront en vigueur la prochaine fois que VisIt sera lancé.
| |
| | |
| ==== ParaView : configuration client-serveur====
| |
| | |
| <ol>
| |
| <li> Lancez une tâche interactive (''debugjob'') sur Niagara.</li>
| |
| | |
| debugjob
| |
| | |
| <li> Une fois connecté au nœud de calcul (par exemple '' niaXYZW''), chargez le module ParaView et démarrez le serveur ParaView.</li>
| |
| | |
| module load paraview-offscreen/5.6.0
| |
| pvserver --mesa-swr-avx2
| |
| | |
| Avec la bibliothèque OpenSWR, le rendu est quelquefois plus rapide avec l'indicateur <code>--mesa-swr-avx2</code>.
| |
| | |
| <li> Attendez quelques secondes que le serveur soit prêt à accepter les connexions client.</li>
| |
| | |
| Waiting for client...
| |
| Connection URL: cs://niaXYZW.scinet.local:11111
| |
| Accepting connection(s): niaXYZW.scinet.local:11111
| |
| | |
| <li> Ouvrez un nouveau terminal sans fermer ''debugjob'' et connectez-vous via SSH.</li>
| |
| | |
| ssh YOURusername@niagara.scinet.utoronto.ca -L11111:niaXYZW:11111 -N
| |
| | |
| Ceci définit un tunnel qui associe le port 11111 de votre ordinateur (<code>localhost</code>) au port 11111 du nœud de calcul <code>niaXYZW</code> où le serveur ParaView attend les connexions.
| |
| | |
| <li> Démarrez ParaView (version 5.6.0) sur votre ordinateur. Sélectionnez ''File -> Connect'' et cliquez sur ''Add Server''.
| |
| Pour diriger ParaView vers votre port local <code>11111</code>, vous pouvez faire comme suit :</li>
| |
| name = niagara
| |
| server type = Client/Server
| |
| host = localhost
| |
| port = 11111
| |
| Cliquez ensuite sur ''Configure'', sélectionnez ''Manual'' et cliquez sur ''Save''.
| |
| | |
| <li> Une fois que le serveur à distance fait partie de la configuration, sélectionnez-le dans la liste et cliquez sur ''Connect''.
| |
| Le contenu de la fenêtre terminal change de <code>Accepting connection...</code> à <code>Client connected</code>.
| |
| | |
| <li> Ouvrez un fichier dans ParaView (vous serez dirigé au système de fichiers à distance) et visualisez les données comme à l'habitude.
| |
| | |
| </ol>
| |
| | |
| ====CPU multiples====
| |
| Pour effectuer des rendus parallèles avec plusieurs CPU, le <code>pvserver</code> devrait être exécuté avec <code>mpiexec</code>, c'est-à-dire que vous soumettez un script de tâche ou demandez une tâche avec
| |
| | |
| <source lang="bash"> salloc --ntasks=N*40 --nodes=N --time=1:00:00</source>
| |
| | |
| module load paraview-offset/5.6.0
| |
| mpirun pvserver --mesa-swr-avx2
| |
| | |
| ==== Versions identiques ====
| |
| Il faut habituellement avoir les mêmes versions de VisIt et de ParaView sur le client local et le serveur hôte. Dans le cas contraire, des problèmes de compatibilité pourraient causer des difficultés de connexion.
| |
| | |
| === Autres versions ===
| |
| Vous pouvez aussi utiliser les modules de visualisation disponibles par CCEnv. Pour ce faire, chargez le module CCEnv et sélectionnez parmi les choix.
| |
| | |
| == 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 === | | <div class="mw-translate-fuzzy"> |
| | | 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. Une solution est d'utiliser VNC pour démarrer et se connecter à distance. |
| ==== Compiler avec OSMesa ====
| | </div> |
| | |
| 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 : 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.
| |
| | |
| == Rendu YT sur une grappe ==
| |
| | |
| Installez [http://yt-project.org yt] dans votre répertoire avec les commandes suivantes :
| |
| $ 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
| |
| | |
| Chargez l'environnement et démarrez Python.
| |
| $ source ~/astro/bin/activate # load the environment
| |
| $ python
| |
| ...
| |
| $ deactivate
| |
| | |
| Nous supposons que vous avez téléchargé le jeu de données Enzo_64 à partir de http://yt-project.org/data. Le script ''grids.py'' produira le rendu de 90 images avec une rotation selon l'axe vertical.
| |
| 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)
| |
| | |
| Avec ''yt-mpi.sh'' comme script de soumission.
| |
| #!/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
| |
| | |
| Soumettez la tâche avec ''sbatch yt-mpi.sh''. Quand la tâche est terminée créez une animation à 30 images/seconde
| |
| $ 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
| |
|
| |
|
| | <div class="mw-translate-fuzzy"> |
| = Formation = | | = Formation = |
| | </div> |
|
| |
|
| | <div class="mw-translate-fuzzy"> |
| Si vous êtes intéressé à organiser un atelier, contactez le [[Technical support/fr|soutien technique]]. | | Si vous êtes intéressé à organiser un atelier, contactez le [[Technical support/fr|soutien technique]]. |
| | | </div> |
| = Documentation de Calcul Canada =
| |
|
| |
|
| === Ateliers d'une journée ou demi-journée === | | === Ateliers d'une journée ou demi-journée === |
Line 460: |
Line 135: |
| === Séminaires Web et autres brèves présentations === | | === Séminaires Web et autres brèves présentations === |
|
| |
|
| La page [https://westgrid.github.io/trainingMaterials/tools/visualization/ Visualization Resources du site de WestGrid] présente des diapositives et des vidéos des webinaires suivants :
| | [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 | | * YT series: “Using YT for analysis and visualization of volumetric data” (Part 1) and "Working with data objects in YT” (Part 2) |
| * Scientific visualization with Plotly | | * “Scientific visualization with Plotly” |
| * Novel Visualization Techniques from the 2017 Visualize This Challenge | | * “Novel Visualization Techniques from the 2017 Visualize This Challenge” |
| * Data Visualization on Compute Canada’s Supercomputers; recettes et démos de scripts ParaView client-serveur et ''batch'' sur des partitions CPU et GPU de Cedar et Graham | | * “Data Visualization on Compute Canada’s Supercomputers” contains recipes and demos of running client-server ParaView and batch ParaView scripts on both CPU and GPU partitions of Cedar and Graham |
| * Using ParaViewWeb for 3D Visualization and Data Analysis in a Web Browser | | * “Using ParaViewWeb for 3D Visualization and Data Analysis in a Web Browser” |
| * Scripting and other advanced topics in VisIt visualization | | * “Scripting and other advanced topics in VisIt visualization” |
| * CPU-based rendering with OSPRay | | * “CPU-based rendering with OSPRay” |
| * 3D graphs with NetworkX, VTK, and ParaView | | * “3D graphs with NetworkX, VTK, and ParaView” |
| * Graph visualization with Gephi | | * “Graph visualization with Gephi” |
|
| |
|
| Autres présentations
| | Other visualization presentations: |
|
| |
|
| * [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://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) |
Line 483: |
Line 158: |
| 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 489: |
Line 165: |
| * [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] == |