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