-
Elmer
Elmer
Elmer on CSC:n avoimen lähdekoodin elementtimenetelmään perustuva monifysikaalinen simulointiohjelmistopaketti. Se sisältää moduuleja virtaus- ja kiinteän aineen mekaniikkaan, akustiikkaan sekä sähkömagneettiseen dynamiikkaan.
Elmer hyödyntää kolmansien osapuolten avoimen lähdekoodin ohjelmia esi- (esim. Gmsh) ja jälkikäsittelyyn (esim. ParaView, Visit). Asennettu versio sisältää Elmer/Ice-ratkaisijat, joita tarvitaan glasiologisiin simulaatioihin (jäätiköt, mannerjäätiköt). Elmer hyödyntää MPI-kirjastoa rinnakkaislaskentaan, ja joihinkin ratkaisijoihin on jo toteutettu OpenMP-rinnakkaissäikeistysohjeistukset.
Saatavuus
- Puhti: 9.0
- Mahti: 9.0
- LUMI: 9.0
Lisenssi
Elmer on lisensoitu GPL-lisenssillä ja (elmersolver.lib-kirjaston osalta) LGPL-lisenssillä. Sen käyttö on maksutonta kaikille.
Käyttö
Puhdissa ja Mahdissa saatavilla olevat Elmer-versiot voidaan listata komennolla
LUMIssa pitää ensin ottaa käyttöön CSC:n asentamien ohjelmistojen moduulitiedostot:
Elmerin oletusversio ladataan komennolla
Suosittelemme tämän version käyttöä (paitsi erityisistä syistä) kaikilla alustoilla.
Huomaa, että tätä versiota päivitetään usein. Jos tapauksessasi on mukana käännettynä koodina lisättyjä User Functions -toimintoja, varmista että käännät ne uudelleen tällaisen päivityksen yhteydessä (päivämäärä näytetään moduulia ladattaessa).
Esimerkkieräajo rinnakkaislaskentaan
Tämä on perusskripti 30 minuutin yhden solmun työlle, jossa käytetään kaikkia 40 ydintä ja varataan 2 Gt muistia jokaiselle ytimelle. Elmerin syötetiedosto on myrun.sif.
#!/bin/bash
#SBATCH --time=00:30:00
#SBATCH --job-name=jobname
#SBATCH --output=%x.%j.out
#SBATCH --error=%x.%j.err
#SBATCH --partition=small
#SBATCH --ntasks-per-node=40
#SBATCH --nodes=1
#SBATCH --mem-per-cpu=2G
#SBATCH --account=<project>
module load elmer/latest
# make sure the SIF is in the start-info
echo myrun.sif > ELMERSOLVER_STARTINFO
echo "starting Elmer simulation with SIF file"
cat ELMERSOLVER_STARTINFO
srun ElmerSolver
echo "done"
Suurin ero Mahdissa on se, että vain kokonaisia solmuja voidaan varata. Yksi solmu sisältää 128 ydintä (emme suosittele käyttämään monisäikeistystä). Seuraava skripti lähettää 6 tunnin työn, jossa käytetään 4 solmua ja kaikkia 128 ydintä per solmu (eli yhteensä 512 ydintä).
#!/bin/bash
#SBATCH --time=06:00:00
#SBATCH --job-name=jobname
#SBATCH --output=%x.%j.out
#SBATCH --error=%x.%j.err
#SBATCH --partition=medium
#SBATCH --account=<project>
#SBATCH --nodes=4
#SBATCH --ntasks-per-node=128
export OMP_NUM_THREADS=1
module load elmer/latest
# make sure the SIF is in the start-info
echo myrun.sif > ELMERSOLVER_STARTINFO
echo "starting Elmer simulation with SIF file"
cat ELMERSOLVER_STARTINFO
srun ElmerSolver
echo "done"
Perusskripti 1 tunnin työlle, jossa käytetään 4 solmua ja yhteensä 128 ydintä. Elmerin syötetiedosto on myrun.sif.
#!/bin/bash
#SBATCH --time=01:00:00
#SBATCH --job-name=jobname
#SBATCH --output=%x.%j.out
#SBATCH --error=%x.%j.err
#SBATCH --partition=small
#SBATCH --account=<project>
#SBATCH --nodes=4
#SBATCH --ntasks=128
module use /appl/local/csc/modulefiles/
module load elmer/latest
# make sure the SIF is in the start-info
echo myrun.sif > ELMERSOLVER_STARTINFO
echo "starting Elmer simulation with SIF file"
cat ELMERSOLVER_STARTINFO
srun ElmerSolver
echo "done"
Ohjeet töiden lähettämiseen ja seurantaan löytyvät CSC:n dokumentaatiosta ja LUMIn dokumentaatiosta.
Joissakin Elmer-tapauksissa voi olla hyödyllistä käyttää vähemmän ytimiä per solmu kuin on saatavilla suorituskyvyn parantamiseksi. Katso esimerkki solmujen vajaakäytöstä.