Show simple item record

dc.date.accessioned2012-07-30T13:13:21Z
dc.date.available2012-07-30T13:13:21Z
dc.date.issued2012-07-30
dc.identifier.uriurn:nbn:de:hebis:34-2012073041554
dc.identifier.urihttp://hdl.handle.net/123456789/2012073041554
dc.language.isoeng
dc.rightsUrheberrechtlich geschützt
dc.rights.urihttps://rightsstatements.org/page/InC/1.0/
dc.subjectParallele Programmierungger
dc.subject.ddc004
dc.titleOn the Benefits of Abstraction in Concurrent Haskelleng
dc.typeDissertation
dcterms.abstractHeutzutage haben selbst durchschnittliche Computersysteme mehrere unabhängige Recheneinheiten (Kerne). Wird ein rechenintensives Problem in mehrere Teilberechnungen unterteilt, können diese parallel und damit schneller verarbeitet werden. Obwohl die Entwicklung paralleler Programme mittels Abstraktionen vereinfacht werden kann, ist es selbst für Experten anspruchsvoll, effiziente und korrekte Programme zu schreiben. Während traditionelle Programmiersprachen auf einem eher geringen Abstraktionsniveau arbeiten, bieten funktionale Programmiersprachen wie z.B. Haskell, Möglichkeiten zur fortgeschrittenen Abstrahierung. Das Ziel der vorliegenden Dissertation war es, zu untersuchen, wie gut verschiedene Arten der Abstraktion das Programmieren mit Concurrent Haskell unterstützen. Concurrent Haskell ist eine Bibliothek für Haskell, die parallele Programmierung auf Systemen mit gemeinsamem Speicher ermöglicht. Im Mittelpunkt der Dissertation standen zwei Forschungsfragen. Erstens wurden verschiedene Synchronisierungsansätze verglichen, die sich in ihrem Abstraktionsgrad unterscheiden. Zweitens wurde untersucht, wie Abstraktionen verwendet werden können, um die Komplexität der Parallelisierung vor dem Entwickler zu verbergen. Bei dem Vergleich der Synchronisierungsansätze wurden Locks, Compare-and-Swap Operationen und Software Transactional Memory berücksichtigt. Die Ansätze wurden zunächst bezüglich ihrer Eignung für die Synchronisation einer Prioritätenwarteschlange auf Basis von Skiplists untersucht. Anschließend wurden verschiedene Varianten des Taskpool Entwurfsmusters implementiert (globale Taskpools sowie private Taskpools mit und ohne Taskdiebstahl). Zusätzlich wurde für das Entwurfsmuster eine Abstraktionsschicht entwickelt, welche eine einfache Formulierung von Taskpool-basierten Algorithmen erlaubt. Für die Untersuchung der Frage, ob Haskells Abstraktionsmethoden die Komplexität paralleler Programmierung verbergen können, wurden zunächst stencil-basierte Algorithmen betrachtet. Es wurde eine Bibliothek entwickelt, die eine deklarative Beschreibung von stencil-basierten Algorithmen sowie ihre parallele Ausführung erlaubt. Mit Hilfe dieses deklarativen Interfaces wurde die parallele Implementation vollständig vor dem Anwender verborgen. Anschließend wurde eine eingebettete domänenspezifische Sprache (EDSL) für Knoten-basierte Graphalgorithmen sowie eine entsprechende Ausführungsplattform entwickelt. Die Plattform erlaubt die automatische parallele Verarbeitung dieser Algorithmen. Verschiedene Beispiele zeigten, dass die EDSL eine knappe und dennoch verständliche Formulierung von Graphalgorithmen ermöglicht.ger
dcterms.accessRightsopen access
dcterms.creatorLesniak, Michael Christian
dc.contributor.corporatenameKassel, Universität Kassel, FB16, Elektrotechnik / Informatik
dc.contributor.refereeFohry, Claudia
dc.contributor.refereeGrelck, Clemens
dc.subject.ccsD.1.1 Applicative (Functional) Programming
dc.subject.ccsD.3.2 Language Classifications Haskell
dc.subject.swdHASKELLger
dc.subject.swdFunktionale Programmierungger
dc.subject.swdParallelisierungger
dc.subject.swdParallelverarbeitungger
dc.subject.swdAbstraktionger
dc.date.examination2012-06-01


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record