dc.contributor.advisor | Jančar, Petr | |
dc.contributor.author | Meca, Ondřej | |
dc.date.accessioned | 2019-06-26T05:00:10Z | |
dc.date.available | 2019-06-26T05:00:10Z | |
dc.date.issued | 2018 | |
dc.identifier.other | OSD002 | |
dc.identifier.uri | http://hdl.handle.net/10084/137504 | |
dc.description.abstract | This thesis focuses on verification of parallel applications. In particular, applications written in MPI (Message Passing Interface). The text is divided into two parts. The first part describes an implementation of state space verification into the publicly available tool Kaira developed at the Faculty of Electrical Engineering and Computer Science at the Technical University of Ostrava. Kaira is a development environment with various tools for creating parallel applications for distributed memory environments (with the usage of MPI). The implemented verification algorithm is based on standard partial order reduction methods with a particular improvement to handle Kaira specific needs. Specifically, the improvement optimizes verification of systems with transition priorities that are integral to Kaira. The first part of the thesis also contains a description of the parallelization of the verification algorithm. The parallelization is based on a new approach that is tailored to common applications developed in Kaira -- applications usually make computation over given data that can be large. Data are a part of states, hence we should avoid their exchanging among processes. The proposed algorithm reduces it by trying to exchange only the states hashes (states are exchanged only in unnecessary cases in order to achieve good load balancing). The effectiveness of the implemented verification method including scaling of the parallel algorithm is demonstrated on benchmarks utilizing up to 512 processes.
The second part of the thesis describes verification of MPI applications. In particular, an algorithm deals with a non-deterministic behavior that is permitted by the MPI standard. It is allowed to implement some data exchanging functions according to two communication modes -- \emph{eager} or \emph{rendezvous}. It is up to MPI which mode is chosen and the user cannot test it. A correctly written application has to count with the both options since a synchronization in the rendezvous mode can cause a deadlock. The second part of this thesis describes an algorithm that allows verification of an application only with regards to the eager mode, and detects deadlocks introduced by a synchronization that may be missed. | en |
dc.description.abstract | Tato dizertační práce se zaměřuje na verifikaci paralelních aplikací. Konkrétně aplikací implementovaných pomocí MPI (rozhraní pro posílání zpráv mezi procesy). Text je rozdělen na dvě části. První část se zaměřuje na implementaci verifikace stavového prostoru do veřejně dostupného nástroje Kaira, který je vyvíjen na fakultě elektotechniky a informatiky na Vysoké škole báňské v Ostravě. Kaira představuje vývojové prostředí s několika nástroji pro snadné vytváření paralelních aplikací pro systémy s distribuovanou pamětí (s využitím MPI). Verifikace implementovaná do Kairy je založena na principech standardních redukčních metod založených na částečném uspořádání. Implementace byla přizpůsobená prostředí Kairy a vylepšena pro účely redukce systémů obsahujících přechody s prioritami, které jsou součástí Kairy. První část se také zabývá paralelizací verifikačního algoritmu, která je navržena tak, aby vyhovovala aplikacím vytvářeným v Kaiře. Aplikace většinou provádějí výpočet nad velkými daty. Jelikož tyto data jsou součástí jednotlivých stavů, měli bychom se vyvarovat jejich přeposílání mezi procesy. Navržený algoritmus se vyhýbá jejich přeposílání, přeposíláním pouze hashů (stavy jsou přeposílány pouze v nutných případech pro dosažení rovnoměrného rozložení stavů mezi procesy). Efektivita tohoto přístupu byla testována na příkladech s využitím až 512 procesů.
Druhá část této dizertační práce se věnuje verifikaci přímo MPI aplikací. Konkrétně nedeterministického chování, které tento standart dovoluje. Některé funkce, které posílají data mezi procesy, mohou být implementovány dvěmi způsoby -- s pomocí dočasné paměti nebo bez. Při použití dočasné paměti může proces, který posílá data ihned pokračovat ve výpočtu. Pokud dočasnou paměť nepoužijeme, proces musí synchronizovat s procesem, který data přijímá. MPI implementace se může libovolně rozhodovat, zda dočasnou paměť použije či nikoliv. Proto každá korektně napsaná aplikace musí počítat s oběmi variantami, jinak může dojík k jejímu uváznutí. Druhá část popisuje algoritmus, který dovolí verifikovat aplikaci tak, že všechny operace se provádí s použitím dočasné paměti. Pokud taková aplikace je bez chyby, algoritmus lze použít pro nalezení těch chyb, které mohla způsobit případná synchronizace. | cs |
dc.format | 110 stran : ilustrace | |
dc.format.extent | 1535878 bytes | |
dc.format.mimetype | application/pdf | |
dc.language.iso | en | |
dc.publisher | Vysoká škola báňská - Technická univerzita Ostrava | cs |
dc.subject | verification | en |
dc.subject | state space reduction | en |
dc.subject | MPI | en |
dc.subject | parallel verification | en |
dc.subject | non-deterministic synchronization of MPI | en |
dc.subject | verifikace | cs |
dc.subject | redukce stavového prostoru | cs |
dc.subject | MPI | cs |
dc.subject | parallelní verifikace | cs |
dc.subject | nedeterministická synchronizace MPI | cs |
dc.title | Verification of Parallel Applications | en |
dc.title.alternative | Verifikace paralelních aplikací | cs |
dc.type | Disertační práce | cs |
dc.identifier.signature | 201900125 | |
dc.identifier.location | ÚK/Sklad diplomových prací | |
dc.contributor.referee | Strejček, Jan | |
dc.contributor.referee | Jakl, Ondřej | |
dc.contributor.referee | Rogalewicz, Adam | |
dc.date.accepted | 2019-01-10 | |
dc.thesis.degree-name | Ph.D. | |
dc.thesis.degree-level | Doktorský studijní program | cs |
dc.thesis.degree-grantor | Vysoká škola báňská - Technická univerzita Ostrava. Fakulta elektrotechniky a informatiky | cs |
dc.description.department | 460 - Katedra informatiky | cs |
dc.thesis.degree-program | Informatika, komunikační technologie a aplikovaná matematika | cs |
dc.thesis.degree-branch | Informatika | cs |
dc.description.result | vyhověl | cs |
dc.identifier.sender | S2724 | |
dc.identifier.thesis | MEC059_FEI_P1807_1801V001_2018 | |
dc.rights.access | openAccess | |