Detail produktu
Software Package for Reporting Errors in Distributed MPI Applications
Vznik: 2024
MPI, Chyba, Výjimka, Uváznutí, Reportování
Řízení chybových stavů v aplikacích C++ se provádí prostřednictvím výjimek.
V distribuovaných aplikacích se stává nezbytným komunikovat s ostatními procesy,
když dojde k chybě, což aplikaci dává možnost buď se z chybového stavu zotavit,
nebo elegantně nahlásit chybu a ukončit se. Bohužel, standard MPI nenabízí žádné
vestavěné mechanismy pro zpracování chyb v distribuovaném prostředí. Tento
software představuje nový přístup k ošetření výjimek v aplikacích MPI. Cíle jsou
(1) oznámit jakýkoli chybový stav uživateli pěkně formátovaným způsobem pouze
jedním rankem, (2) zajistit, že aplikace nikdy nenarazí na deadlock, (3)
navrhnout jednoduché rozhraní a zajistit interoperabilitu s dalšími knihovnami
C/C++. Navrhovaná metoda přijímá minimalistické rozhraní a nabízí několik výhod.
Není vyžadováno žádné speciální řízení chyb pro určité ranky, jediná reduce
operace je dostatečná k potvrzení, že aplikace prošla kontrolním bodem, deadlock
v aplikaci nemůže narušit zpracování chyb, a aplikace vždy elegantně skončí
s vhodnou chybovou zprávou. Kód prošel testováním s různými implementacemi MPI
v rozsahu až 1536 ranků. Byly vybrány externí knihovny, konkrétně distribuované
verze rychlé Fourierovy transformace (FFTW) a knihovny vstupu/výstupu HDF5, pro
jejich rozsáhlé využití kolektivních komunikací. Testování zahrnovalo zavedení
několika injektovaných chyb do více ranků, jako je neexistující vstupní soubor,
překročení diskové kvóty, nesprávný rank v volání MPI a standardní systémové
výjimky. Pozoruhodně kód prokázal správnou funkčnost ve všech testovaných
scénářích.