Hyppää sisältöön

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 kääntämään oman mukautetun version tarpeidesi mukaan. Lue alla olevat ohjeet.

Saatavuus

Julkaisu Saatavilla olevat moduulit Huomautukset
11 February 2026 lammps/20260211 Oletus, Esijulkaisu
22 July 2025 lammps/20250722.3 Vakaa julkaisu, päivitys 3
  • Ohjeet oman mukautetun version kääntämiseen ovat saatavilla polussa /appl/soft/manual/chem/x86_64/lammps/custom/.
Julkaisu Saatavilla olevat moduulit Huomautukset
11 February 2026 lammps/20260211 Oletus, Esijulkaisu
22 July 2025 lammps/20250722.3 Vakaa julkaisu, päivitys 3
  • Ohjeet oman mukautetun version kääntämiseen ovat saatavilla polussa /appl/soft/manual/chem/aarch64/lammps/custom/.
Julkaisu Saatavilla olevat moduulit Huomautukset
29 August 2024 lammps/29Aug2024-cpu
lammps/29Aug2024-gpu
Vakaa julkaisu, päivitys 4
GPU-versio (Kokkos) saatavilla
22 July 2025 lammps/22Jul2025-cpu
lammps/22Jul2025-gpu
Vakaa julkaisu, päivitys 3
GPU-versio (Kokkos) saatavilla
  • Ohjeet oman mukautetun version kääntämiseen ovat saatavilla polussa /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ö

Tarkista, mitä LAMMPS-versioita on saatavilla:

module spider lammps

Lataa CSC:n asentama moduuli ja tarkista, mitkä paketit ovat saatavilla. Esimerkiksi Roihussa:

module load gcc/15.2.0 openmpi/5.0.10
module load lammps/20260211
lmp -help

LUMIssa sinun täytyy ensin aktivoida CSC:n paikallinen ohjelmistopino, ennen kuin voit nähdä ja ladata moduulin. Esimerkiksi:

module use /appl/local/csc/modulefiles
module load lammps/29Aug2024-gpu
lmp -help

Jos esiasennettu moduuli ei sisällä tarvitsemiasi paketteja, voit asentaa oman mukautetun version seuraavasti:

  1. Siirry hakemistoon /appl/soft/manual/chem/x86_64/lammps/custom/ Roihu-CPU:ssa, /appl/soft/manual/chem/aarch64/lammps/custom/ Roihu-GPU:ssa tai /appl/local/csc/soft/chem/lammps/custom LUMIssa.
  2. Lue käännösohjeet, esimerkiksi lammps-cpu-instruction.txt.
  3. Valitse paketit, jotka haluat sisällyttää, ja käännä ohjelmisto ohjeiden mukaisesti.
  4. Testaa asennuksesi.
    1. Esimerkkisyötteitä on saatavilla LAMMPSin GitHub-repositoriossa.
    2. Esimerkkiajoskriptejä on saatavilla alla.

Käännä käyttäen nopeaa paikallista levyä

Käännä ohjelmisto laskentasolmun nopealla paikallisella levyllä paremman suorituskyvyn saavuttamiseksi ja jaetun tiedostojärjestelmän kuormituksen vähentämiseksi. Koska paikallinen levy siivotaan usein, muista siirtää tiedostosi myöhemmin projektisi /projappl-hakemistoon. Asetus -DCMAKE_INSTALL_PREFIX=/projappl/... varmistaa, että tiedostot siirretään automaattisesti, kun suoritat komennon make install. Katso tarkemmat tiedot mukana toimitetuista käännösohjeista.

GPU-versiot

GPU-tuen ottamiseksi käyttöön suosittelemme kääntämään LAMMPSin Kokkos-paketilla. Kokkos on siirrettävä ohjelmointimalli, joka mahdollistaa ajamisen 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 fyysisten GPU:iden määrä solmulla (GCD:t LUMIssa). Useiden MPI-tehtävien kohdistaminen samalle GPU:lle on yleensä nopeampaa vain, jos joitakin syöteskriptin osia ei ole siirretty käyttämään Kokkosia. Katso lisätietoja LAMMPSin dokumentaatiosta.

Eräajoskriptiesimerkkejä

