Literatur vom gleichen Autor/der gleichen Autor*in
plus bei Google Scholar

Bibliografische Daten exportieren
 

Effiziente Threadkommunikation im gemeinsamen Speicher mithilfe lock-basierter und lock-freier Channel

Titelangaben

Laubert, Henrik:
Effiziente Threadkommunikation im gemeinsamen Speicher mithilfe lock-basierter und lock-freier Channel.
Bayreuth , 2022 . - I, 50 S. - (Bayreuth Reports on Parallel and Distributed Systems ; 17 )
( Bachelorarbeit, 2021 , Universität Bayreuth, Fakultät für Mathematik, Physik und Informatik)
DOI: https://doi.org/10.15495/EPub_UBT_00006052

Volltext

Link zum Volltext (externe URL): Volltext

Abstract

In seiner Dissertation entwickelte Dr. Prell ein Laufzeitsystem zur parallelen Programmierung. Ziel dieses Laufzeitsystems ist es, dem Entwickler das Verwalten und Koordinieren von Threads abzunehmen. Der Programmierer soll nur noch Tasks spezifizieren, während das Laufzeitsystem für eine effiziente, parallele Ausführung dieser Tasks sorgt. Um die Thread-Koordination beim Zugriff auf gemeinsame Variablen vor dem Entwickler verbergen zu können, wurde eine zusätzliche Abstraktionsebene der Kommunikation geschaffen. Die Threads kommunizieren innerhalb des Laufzeitsystems ausschließlich über Channel. Durch die explizite Thread-Kommunikation im gemeinsamen Speicher ergeben sich eine Reihe von Vorteilen. Channel sind einfach zu implementieren, ermöglichen eine asynchrone Thread-Kommunikation und das Laufzeitsystem ist durch die explizite Kommunikation leicht portierbar, da es nicht länger an einen gemeinsamen Adressraum gebunden ist. Vor allem ermöglichen die Channel, die low-level Kommunikation der Threads vom Rest des Laufzeitsystems abzukoppeln und so zu verbergen.

In dieser Arbeit werden Möglichkeiten zur Verbesserung der Performance dieser Channel genauer betrachtet. Dazu werden verschiedene Channel-Varianten implementiert. Verwendet werden dazu verschiedene Lock-Strategien, die mit atomaren Operationen umgesetzt wurden. Ebenfalls wird eine alternative, interne Datenstruktur des Puffers des Channels getestet, sowie eine lock-freie Lösung eines Channels umgesetzt. Während mit der Änderung der im Puffer verwendeten Datenstruktur keine Verbesserungen erreicht werden, ergeben sich durch die Nutzung atomarer Operationen zur Thread-Koordination anstelle der Synchronisationsoperationen der pthread.h-Bibliothek Effizienzgewinne. Auch die lock-freie Lösung zeigt eine bessere Performance als die Ausgangsversion.

Der Datendurchsatz der Channel wird durch Messungen auf einem Intel Xeon E5-2630 CPU mit 16 physischen Kernen (je zwei Hardwarethreads pro Kern) miteinander verglichen. Als Messszenario diente ein Stresstest, in welchem eine bestimmte Anzahl von Threads so schnell wie möglich versuchen, die ihnen zugeteilten Nachrichten über den Channel zu versenden. So kann die Performance der verschiedenen Channel bei sehr hohen Zugriffsraten gemessen werden.

Abstract in weiterer Sprache

In his thesis, Dr. Prell developed a runtime system for parallel programming. His goal was to create a runtime system that relieves the developer from managing and coordinating threads. The programmer should only have to specify tasks, while the runtime system ensures efficient, parallel execution of these tasks. Therefore, an additional level of abstraction was added to the thread communication, to hide the thread coordination at the access on shared variables from the developer. Within the runtime system threads exclusively communicate via channels. This explicit thread communication in shared memory results in several advantages. Channels are easy to implement, enable asynchronous thread communication, and make the runtime system easily portable due to the explicit communication not linked to shared memory. Above all, the channels decouple the low-level communication of threads from the runtime system and hide it from the developer.

This bachelor thesis investigates the possibility of optimization for channels. For this purpose, different channel variations are implemented, using various lock strategies and atomic operations. Furthermore, an alternative data structure of the channels’ buffer is tested, and a lock-free channel solution is implemented. While there is no success in varying the data structure of the buffer it becomes quite clear that using atomic opera- tions for thread coordination is more efficient than using the synchronization operations of the pthread.h library. The lock-free solution also shows better performance than the initial channel version.

The different channels’ data throughput is compared by measurements on an Intel Xeon E5-2630 CPU with 16 physical cores and 32 hardware threads in total. The mea- surement scenario is a stress test, in which a certain number of threads try to send their messages via the channel as fast as possible. This test makes it possible to measure the performance of the various channels at very high access rates.

Weitere Angaben

Publikationsform: Bachelorarbeit
Keywords: Threads; Kommunikation; gemeinsamer Speicher; Channel; lock-basiert; lock-frei
Institutionen der Universität: Fakultäten
Fakultäten > Fakultät für Mathematik, Physik und Informatik
Fakultäten > Fakultät für Mathematik, Physik und Informatik > Institut für Informatik
Fakultäten > Fakultät für Mathematik, Physik und Informatik > Institut für Informatik > Lehrstuhl Angewandte Informatik II
Fakultäten > Fakultät für Mathematik, Physik und Informatik > Institut für Informatik > Lehrstuhl Angewandte Informatik II > Lehrstuhl Angewandte Informatik II - Univ.-Prof. Dr. Thomas Rauber
Titel an der UBT entstanden: Ja
Themengebiete aus DDC: 000 Informatik,Informationswissenschaft, allgemeine Werke > 004 Informatik
Eingestellt am: 09 Apr 2022 21:00
Letzte Änderung: 09 Apr 2022 21:00
URI: https://eref.uni-bayreuth.de/id/eprint/69134