dc.contributor.advisor | Jančar, Petr | cs |
dc.contributor.author | Böhm, Stanislav | cs |
dc.date.accessioned | 2014-05-19T10:58:09Z | |
dc.date.available | 2014-05-19T10:58:09Z | |
dc.date.issued | 2014 | cs |
dc.identifier.other | OSD002 | cs |
dc.identifier.uri | http://hdl.handle.net/10084/101824 | |
dc.description | Import 19/05/2014 | cs |
dc.description.abstract | This thesis focuses on the development of applications for distributed memory systems
in the area of scientific and engineering computations. The work addresses the problems inherent to rapid development of parallel applications and the complexity of tools used during their implementation.
Herein, an abstract computation model for describing MPI (Message Passing Interface) applications is proposed.
In the described topic of interest, MPI is the de facto API. The proposed approach is based on the usage of visual programming for expressing parallel aspects and communication in a developed application. The intention is not to create a complete program visually; rather, a user writes sequential parts of the application in C++ and puts them into the visual program. This allows simple modification of the communication structure and provides immediate visual feedback of the program's behavior through a visual debugger.
An abstract model is also designed in a way that provides a unified view of activities that are used during development, including debugging, performance analyses, and verifications. While tools exist in all of these areas, they are usually single-purpose tools. In the proposed approach, all these activities are roofed by a single conceptual frame; everything from configurations to providing results of analyses uses one set of terms.
The thesis makes the following contributions: It introduces the syntax and semantics of the visual language for describing parallel aspects and communication in applications for distributed memory systems. The semantics of the language is formalized and the usage of the language is demonstrated for various problems. These examples show that the sizes of diagrams describing the visual programs remain reasonably small for many practical parallel applications. Measurements show that the performance of the resulting programs is close to manually created C++ applications. Also, the features of the proposed approach may help in various ways in common activities that occur during development.
The ideas presented in this thesis are implemented as a tool named Kaira (\url{http://verif.cs.vsb.cz/kaira/}); it is an open source tool released under GPL (GNU General Public License). | cs |
dc.description.abstract | Tato práce se zabývá vývojem aplikací pro systémy s distribuovanou pamětí v oblasti vědecko-technických výpočtů. Práce se zaměřuje na rychlý vývoj para\-lelních aplikací a integraci nástrojů používaných při vývoji.
Navržený přístup je založen na abstraktním výpočetním modelu a vizuálním programování. Tyto prostředky slouží k vyjádření paralelismu a komunikaci ve vyvíjené aplikaci. Sekvenční části aplikace jsou psány přímo v C++ a tento kód je kombinován s~vizuálním modelem. Navržený přístup dovoluje jednoduchou manipulaci s~programem a umožňuje poskytnout přímočarou vizualizaci chování aplikace. Abstraktní model je také navržen za účelem sjednocení aktivit, které se objevují při vývoji aplikací: debugování, analýza výkonu, predikce výkonu a verifikace. Pro tyto aktivity existuje mnoho různých etablovaných nástrojů, které jsou mnohem vyzrálejší a nabízejí více funkcí než zde předkládaná implementace. Z~pohledu této práce se ale většinou jedná o~programy zaměřené pouze na jednu z oblastí. Navrhovaný přístup spojuje všechny tyto aktivity do jednoho myšlenkového rámce s jednotnou terminologií, konfigurací a prezentací výsledků.
Hlavní přínosy této práce spočívají ve vytvoření syntaxe a sémantiky vizuálního jazyka pro popis paralelních částí a komunikace v aplikacích pro systémy s distribuovanou pamětí. Sémantika jazyka je plně formalizována a využití jazyka je demonstrováno na různých příkladech. Tyto příklady ukazují, že diagramy reprezentující program zůstávají relativně malé a přehledné při řešení různých praktických problémů. V této práci je dále ukázáno, že navržený přístup může sjednotit a zjednodušit mnoho různých činností objevujících se v souvislosti s vývojem softwaru v oblasti zájmu této práce. Prezentované myšlenky jsou implementovány v podobě nástroje Kaira (\url{http://verif.cs.vsb.cz/kaira/}). Kaira je uvolněna jako open-source nástroj pod GPL (GNU General Public License). | en |
dc.format | 124 s. : il. | cs |
dc.format.extent | 4265088 bytes | cs |
dc.format.mimetype | application/force-download | cs |
dc.language.iso | cs | cs |
dc.publisher | Vysoká škola báňská - Technická univerzita Ostrava | cs |
dc.subject | parallel programming, distributed computing, MPI, debugging, performance analysis, visual programming | cs |
dc.subject | paralelní programování, distribuované výpočty, MPI, debugování, analýza výkonu, visuální programování | en |
dc.title | Unifying framework for development of message-passing applications | cs |
dc.title.alternative | Unifying framework for development of message-passing applications | en |
dc.type | Disertační práce | cs |
dc.identifier.signature | 201400466 | cs |
dc.identifier.location | ÚK/Sklad diplomových prací | cs |
dc.contributor.referee | Jakl, Ondřej | cs |
dc.contributor.referee | Schwoon, Stefan | cs |
dc.contributor.referee | Vojnar, Tomáš | cs |
dc.date.accepted | 2014-03-13 | cs |
dc.thesis.degree-name | Ph.D. | cs |
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.category | Prezenční | 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 | cs |
dc.identifier.thesis | BOH126_FEI_P1807_1801V001_2014 | |
dc.rights.access | openAccess | |