#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=small
#SBATCH --time=01:00:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=64
#SBATCH --mem-per-cpu=1000M

module purge
module load gcc/15.2.0 openmpi/5.0.10
module load lammps/20260211

srun lmp -in in.script
#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=medium
#SBATCH --time=01:00:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=64
#SBATCH --cpus-per-task=6

export OMP_NUM_THREADS=${SLURM_CPUS_PER_TASK}
export OMP_PLACES=cores

module purge
module load gcc/15.2.0 openmpi/5.0.10
module load lammps/20260211

srun lmp -in in.script -sf omp
#!/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

Suorituskykyhuomioita

  • LAMMPSin suorituskykyä mitataan tyypillisesti atomiaskeleina sekunnissa (atom-steps/s), eli kuinka monta atomia voidaan siirtää yhden aika-askeleen verran joka sekunti.
  • Vain suuret järjestelmät (miljoonia atomeja) pystyvät hyödyntämään useita GPU:ita tehokkaasti.
  • Pienemmät järjestelmät kannattaa ajaa suorittimilla tai yhdellä GPU:lla (tai jakamalla yksi GPU useiden riippumattomien trajektorien kesken monireplikaatiosimulaatioilla, katso alla).
  • Useiden OpenMP-säikeiden käynnistäminen MPI-tehtävää kohden voi parantaa suorittimien suorituskykyä. Käytä -sf omp -komentorivivalitsinta ja aseta OMP_NUM_THREADS-ympäristömuuttuja aktivoidaksesi OpenMP-säikeistyksen 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 Roihu-esimerkki.

Suurivolyymilaskenta LAMMPSilla

LAMMPS tarjoaa kattavan tuen silmukoiden ja useiden riippumattomien simulaatioiden suorittamiseen yhdellä syötetiedostolla. -partition -komentorivivalitsin mahdollistaa näiden ajamisen samanaikaisesti yhden Slurm-työvaiheen sisällä, mikä nopeuttaa laskentaa ja pitää samalla eräjono-järjestelmän kuormituksen vähäisenä, koska liiallisia srun- tai sbatch-kutsuja vältetään. Alla on esimerkki -partition-valitsinta käyttävästä eräajoskriptistä Roihulle.

#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=medium
#SBATCH --time=00:15:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=384

module purge
module load gcc/15.2.0 openmpi/5.0.10
module load lammps/20260211

export OMP_NUM_THREADS=1

srun lmp -in loop.lammps -partition 24x16

Yllä oleva esimerkki ajaa etanolin adsorptiota NaCl-pinnalle mallintavan 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 kohti 16:ta MPI-tehtävää, mikä määritellään eräajoskriptissä muodossa -partition 24x16. Prosessorien määrän on summattava pyydettyyn määrään, tässä tapauksessa yhteen täyteen Roihu-solmuun (384 ydintä). Yleisesti osioiden ei tarvitse olla samankokoisia, mutta voisi esimerkiksi määrittää -partition 3x100 50 34 kolmelle 100 ytimen osiolle, yhdelle 50 ytimen osiolle ja yhdelle 34 ytimen osiolle (yhteensä 384 ydintä, eli 1 Roihu-solmu). Tämä ei tietenkään ole järkevää töille, joissa osatehtävät ovat käytännössä identtisiä, kuten tässä.

Jos -partition-valitsinta käytetään, täytyy peräkkäisten simulaatioiden syötteessä käytetyt tavalliset index- ja loop-muuttujatyylit korvata. Moniosioisten töiden kanssa yhteensopivat vastaavat tyylit ovat world, universe ja uloop. Lisätietoja on LAMMPSin dokumentaatiossa aiheista useiden simulaatioiden ajaminen yhdestä syöteskriptistä, partition-valitsin ja moniosioisten töiden kanssa yhteensopivat muuttujatyylit.

Eräajoskripti saman järjestelmän ajamiseen jakamalla yksi LUMI 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 materiaalimallinnuksen ominaisuuksista. 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.

Lisätietoja

Onko tämä sivu hyödyllinen?
Kiitos palautteestasi!
Kiitos! Arvostamme palautettasi.

Kerro meille miten voisimme parantaa tätä sivua ottamalla meihin yhteyttä .