Skip to content

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