Bachelor Thesis BCLR-2019-18

BibliographyVössner, Michael: Dynamische GPU-CPU Lastbalancierung.
University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Bachelor Thesis No. 18 (2019).
25 pages, german.
Abstract

Mit dem technischen Fortschritts sind kontinuierlich neue und Verbesserungen früherer Innovationen sowie Probleme, Lösungen oder Ansätze zum Beheben dieser entstanden. Des Weiteren haben sich viele neue Richtungen in der Forschung dieses Bereichs aufgetan, zusätzlichen wurden und werden Grenzen in den verschiedenen Richtungen sichtbar. So zeigten sich Einschränkungen an die Architektur eines Systems oder der Systemkomponenten, beispielsweise die physikalische Grenze bei der Entwicklung von Prozessoren, welche zu Beginn auf der Erhöhung der Integrationsdichte beruhte. Die Integrationsdichte gibt, wie allgemein bekannt, die Anzahl der Transistoren pro Flächeneinheit an. Diese erhöhte sich mit fortlaufender Zeit drastisch und näherte sich damit der physikalischen Grenze durch quantenmechanischen Tunnelstrom an. An diesem Punkt mussten Überlegungen über Alternativen in Betracht gezogen und angestrebt werden. In dem Bestreben die physikalischen Komponenten immer weiter zu verbessern, muss auch die Entwicklung von Software voranschreiten. Dabei soll hier jedoch nicht die Praktiken zur Entwicklung nutzerfreundlicher Software ansprechen, sondern auf Software aus einem anderen Bereich. Dieser Bereich enthält Software, welcher zur Entwicklung von anderer Software genutzt wird und die Entwicklung vereinfachen kann. Dazu gehören Code-Bibliotheken, APIs und Ähnliches. In dieser Arbeit wird nun eine Richtung in diesem Bereich betrachtet; Schnittstellen zum Verbessern der Performanz sowie erhöhen des Durchsatzes. Außerdem wird versucht einen Eindruck über einen Ansatz zu gewinnen, um die Frage, ob ein solcher Ansatz einen signifikanten oder insignifikanten Unterschied zu klassischen Herangehensweisen darstellt, zu beantworten. Dabei wird die Implementierung der zu entwickelnden Schnittstelle mit der CUDA-API von Nvidia in CUDA-C und C/C++ vorgenommen. Zusätzlich ist die Verwendung von dem Speichermodell CUDA Unified Memory vorgeschrieben. Dadurch werden unumgängliche Anforderungen an die Systeme gestellt, auf welchen die Schnittstelle verwendet werden kann. Da eine Kooperation der CPU und GPU angestrebt ist, wird bei der Umsetzung der Schnittstelle für den Programmteil der CPU OpenMP verwendet. Hiermit ist eine effiziente und mit der Annahme, dass OpenMP auf Probleme der Synchronisation geprüft ist, synchronisierte Implementierung vorgesehen. In nachfolgenden Abschnitten dieser Arbeit wird die Umsetzung der Schnittstelle, sowie einzelner Programmcode-Segmente, welche zur Illustration der Funktionalität dieser notwendig sind, beschrieben. Weiterhin werden die Ergebnisse und Beobachtungen der Schnittstelle unter Untersuchung der Performanz bei der Ausführung einiger Kernels präsentiert.

Department(s)University of Stuttgart, Institute of Parallel and Distributed Systems, Simulation of Large Systems
Superviser(s)Mehl, Prof. Miriam; Brunn, Malte
Entry dateJune 24, 2019
   Publ. Computer Science