LAMMPS

      LAMMPS to klasyczny kod dynamiki molekularnej z naciskiem na modelowanie materiałów. Jest to akronim od Large-scale Atomic/Molecular Massively Parallel Simulator. LAMMPS ma potencjał dla materiałów w stanie stałym (metale, półprzewodniki) i miękkiej materii (biomolekuły, polimery) oraz systemów gruboziarnistych lub mezoskopowych. Może być używany do modelowania atomów lub, bardziej ogólnie, jako równoległy symulator cząstek w skali atomowej, mezo lub kontinuum. LAMMPS działa na pojedynczych procesorach lub równolegle przy użyciu technik przekazywania komunikatów i dekompozycji przestrzennej domeny symulacyjnej.

Strona producenta oprogramowania: https://lammps.sandia.gov/

 

Wdrożenie w klastrze Blueocean:

Oprogramowanie LAMMPS występuje w klastrze w trzech wersjach różniących się od siebie implementacją biblioteki OpenMPI służącej do uruchamiania obliczeń równoległych.

lammps-12Dec18_mpi_4.0.1:
Wersja oprogramowania LAMMPS: lammps-12Dec18
Wersja oprogramowania OpenMPI: OpenMPI 4.0.1
Ścieżka instalacji oprogramowania: /opt/lammps/lammps-12Dec18_mpi_4.0.1
Ścieżka do katalogu SCRATCH oprogramowania LAMMPS: /opt/SCRATCH/LAMMPS
Moduł ładujący zmienne środowiskowe oprogramowania: lammps-12Dec18_mpi_4.0.1

 

lammps-12Dec18_mpi_3.1.4
Wersja oprogramowania LAMMPS: lammps-12Dec18
Wersja oprogramowania OpenMPI: OpenMPI 3.1.4
Ścieżka instalacji oprogramowania: /opt/lammps/lammps-12Dec18_mpi_3.1.4
Ścieżka do katalogu SCRATCH oprogramowania LAMMPS: /opt/SCRATCH/LAMMPS
Moduł ładujący zmienne środowiskowe oprogramowania: lammps-12Dec18_mpi_3.1.4

 

lammps_12Dec18:
Wersja oprogramowania LAMMPS: lammps-12Dec18
Wersja oprogramowania OpenMPI: OpenMPI 2.1.5
Ścieżka instalacji oprogramowania: /opt/lammps/lammps-12Dec18
Ścieżka do katalogu SCRATCH oprogramowania LAMMPS: /opt/SCRATCH/LAMMPS
Moduł ładujący zmienne środowiskowe oprogramowania: lammps-12Dec18

 

Przykładowy plik uruchamiający oprogramowanie lammps-12Dec18_mpi_4.0.1 w trybie wsadowym: (np.: lammps_run):

 

#!/bin/bash

# 1. Przygotowanie obliczenia
# Sprawdzanie liczby argumentow
if [ $# -ne 2 ];
then
echo "use:"
echo "./lammps_run inpup_file proc_number"
echo ""
echo "example:"
echo "./lammps_run in.min.box 4"
echo ""
exit 1
fi;

# Zmienne uzytkownika:
# Aktualny czas:
cTIME=`date +"%Y%m%d%H%M%S"`

# Nazwa zadania:
f=lammps_run_$1.$cTIME

# Nazwa pliku wejsciowego:
IFILE=$1

# Wskazanie ilosci rdzeni:
UNCPU=$2

# 2. Deklaracja środowiska systemu kolejkowego
#Zmienne systemu kolejkowego:
echo "#!/bin/bash" > $f
echo "#$ -cwd" >> $f
echo "#$ -M adres.email@p.lodz.pl " >> $f
echo "#$ -m e" >> $f
echo "#$ -q cparallel.q" >> $f
echo "#$ -pe mpi $UNCPU" >> $f
echo "#$ -V" >> $f

# 3. Deklaracja środowiska oprogramowania użytkowego
echo "module load python_3.6.7" >> $f
echo "module load openmpi_4.0.1" >> $f
echo "module load lammps-12Dec18_mpi_4.0.1" >> $f

# 4. Wykonanie komendy uruchamiającej zadanie
echo "mpirun --mca btl_tcp_if_include 10.0.0.0/24 \
--mca mca_base_verbose stderr,level:9 \
--mca allocator_base_verbose 100 -np $UNCPU \
lmp_mpi -in $IFILE" >> $f

# 5. Działania po wykonaniu zadania

# 6. Przekazanie zadania do systemu kolejkowego:
qsub -S /bin/bash $f

 

Przykładowy scenariusz uruchomienia zadania w trybie wsadowym dla oprogramowania lammps - przekazanie zadania do systemu kolejkowego:

1. Przejście do katalogu w którym znajdują się pliki zadania (katalog_zadania): plik_uruchamiający_zadanie (np.: lammps_run), pliku wejściowy oprogramowania LAMMPS (np.: *.lin/*.ldt)
cd katalog_zadania

2. Zmiana/potwierdzenie uprawnień pliku uruchamiającego zadanie (np.: lammps_run)
chmod +x ./nazwa_pliku_uruchamiającego_zadanie (np.: lammps_run)

3. Uruchomienie zadania w klastrze:
Będąc w katalogu z zadaniem (katalog_zadania) należy wydać polecenie:

./lammps_run inpup_file proc_number

np.:

./lammps_run plik.wejsciowy.lin 48