DMTCP
DMTCP je orodje za beleženje vmesnega stanja aplikacije, ki omogoča shranjevanje in obnovitev stanja aplikacij brez potrebe po spreminjanju izvorne kode ali po uporabi posebne knjižnice. To je še posebej uporabno za dolgotrajne izračune, kjer je treba shraniti stanje programa aplikacije in ga kasneje nadaljevati.
DMTCP lahko uporabimo, če je izvajanje aplikacije daljše od časovne omejitve 48 ur. DMTCP shrani trenutno stanje ob doseženi časovni omejitvi. Nato ponovno zaženemo aplikacije z DMTCP iz predhodno shranjenega stanja.
Podpira aplikacije, ki uporabljajo različne implementacije MPI-ija, OpenMP in številne programske jezike, kot so: MATLAB, Python, Perk in mnogo drugih. S pomočjo programa TightVNC je omogočeno ustvarjanje kontrolnih točk grafičnih aplikacij, ki tečejo na strežniku X.
Zastavica --interval
Zastavica --interval
v DMTCP omogoča uporabniku, da določi časovni interval v sekundah med samodejnimi kontrolnimi točkami. To je še posebej uporabno za dolgotrajne procese, kjer želite redno shranjevati stanje aplikacije, da zmanjšate izgubo podatkov v primeru napake ali prekinitve.
Sintaksa
dmtcp_launch --interval <časovni_interval> ./vaša_aplikacija
Parametri
- <časovni_interval>: Časovni interval med samodejnimi kontrolnimi točkami, izražen v sekundah. Na primer --interval 3600 bo ustvaril kontrolno točko vsako uro.
Uporaba
Na HPC Vegi se DMTCP naloži z ukazom:
ml dmtcp
Skripta Sbatch
Primer uporabe DMTCP v skripti sbatch:
#! /bin/sh
#SBATCH --partition=<ime_particije> # spremenite v ustrezno ime particije ali odstranite
#SBATCH --time=<čas_rezervacije> # vnesite ustrezen čas rezervacije
#SBATCH --nodes=<število_vozlišč> # število vozlišč
#SBATCH --ntasks-per-node=<procesi_na_vozlišče> # število procesov na vozlišče
#SBATCH --mem=<pomnilniški_viri> # pomnilniški viri
#SBATCH --job-name="<ime_naloge>" # spremenite v ime vaše naloge
#SBATCH --output=<izhodna_datoteka>.out # izhod v to datoteko
#SBATCH --error=<datoteka_napak>.err # izhod napak v to datoteko
ml dmtcp
# Časovni interval je 4 sekunde
dmtcp_launch --new-coordinator --interval 4 ./moja_aplikacija
Zagon iz shranjenega stanja
dmtcp_restart ime_kontrolnih_tock*.dmtcp