-
LAMMPS
LAMMPS
LAMMPS on "molekyylidynamiikkasimulaattori", joka tukee laajaa valikoimaa erilaisia voimakenttiä. CSC tarjoaa yleiskäyttöisen LAMMPS-asennuksen, mutta se ei sisällä kaikkia saatavilla olevia valinnaisia paketteja ja liitännäisiä. Siksi saatat joutua rakentamaan oman räätälöidyn version tarpeidesi mukaan. Lue alla olevat ohjeet.
Saatavuus
| Julkaisu | Saatavilla olevat moduulit | Huomautukset |
|---|---|---|
| 29. elokuuta 2024 | lammps/29Aug2024 |
Vakaa julkaisu, päivitys 2 |
- Ohjeet oman räätälöidyn version rakentamiseen löytyvät polusta
/appl/soft/chem/lammps/custom.
| Julkaisu | Saatavilla olevat moduulit | Huomautukset |
|---|---|---|
| 29. elokuuta 2024 | lammps/29Aug2024 |
Vakaa julkaisu, päivitys 2 |
- Ohjeet oman räätälöidyn version rakentamiseen löytyvät polusta
/appl/soft/chem/lammps/custom.
| Julkaisu | Saatavilla olevat moduulit | Huomautukset |
|---|---|---|
| 29. elokuuta 2024 | lammps/29Aug2024-cpulammps/29Aug2024-gpu |
Vakaa julkaisu, päivitys 4 GPU-versio (Kokkos) saatavilla |
| 22. heinäkuuta 2025 | lammps/22Jul2025-cpulammps/22Jul2025-gpu |
Vakaa julkaisu, päivitys 3 GPU-versio (Kokkos) saatavilla |
- Ohjeet oman räätälöidyn version rakentamiseen löytyvät polusta
/appl/local/csc/soft/chem/lammps/custom.
Lisenssi
LAMMPS on avoimen lähdekoodin ohjelmisto, jota jaellaan vapaasti GNU General Public License (GPL) -lisenssin ehtojen mukaisesti.
Käyttö
Lataa CSC:n asentama moduuli ja tarkista, mitkä paketit ovat saatavilla. Esimerkiksi:
LUMIssa sinun täytyy ensin aktivoida CSC:n paikallinen ohjelmistopino, ennen kuin voit nähdä ja ladata moduulin. Esimerkiksi:
Jos esiasennettu moduuli ei sisällä tarvitsemiasi paketteja, voit asentaa oman räätälöidyn version seuraavasti:
- Siirry hakemistoon
/appl/soft/chem/lammps/customPuhdissa/Mahdissa tai hakemistoon/appl/local/csc/soft/chem/lammps/customLUMIssa. - Lue käännösohjeet, esimerkiksi
lammps-cpu-instruction.txt. - Valitse paketit, jotka haluat sisällyttää, ja käännä ohjelmisto ohjeiden mukaisesti.
- Testaa asennuksesi.
- Esimerkkisyötteitä on saatavilla LAMMPSin GitHub-repositoriossa.
- Esimerkkiajoskriptejä on saatavilla alla.
Käännä käyttäen nopeaa paikallista levyä
Käännä Puhti/Mahti-ympäristössä hakemistossa $TMPDIR, jotta suorituskyky
on parempi ja kuormitus jaetulle tiedostojärjestelmälle vähäisempi. Koska
paikallinen levy siivotaan usein, muista siirtää tiedostosi myöhemmin
projektisi /projappl-hakemistoon. Asetus
-DCMAKE_INSTALL_PREFIX=/projappl/... varmistaa, että tiedostot siirtyvät
automaattisesti, kun suoritat komennon make install. Katso tarkemmat
tiedot mukana toimitetuista rakennusohjeista.
GPU-versiot
GPU-tuen käyttöönottoon suosittelemme rakentamaan LAMMPSin Kokkos-paketilla. Kokkos on siirrettävä ohjelmointimalli, joka mahdollistaa ajon sekä Nvidia- että AMD-GPU:illa. Se on myös tyypillisesti tehokkaampi kuin tavallinen GPU-paketti.
Ajon aikana on suositeltavaa asettaa MPI-tehtävien määrä solmua kohden samaksi kuin solmun fyysisten GPU:iden määrä (LUMIssa GCD:iden määrä). Useiden MPI-tehtävien sijoittaminen samalle GPU:lle on yleensä nopeampaa vain silloin, jos joitakin syöteskriptin osia ei ole siirretty käyttämään Kokkosia. Katso lisätietoja LAMMPSin dokumentaatiosta.
Esimerkkejä ajoeräskripteistä
#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=standard
#SBATCH --time=01:00:00
#SBATCH --nodes=4
#SBATCH --ntasks-per-node=64
#SBATCH --cpus-per-task=2
export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}
module use /appl/local/csc/modulefiles
module load lammps/29Aug2024-cpu
srun lmp -in in.script -sf omp
#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=standard-g
#SBATCH --time=01:00:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=8
#SBATCH --gpus-per-node=8
export OMP_NUM_THREADS=1
export OMP_PROC_BIND=spread
export OMP_PLACES=threads
export MPICH_GPU_SUPPORT_ENABLED=1
module use /appl/local/csc/modulefiles
module load lammps/29Aug2024-gpu
srun lmp -in in.script -k on g ${SLURM_GPUS_ON_NODE} -sf kk -pk kokkos
Suorituskykyhuomiot
Seuraava kaavio vertaa LAMMPSin suorituskykyä ja skaalautuvuutta suorittimilla ja GPU:illa Mahdissa ja LUMIssa. Järjestelmä sisältää 16 miljoonaa atomia.

