-
ParaView
ParaView
ParaView on avoimen lähdekoodin tehokas ohjelmisto tieteelliseen visualisointiin. Taustalla se käyttää VTK-kirjastoa Python-kääreellä. Suosittelemme HPC:n selainkäyttöliittymän etätyöpöytiä interaktiiviseen käyttöön.
ParaView'n suorittaminen GPU-kiihdytetyllä grafiikalla Roihussa ja LUMIssa
Voit nyt myös ottaa käyttöön interaktiivisen visualisoinnin GPU-kiihdytyksellä paremman
suorituskyvyn saavuttamiseksi. Valitse tässä tapauksessa Accelerated visualization vaihtoehdon Desktop
sijaan Roihun selainkäyttöliittymässä. LUMIssa valitse Desktop-sovellus ja lumid-
osio (lisätietoja).
ParaView on suunniteltu rinnakkaisten tehtävien suorittamiseen, ja se koostuu yhdestä asiakkaasta ja yhdestä tai useammasta palvelimesta (pvserver). ParaView'ta voidaan käyttää monella tavalla eri tarpeisiin sopivasti.
Lisenssi
ParaView käyttää sallivaa BSD-lisenssiä, joka mahdollistaa ohjelmiston rojaltivapaan käytön useimpiin tarkoituksiin mahdollisimman laajalle käyttäjäkunnalle, mukaan lukien kaupalliset organisaatiot.
Saatavuus
- Roihu-CPU: 6.1.1
- Puhti: 5.10.1
- Mahti: 5.10.1
- LUMI: 5.8.0
Käyttö
Itsenäinen tila
Yksinkertaisin tapa käyttää ParaView'ta on suorittaa se itsenäisessä tilassa. Tämä tila riittää perusvisualisointitehtäviin ja on hyvä lähtökohta myös monimutkaisempiin tehtäviin.
Itsenäinen ParaView ei tarvitse pvserver-varausta. Huomaa, että ParaView'ta ei tule suorittaa kirjautumissolmulla. Voit käyttää sinteractive -i -komentoa varataksesi yhden CPU:n ja enintään 16 Gt muistia interaktiivista istuntoasi varten. Kun resurssit tulevat saataville, istunto ohjataan laskentasolmulle. Lataa moduuli ja käynnistä ParaView:
Jos tarvitset enemmän resursseja, käytä srun-komentoa ja anna istunnon parametrit yhdellä rivillä. Seuraava komento varaa 32 Gt muistia yhdelle CPU:lle yhdeksi tunniksi:
Kun sinut on ohjattu laskentasolmulle, lataa moduuli ja käynnistä ParaView, kuten yllä olevassa esimerkissä on näytetty.
Jos mallissasi on monimutkainen geometria, vuorovaikutus hidastuu ja näytön päivitysten viive tulee havaittavaksi. ParaView'ssa on valintaruutuvaihtoehto OSPRay-renderöijän käyttämiseksi nopeampiin näytön uudelleenpiirtoihin. Huomaa, että vaihtaminen oletusrenderöintitilan ja OSPRay-renderöintitilan välillä voi olla hidasta. Jopa yhtä CPU:ta käytettäessä OSPRay-renderöinti on paljon nopeampaa.
OSPRay pystyy käyttämään useampaa kuin yhtä CPU:ta säikeinä näytön päivitysten edelleen nopeuttamiseksi. Säikeet varataan --cpus-per-task-parametrilla. Seuraava esimerkki varaa 5 säiettä renderöintiä varten ja käyttää yhteensä 32 Gt muistia CPU:iden kesken jaettuna. Huomaa, että useimmat muut ParaView'n toiminnot eivät ole säikeistettyjä, joten ne käyttävät edelleen vain yhtä CPU:ta.
srun --ntasks=1 --cpus-per-task=5 --partition=small --time=01:00:00 --mem=32G --account=<project> --x11=first --pty bash
Kuten aiemmin näytettiin, kun sinut on ohjattu laskentasolmulle, lataa moduuli ja käynnistä ParaView.
Rinnakkaistila - asiakas käyttää useita palvelimia (pvserver) ja säikeitä
Vaativia töitä varten ParaView voidaan suorittaa rinnakkaistilassa: yksi asiakas ja monta pvserveriä, joista kukin toimii erillisellä CPU:lla. Asiakas yhdistää yhteen pvservereistä, joka kommunikoi muiden pvserverien kanssa.
Huomaa, että jos suurin osa työstä tehdään vain yhdellä pvserverillä, rinnakkaisen kokoonpanon käyttö voi itse asiassa hidastaa ParaView'ta, koska eri CPU:ilta tulevan datan jäsentämiseen kuluu ylimääräistä aikaa. Voit tarkistaa, kuinka paljon kutakin pvserveriä käytetään, avaamalla ParaView'n Memory Inspector -ikkunan (tiedostovalikko: View/Memory Inspector). ParaView'n D3-suodatinta voidaan käyttää työn jakamiseen tasaisemmin ytimien kesken.
Alla oleva esimerkkiskripti para5101-multi.sh käynnistää useita pvservereitä ja yhden asiakkaan (front-end) sekä yhdistää ne. Kun olet kopioinut skriptin, tarkista, että sillä on tarvittavat suoritusoikeudet - anna ne komennolla chmod u+x. Skripti ei tarvitse muokkausta. Resurssit tulee varata salloc-komennolla. Varaus koskee asiakasta ja pvservereitä yhteensä. --ntasks on pvserverien määrä plus yksi asiakas, ja --cpus-per-task on säikeiden määrä kullekin näistä tehtävistä, joten varattujen CPU:iden määrä on --ntasks * cpus-per-task. --mem on kaikkien yhteensä käyttämä muisti. Skripti varaa asiakkaalle yhden gigatavun muistia, ja loppu jaetaan pvserverien kesken.
Alla oleva salloc-esimerkki varaa resurssit yhdelle asiakkaalle ja yhdeksälle pvserverille, joista kullakin on kaksi säiettä, joten yhteensä varataan 20 CPU:ta. Pvservereille varataan yhteensä yhdeksän gigatavua muistia ja asiakkaalle yksi gigatavu. ParaView'n OSPRay-renderöijä käyttää säikeitä, kun taas useimmat muut ParaView'n toiminnot hyötyvät enemmän pvservereistä. Huomaa, että kaikki nämä salloc-parametrit on annettava eksplisiittisesti, muuten skripti para581-multi.sh ei toimi
salloc --nodes=1 --ntasks=10 --cpus-per-task=2 --mem=10G --time=01:00:00 --partition=small --account=<project> para5101-multi.sh
Kun asiakas yhdistää palvelimiin, saatat nähdä muutamia varoituksia (connect failed, retrying), jotka voi jättää huomiotta. Jos viimeinen viesti kuitenkin oli Creating default builtin connection, yhteyden muodostaminen lopulta epäonnistui, ja asiakas toimii ilman pvservereitä. Jos näin käy, tarkista, että olet sisällyttänyt kaikki tarvittavat työn parametrit salloc-komentoosi.
Esimerkkiskripti
#!/bin/bash
######################################################
### This script starts paraview servers and client ###
### and connects them using a unique random port. ###
### Run the script via salloc. All job parameters ###
### are copied from the salloc command, no editing ###
### of this script is needed. ###
######################################################
export SLURM_EXACT=1
export XDG_RUNTIME_DIR=$HOME
export KNOB_MAX_WORKER_THREADS=$SLURM_CPUS_PER_TASK
export LP_NUM_THREADS=$SLURM_CPUS_PER_TASK
MACHINEFILE="nodes.${SLURM_JOB_ID}"
scontrol show hostnames ${SLURM_JOB_NODELIST} > $MACHINEFILE
FIRSTNODE=$(head -n 1 ${MACHINEFILE})
MYPORT=`comm -23 <(seq 22200 22299 | sort) <(ss -Htan | awk '{print $4}' | cut -d':' -f2 | sort -u) | shuf | head -n 1`
SERVER_NTASKS=$(( ${SLURM_NTASKS}-1 ))
SERVER_MEMORY=$(( ${SLURM_MEM_PER_NODE}-1000 ))
module purge
module load paraview/5.10.1-pvserverosmesa
srun --nodes=1 --ntasks=$SERVER_NTASKS --cpus-per-task=$SLURM_CPUS_PER_TASK --mem=$SERVER_MEMORY pvserver --server-port=$MYPORT &
srun --nodes=1 --ntasks=1 --cpus-per-task=$SLURM_CPUS_PER_TASK --mem=1000 --x11=first /appl/opt/vis/paraview/paraview-5.10.1-mesa-client/bin/paraview --server-url=cs://$FIRSTNODE.bullx:$MYPORT &
wait
Kiihdytetty visualisointi
Roihun selainkäyttöliittymässä voit halutessasi käyttää kiihdytetyn visualisoinnin työpöytäistuntoa laskennallisesti vaativampien visualisointikuormien suorittamiseen.
Roihun kiihdytetyn visualisoinnin osiolla saatavilla oleva ParaView-versio on ParaView 5.13.3.
- Yhdistä Roihun selainkäyttöliittymään.
- Valitse selainkäyttöliittymän Accelerated Visualization - sovellus ja määritä tarvittavat resurssit.
- Napsauta Launch-painiketta. Työsi asetetaan jonoon, ja kun sille on varattu resurssit, napsauta Launch Accelerated Visualization.
- Käynnistä ParaView kohdasta Applications > Visualization > ParaView (Accelerated) (tai etsi sitä Application Finder -toiminnolla). Ohjelmiston käynnistyminen voi kestää muutaman sekunnin, joten ole kärsivällinen.
