Hyppää sisältöön

Docs CSC now features an automatic Finnish translation. Click here for more information.

Warning!

Puhti and Mahti are being decommissioned in stages, and their storage areas will become fully unavailable from 15 October 2026. Clean up unnecessary files and move any data you need to keep by 31 August 2026. See the Roihu data migration guide for instructions on transferring your data to Roihu.

Puhti scratch is very full: keep only active data there and move or delete everything else. No new Puhti scratch quota will be granted.

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 sinun voi olla tarpeen kääntää oma räätälöity versiosi tarpeidesi mukaan. Lue alla olevat ohjeet.

Saatavuus

Julkaisu Saatavilla olevat moduulit Huomautukset
11 February 2026 lammps/20260211 Oletus, ennakkojulkaisu
22 July 2025 lammps/20250722.3 Vakaa julkaisu, päivitys 3
Julkaisu Saatavilla olevat moduulit Huomautukset
29 August 2024 lammps/29Aug2024 Vakaa julkaisu, päivitys 2
  • Ohjeet omien räätälöityjen versioiden kääntämiseen ovat saatavilla polussa /appl/soft/chem/lammps/custom.
Julkaisu Saatavilla olevat moduulit Huomautukset
29 August 2024 lammps/29Aug2024 Vakaa julkaisu, päivitys 2
  • Ohjeet omien räätälöityjen versioiden kääntämiseen ovat saatavilla polussa /appl/soft/chem/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 omien räätälöityjen versioiden kääntämiseen ovat saatavilla polussa /appl/local/csc/soft/chem/lammps/custom.

Lisenssi

LAMMPS on avoimen lähdekoodin ohjelma, 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 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 räätälöidyn version seuraavasti:

  1. Siirry hakemistoon /appl/soft/chem/lammps/custom Puhdissa/Mahdissa tai hakemistoon /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.

Räätälöidyt versiot Roihussa

Roihussa ei vielä ole saatavilla LAMMPSin manuaalisia asennusohjeita. Käytä saatavilla olevia moduuleja, kunnes järjestelmän räätälöityjen asennusten ohjeet valmistuvat.

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

Käännä Puhdissa/Mahdissa hakemistossa $TMPDIR, jotta suorituskyky on parempi ja kuormitus jaetulle tiedostojärjestelmälle vähäisempi. Koska paikallinen levy tyhjennetään 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 yksityiskohdat mukana toimitetuista käännösohjeista.

GPU-versiot

GPU-tuen käyttöönottoon 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 solmun fyysisten GPU:iden määrä (GCD:t LUMIssa). Useiden MPI-tehtävien osoittaminen 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.

Esimerkkejä ajoeräskripteistä

#!/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 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 lammps/20260211

srun lmp -in in.script -sf omp
!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=small
#SBATCH --time=01:00:00
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=40

module purge
module load lammps/29Aug2024

srun lmp -in in.script
#!/bin/bash
#SBATCH --account=<project>
#SBATCH --partition=medium
#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 purge
module load lammps/29Aug2024

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

Suorituskykyhuomiot

Seuraava kaavio vertaa LAMMPSin suorituskykyä ja skaalautuvuutta CPU:illa ja GPU:illa Mahdissa ja LUMIssa. Järjestelmä sisältää 16 miljoonaa atomia.

LAMMPS performance

  • 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 useille GPU-solmuille ja on noin 10 kertaa nopeampi verrattuna ajoon vastaavalla määrällä CPU-solmuja.
  • Pienemmät järjestelmät kannattaa ajaa CPU:illa 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 CPU-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 Mahdin esimerkki.

Suurivolyymilaskenta LAMMPSilla

LAMMPS tarjoaa kattavan tuen silmukoiden ja useiden riippumattomien simulaatioiden suorittamiseen yhdellä syötetiedostolla. -partition -komentorivivalitsin mahdollistaa näiden ajamisen rinnakkain yhden Slurm-työvaiheen sisällä, mikä nopeuttaa laskentaa ja pitää samalla ajojonojärjestelmän kuormituksen vähäisenä, koska liiallisia srun- tai sbatch-kutsuja 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 mallintavan umbrella sampling -simulaation. Simulaatio koostuu 24 iteraatiosta, joissa etanolimolekyyliä vedetään vähitellen lähemmäs pintaa. Nämä 24 iteraatiota ajetaan kaikki rinnakkain käyttäen kutakin varten 5 MPI-tehtävää, mikä on määritelty ajoeräskriptissä muodossa -partition 24x5. Prosessorien määrän on täsmättävä pyydettyyn määrään, tässä tapauksessa 3 täyteen Puhti-solmuun (120 ydintä). Yleisesti osioiden ei tarvitse olla samankokoisia, vaan voidaan esimerkiksi määrittää -partition 3x30 20 10, jolloin saadaan 3 osiota, joissa on 30 ydintä, yksi 20 ytimen osio ja yksi 10 ytimen osio (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ä.

Jos -partition-valitsinta käytetään, täytyy peräkkäisten simulaatioiden syötteessä tavallisesti käytetyt index- ja loop-muuttujatyylit korvata. Moniosioajoihin yhteensopivat vastaavat tyylit ovat world, universe ja uloop. Lisätietoja on LAMMPSin dokumentaatiossa aiheista yhden syöteskriptin useiden simulaatioiden ajaminen, partition-valitsin ja moniosioajojen kanssa yhteensopivat muuttujatyylit.

Ajoeräskripti 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 ohjelmakoodista, 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.

Lisätietoja

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta