-
AMS
AMS
Amsterdam Modeling Suite (AMS) on kattava laskennallisen kemian ohjelmistopaketti. Sen mukana tulee graafinen käyttöliittymä, AMS-GUI, joka tarjoaa intuitiivisen tavan simulaatioiden määrittämiseen, ajamiseen ja analysointiin.
Saatavuus
- Puhti: AMS, versio 2024.102, 2025.105
- Mahti: AMS, versio 2024.102, 2025.105
- Roihu-CPU: AMS, versio 2026.104
Lisenssi
- Lisenssi oikeuttaa ohjelmiston käyttöön kaikki akateemiset tutkijat ja opiskelijat akateemisessa instituutissa, jossa "Academic" tarkoittaa "tutkintoja myöntävään instituuttiin kuuluvaa".
- Lisenssi ei sisällä oikeutta ohjelmiston käyttöön valtion laboratorioiden työntekijöille tai muiden ei-akateemisten voittoa tavoittelemattomien tutkimuslaitosten työntekijöille.
- Lisenssi sallii vain voittoa tavoittelemattoman ei-kaupallisen käytön.
- Lisenssi sulkee pois kaiken sopimustutkimuksen, rojaltituloja tuottavan toiminnan ja muun rahalliseen hyötyyn johtavan toiminnan.
- Tutkimusryhmät, jotka tarvitsevat AMS-ohjelmistopaketin muita moduuleja, voivat hankkia itselleen lisenssin ohjelmien ajamiseen CSC:n tietokoneilla.
Käyttö
Alusta AMS Puhdissa ja Mahdissa:
Alusta AMS Roihu-CPU:ssa:
Esimerkkieräajokomennostot
Huomio
Erityisesti jotkin ominaisuuslaskennat voivat olla hyvin levy-I/O-intensiivisiä. Tällaiset ajot hyötyvät nopean paikallisen tallennustilan (NVMe) käytöstä Roihussa. Paikallisen levyn käyttö tällaisissa ajoissa vähentää myös Lustre-rinnakkaistiedostojärjestelmän kuormitusta.
#!/bin/bash
#SBATCH --partition=test
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=40 # MPI tasks per node
#SBATCH --account=yourproject # insert here the project to be billed
#SBATCH --time=00:15:00 # time as `hh:mm:ss`
#SBATCH --mem-per-cpu=1500 # requested memory per process in MB
module purge
module load ams/2025.105
export SCM_TMPDIR=$PWD/$SLURM_JOB_ID
mkdir -p $SCM_TMPDIR
# Create an example input file from the examples
sed '1,4d;$d;/Print/,/End/d' $AMSHOME/examples/Benchmarks/ADF/Si35_TZ2P/Si35_TZ2P.run > ./Si35_TZ2P.inp
"$AMSBIN/ams" < ./Si35_TZ2P.inp > ./Si35_TZ2P.log
#!/bin/bash
#SBATCH --partition=large
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=40 # MPI tasks per node
#SBATCH --account=yourproject # insert here the project to be billed
#SBATCH --time=00:15:00 # time as `hh:mm:ss`
#SBATCH --mem-per-cpu=1500 # requested memory per process in MB
#SBATCH --gres=nvme:100 # requested local disk space in GB
module load ams/2025.105
export SCM_TMPDIR=$LOCAL_SCRATCH
# Create an example input file from the examples
sed '1,4d;$d;/Print/,/End/d' $AMSHOME/examples/Benchmarks/ADF/Si35_TZ2P/Si35_TZ2P.run > ./Si35_TZ2P.inp
"$AMSBIN/ams" < ./Si35_TZ2P.inp > ./Si35_TZ2P.log
#!/bin/bash
#SBATCH --partition=medium
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=128 # MPI tasks per node
#SBATCH --account=yourproject # insert here the project to be billed
#SBATCH --time=00:20:00 # time as `hh:mm:ss`
module purge
module load ams/2025.105
export SCM_TMPDIR=$PWD/$SLURM_JOB_ID
mkdir -p $SCM_TMPDIR
# Create an example input file from the examples
sed '1,4d;$d;/Print/,/End/d' $AMSHOME/examples/Benchmarks/ADF/Si35_TZ2P/Si35_TZ2P.run > ./Si35_TZ2P.inp
"$AMSBIN/ams" < ./Si35_TZ2P.inp > ./Si35_TZ2P.log
#!/bin/bash
#SBATCH --partition=small
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=128 # MPI tasks per node
#SBATCH --account=yourproject # insert here the project to be billed
#SBATCH --time=00:20:00 # time as `hh:mm:ss`
#SBATCH --gres=nvme:100
module purge
module load ams/2025.105
export SCM_TMPDIR=$LOCAL_SCRATCH
mkdir -p $SCM_TMPDIR
# Create an example input file from the examples
sed '1,4d;$d;/Print/,/End/d' $AMSHOME/examples/Benchmarks/ADF/Si35_TZ2P/Si35_TZ2P.run > ./Si35_TZ2P.inp
"$AMSBIN/ams" < ./Si35_TZ2P.inp > ./Si35_TZ2P.log
#!/bin/bash
#SBATCH --partition=small
#SBATCH --nodes=1
#SBATCH --ntasks=128 # MPI tasks
#SBATCH --account=yourproject # insert here the project to be billed
#SBATCH --time=00:20:00 # time as `hh:mm:ss`
#SBATCH --mem-per-cpu=1500M # requested memory per process
module purge
module load ams/2026.104
export SCM_TMPDIR=$PWD/$SLURM_JOB_ID
mkdir -p $SCM_TMPDIR
# Create an example input file from the examples
sed '1,4d;$d;/Print/,/End/d' $AMSHOME/examples/Benchmarks/ADF/Si35_TZ2P/Si35_TZ2P.run > ./Si35_TZ2P.inp
"$AMSBIN/ams" < ./Si35_TZ2P.inp > ./Si35_TZ2P.log
Ydinmäärän valinta Roihu-CPU:ssa
Roihun M-solmuissa on 384 ydintä, mutta ADF ei skaalaudu tyypillisissä ajoissa tehokkaasti koko solmun laajuuteen. Alla oleva taulukko näyttää Si35_TZ2P-vertailuajon skaalautuvuuden — huomaa, että skaalautuvuus riippuu voimakkaasti järjestelmästä ja mallista, joten näitä lukuja kannattaa käyttää ohjeellisina eikä absoluuttisina arvoina. 128–192 ydintä tarjoaa tässä tapauksessa parhaan tasapainon tehokkuuden ja nopeuden välillä. Tämän jälkeen seinäkelloaika paranee tuskin lainkaan, kun taas muistinkäyttö ja laskutuskustannukset kasvavat merkittävästi. Koko solmun ajoissa käytä paikallista NVMe-väliaikaistallennusta (katso välilehdet "Roihu-CPU, paikallinen levy"), jotta vältät AMS:n rank-kohtaisten väliaikaistiedostojen aiheuttaman I/O-kilpailun.
| MPI-rankit | CPU-tehokkuus | Seinäkelloaika |
|---|---|---|
| 48 | ~95% | ~437 s |
| 96 | ~91% | ~385 s |
| 128 | ~90% | ~302 s |
| 192 | ~85% | ~252 s |
| 384 (koko solmu) | ~75% | ~247 s |
#!/bin/bash
#SBATCH --partition=small
#SBATCH --nodes=1
#SBATCH --ntasks=128 # MPI tasks
#SBATCH --account=yourproject # insert here the project to be billed
#SBATCH --time=00:20:00 # time as `hh:mm:ss`
#SBATCH --mem-per-cpu=1500M # requested memory per process
module purge
module load ams/2026.104
# On Roihu, local NVMe scratch is available via $TMPDIR (no --gres flag needed)
export SCM_TMPDIR=$TMPDIR/ams_$SLURM_JOB_ID
mkdir -p $SCM_TMPDIR
# Create an example input file from the examples
sed '1,4d;$d;/Print/,/End/d' $AMSHOME/examples/Benchmarks/ADF/Si35_TZ2P/Si35_TZ2P.run > ./Si35_TZ2P.inp
"$AMSBIN/ams" < ./Si35_TZ2P.inp > ./Si35_TZ2P.log
Katso myös
Katso välilehti "Roihu-CPU" ydinmääräsuosituksia varten. Jos koko solmun ajo vaatii maksimaalista I/O-suorituskykyä, harkitse hajautetun NVMe:n vaihtoehtoa välilehdellä "Roihu-CPU, hajautettu NVMe".
Paikallisen NVMe-levyn enimmäismäärä, joka on käytettävissä hakemistossa $TMPDIR, riippuu Slurm-osiosta ja solmutyypistä.
Jaetuilla solmuilla (esim. osioissa small ja longrun) käytettävissäsi on 20 GiB väliaikaistallennustilaa.
Koko solmuilla (medium- ja large-osiot) käytettävissäsi on 600 GiB paikallista tallennustilaa.
Katso lisätietoja Roihun tallennusdokumentaatiosta.
Hajautettu NVMe Roihussa
Roihu tarjoaa keskitetyn 307,2 TB:n nopean NVMe-tallennuspoolin, jota palvellaan
InfiniBand NDR:n yli. I/O-intensiivisissä koko solmun ajoissa tämä voi olla suorituskykyisempi kuin sekä
Lustre scratch että solmukohtainen $TMPDIR. Se vaatii koko solmun osion
(medium tai large) ja #BB_LUA burst-buffer -direktiivin — tuki jaetuille solmuille
ei ole vielä saatavilla. Katso Roihun levyalueet
täydet tiedot.
#!/bin/bash
#SBATCH --partition=medium
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=384 # full node required for disaggregated NVMe
#SBATCH --account=yourproject # insert here the project to be billed
#SBATCH --time=00:20:00 # time as `hh:mm:ss`
#BB_LUA SBF storagesize=100GB path=/run/sbb/<user>
module purge
module load ams/2026.104
# Disaggregated NVMe is mounted at the path specified in #BB_LUA above
export SCM_TMPDIR=/run/sbb/<user>/ams_$SLURM_JOB_ID
mkdir -p $SCM_TMPDIR
# Create an example input file from the examples
sed '1,4d;$d;/Print/,/End/d' $AMSHOME/examples/Benchmarks/ADF/Si35_TZ2P/Si35_TZ2P.run > ./Si35_TZ2P.inp
"$AMSBIN/ams" < ./Si35_TZ2P.inp > ./Si35_TZ2P.log
Si35_TZ2P:n vertailuajotulokset 384 rankilla
Vertailuajot osoittivat, että hajautettu NVMe tarjoaa parhaan suorituskyvyn
koko solmun ADF-ajoille ja päihittää sekä Lustre scratchin että solmukohtaisen $TMPDIR:n:
| Väliaikaistallennuksen sijainti | Seinäkelloaika | CPU-tehokkuus | Laskutusyksiköt |
|---|---|---|---|
| Lustre scratch | ~247 s | ~75% | ~20 BU |
$TMPDIR (solmukohtainen) |
~230 s | ~91% | ~19 BU |
| Hajautettu NVMe | ~190 s | ~89% | ~15 BU |
Huomaa, että skaalautuvuus riippuu voimakkaasti järjestelmästä ja mallista. Katso välilehti "Roihu-CPU" saadaksesi ohjeita ydinmäärän valintaan.
AMS-GUI
AMS:n mukana tulee integroitu graafinen käyttöliittymä, AMS-GUI, joka tekee mallinnustehtävien määrittämisestä, ajamisesta ja analysoinnista helppoa. Voit testata käyttöliittymää Puhdin selainkäyttöliittymän kautta, mutta laajempaan käyttöön suosittelemme asentamaan käyttöliittymän omalle kannettavallesi tai työasemallesi. Yksityiskohtaiset ohjeet löydät AMS-GUI-dokumentaatiosta.
Viitteet
Käyttötavastasi riippuen huolehdi siitä, että viittaat asianmukaisesti AMS-ajuriin, käytettyihin laskentamoottoreihin sekä ominaisuuksien viitteisiin. Lisätietoja on asiaankuuluvassa AMS-dokumentaatiossa