- LAMMPSin suorituskyky mitataan tässä yksikössä Gatom-steps/s, eli kuinka monta miljardia atomia voidaan propagoda yksi aika-askel sekunnissa.
- Suuret järjestelmät (miljoonia atomeja) pystyvät hyödyntämään useita GPU:ita tehokkaasti. Esimerkkijärjestelmä, jossa on 16 miljoonaa atomia, skaalautuu hyvin usealle GPU-solmulle ja on noin 10 kertaa nopeampi kuin ajo vastaavalla määrällä CPU-solmuja.
- Pienemmät järjestelmät kannattaa ajaa suorittimilla tai yhdellä GPU:lla (tai jakamalla yksi GPU usean riippumattoman trajektorin kesken monireplika- simulaatioissa, katso alla).
- Useiden OpenMP-säikeiden käynnistäminen MPI-tehtävää kohden voi parantaa
CPU-suorituskykyä. Käytä komentorivivalitsinta
-sf ompja aseta ympäristömuuttujaOMP_NUM_THREADS, jotta OpenMP-säikeistys aktivoituu kaikille sitä tukeville tyyleille. Huomaa, että MPI-tehtävien (--ntasks-per-node) ja säikeiden/tehtävä (--cpus-per-task) tulon ei pitäisi ylittää solmun fyysisten ytimien määrää, muuten suorituskyky kärsii. Katso esimerkiksi yllä oleva Mahdin esimerkki.
LAMMPS suurteholäpimenolaskennassa
LAMMPS tarjoaa kattavan tuen silmukoiden ja useiden riippumattomien
simulaatioiden suorittamiseen yhdellä syötetiedostolla. Komentorivivalitsin
-partition mahdollistaa näiden ajamisen rinnakkain yhden Slurm-työvaiheen
sisällä, mikä nopeuttaa laskentaa ja pitää ajojonojärjestelmän kuormituksen
vähäisenä, koska liialliset srun- tai sbatch-kutsut vältetään. Alla on
esimerkki Puhtille tarkoitetusta ajoeräskriptistä, jossa käytetään
-partition-valitsinta.
#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=large
#SBATCH --time=00:15:00
#SBATCH --nodes=3
#SBATCH --ntasks-per-node=40
#SBATCH --mem-per-cpu=100
module purge
module load lammps/29Aug2024
export OMP_NUM_THREADS=1
srun lmp -in loop.lammps -partition 24x5
Yllä oleva esimerkki ajaa etanolin adsorptiota NaCl-pinnalle kuvaavan umbrella
sampling -simulaation. Simulaatio koostuu 24 iteraatiosta, joissa etanolimolekyyliä
vedetään vähitellen lähemmäs pintaa. Nämä 24 iteraatiota ajetaan kaikki
samanaikaisesti käyttäen kutakin varten 5 MPI-tehtävää, mikä määritellään
ajoeräskriptissä muodossa -partition 24x5. Prosessorien määrän on vastattava
pyydettyä kokonaismäärää, tässä tapauksessa 3 täyttä Puhti-solmua (120 ydintä).
Yleisesti ottaen partitioiden ei tarvitse olla samankokoisia, vaan voidaan
esimerkiksi määrittää -partition 3x30 20 10, mikä tarkoittaa 3 partiota, joissa
on 30 ydintä, yhtä 20 ytimen partiota ja yhtä 10 ytimen partiota (3 Puhti-solmua).
Tämä ei tietenkään ole järkevää töissä, joissa alitehtävät ovat käytännössä
identtisiä, kuten tässä tapauksessa.
Jos -partition-valitsinta käytetään, täytyy peräkkäisten simulaatioiden
syötteissä tavallisesti käytetyt index- ja loop-muuttujatyylit korvata.
Monipartitioajoihin yhteensopivat vastaavat tyylit ovat world, universe
ja uloop. Lisätietoja on LAMMPSin dokumentaatiossa aiheista
yhden syöteskriptin useiden simulaatioiden ajaminen,
partition-valitsin ja
monipartitioajojen kanssa yhteensopivat muuttujatyylit.
Ajoeräskripti saman järjestelmän ajamiseen jakamalla yksi LUMIn GCD (puoli GPU:ta) kaikkien 24 replikan kesken voisi näyttää tältä:
#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=small-g
#SBATCH --time=00:15:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=24
#SBATCH --gpus-per-node=1
module use /appl/local/csc/modulefiles
module load lammps/29Aug2024-gpu
export MPICH_GPU_SUPPORT_ENABLED=1
export OMP_NUM_THREADS=1
export OMP_PROC_BIND=spread
export OMP_PLACES=threads
srun lmp -in loop.lammps -k on g 1 -sf kk -pk kokkos -partition 24x1
Viitteet
Seuraava CPC-artikkeli on ensisijainen viite LAMMPSin siteeraamiseen. Se antaa yleiskuvan ohjelmistosta, mukaan lukien sen rinnakkaisalgoritmit, suunnitteluominaisuudet, suorituskyvyn sekä lyhyet kuvaukset monista sen materiaalimallinnusominaisuuksista. Halutessasi voit mainita artikkelissasi myös LAMMPSin verkkosivuston URL-osoitteen, eli https://www.lammps.org.
LAMMPS - a flexible simulation tool for particle-based materials modeling at the atomic, meso, and continuum scales, A. P. Thompson, H. M. Aktulga, R. Berger, D. S. Bolintineanu, W. M. Brown, P. S. Crozier, P. J. in 't Veld, A. Kohlmeyer, S. G. Moore, T. D. Nguyen, R. Shan, M. J. Stevens, J. Tranchida, C. Trott, S. J. Plimpton, Comp Phys Comm, 271 (2022) 10817.
Viitteitä muihin LAMMPSissa käytettyihin menetelmiin löytyy LAMMPSin verkkosivustolta.