Examples of past topics / Beispiele vergebener Arbeiten

In the following you find few examples of past topics of the theses. / Im folgenden sind Beispiele einiger der Themen für Bachelor- und Masterarbeiten aufgelistet.

Verfahren und Werkzeuge zur Diagnose von Speicherlecks in der Datenbank SAP HANA

Von Clemens Maier (in Zusammenarbeit mit SAP AG)

Speicherlecks (memory leaks) sind Softwaredefekte, bei denen der Hauptspeicher nach seiner Verwendung nicht ordnungsgemäß freigegeben wird. Sie führen im Laufe der Programmausführung zum unnötigen Speicherverbrauch, Leistungsverminderung, und letztendlich zum Absturz. Solche Defekte sind schwierig zu Erkennen und die Ursachen mühsam zu finden, da sie sich erst mit Verzögerung äußern.

In Zusammenarbeit mit SAP AG soll ein Verfahren und die entsprechenden Werkzeuge zur Diagnose (Ursachenerkennung) von derartigen Problemen in SAP HANA entwickelt werden. SAP HANA ist eine komplexe Datenbank mit eigener Speicherverwaltung, bei der die Stabilität und Effizienz eine große Rolle spielt. In Folge dessen ist es besonders wichtig, eventuelle Speicherlecks rechtzeitig zu erkennen und die Entwickler bei der Beseitigung zu unterstützen.

Bei dem anvisierten Verfahren sollen vorhandene Softwaretests wiederholt ausgeführt werden, wobei der Speicherverbrauch in jedem Programmodul beobachtet wird. Ein anomaler Anstieg des Speichers soll zu detaillierten Analysen von Codeveränderungen (seit den letzten Tests) führen, um die möglichen Ursachen einzukreisen. Bei Interesse und je nach Fortschritt (insbesondere bei einer Masterarbeit) sollen auch Verfahren aus der Statistik und Data Mining eingesetzt werden, um zwischen den Anomalien und legitimem Anstieg des Speicherverbrauchs automatisch zu unterscheiden.

In der Arbeit soll dieses Verfahren implementiert und mit geeigneter (selbst zu erarbeitenden) Visualisierung kombiniert werden. Dabei ist eine enge Zusammenarbeit mit den SAP-Entwicklern notwendig, um durch Feedback die Präzision des Verfahrens und die Anwenderfreundlichkeit der Werkzeuge sicherzustellen.

Zu den Voraussetzungen gehören gute Kenntnisse in C/C++, Fähigkeit zur Teamarbeit und die Bereitschaft, sich in Domänen Softwaretests sowie Visualisierung einzuarbeiten. Die Arbeit wird überwiegend bei SAP in Waldorf durchgeführt und wird üblicherweise von SAP AG entlohnt.

Lernen von komplexen Inhalten am Beispiel von Musikmelodien

Von Sebastian Butterweck [Text]

Algorithmen des maschinellen Lernens sind inzwischen sehr gut darin, z.B. Buchstaben und Ziffern beim OCR zu unterscheiden. Wesentlich schlechter lösbar sind dagegen mehr komplexe Aufgaben, in etwa die Bewertung der Qualität von Musikstücken. Dies liegt zum Teil an dem riesigen Raum der zu unterscheidenden Objekte (es gibt mindestens (48*16)^64 = 1.5*2^576 Musikstücke mit 64 Noten, aber "nur" 2^64 Muster in einer 8×8 Bitmatrix), zum anderen an der relativ geringen Anzahl von positiven Lernbeispielen (i. A. "Evergreens").

In dieser Arbeit soll versucht werden, eine geeignete Repräsentation von Musikmelodien zu finden, um sie mittels der Klassifikationsalgorithmen in Bezug auf ihre Qualität bewerten zu können. Dazu sollen manuell als auch automatisch Muster in den Notenfolgen definiert werden (zum Beispiel Intervallfolgen, Akkordfolgen, komplexere Sequenzen), die als Features bei der Klassifikation von Musikstücken verwendet werden. Die zu erarbeitenden Verfahren der Featureextraktion sollen anschließend verallgemeinert werden, um sie auch in anderen Anwendungsbereichen nutzbar zu machen.

Predictive Visual Analytics for Monitoring SAP HANA Test Environment

Von Tim Keller (in Zusammenarbeit mit SAP AG - Text ist vertraulich)

Ein Dashboard kann dazu dienen, in kurzer Zeit eine Übersicht über große Mengen an Daten zu erlangen. Dies ist jedoch nur möglich, wenn die Darstellung dieser Daten prägnant und gut strukturiert erfolgt. Diese Arbeit bietet einen Einblick in die Entwicklung eines Dashboards. Sie beschäftigt sich damit, wie grafi sche Benutzerschnittstellen gestaltet werden sollten, damit der Anwender einen Nutzen aus den präsentierten Daten ziehen kann. Außerdem werden die Herausforderungen, die während der Vorbereitung der Daten auftreten untersucht und mögliche Lösungsansätze vorgestellt. Zusätzlich überprüfen wir, ob es möglich ist, Wissen über den Tagesrhythmus von Entwicklern, die bei SAP arbeiten, zu nutzen um vorherzusagen, wie viele Änderungen zu einem bestimmten Zeitpunkt an einer Software vorgenommen werden und damit eine Vorhersage über die Anzahl an Tests zu treff en, die demnächst laufen werden.

Monitoring and Detecting Anomalies in the Test Processes for SAP HANA Development

Von Felix Georg Eichler (in Zusammenarbeit mit SAP AG - Text ist vertraulich)

Das Hauptziel dieser Arbeit ist, ein Monitoring System aufzubauen, das eine Überwachung der Testserver, sowie der darauf laufenden Testprozesse ermöglicht. Dazu sollen die nötigen Daten erfasst und darstellt werden, um Anomalien in beiden Bereichen aufzeigen und gegebenenfalls in Verbindung bringen zu können. Die Darstellung soll in Form einer graphischen Benutzeroberäche umgesetzt werden, die zwei Anwendungen unterstützen soll:

  • Eine Übersicht über alle aktuellen, insbesondere persistenten, Anomalien in Testprozessen. Es soll ersichtlich sein, auf welchen Testservern sich zum aktuellen Zeitpunkt welche Teile des Testprozesses anomal verhalten.
  • Visualisierungen, um Entwicklungen in den Daten aus Testprozessen und über Testserver betrachten und, wenn möglich, in Verbindung bringen zu können. Dadurch sollen Gründe für Anomalien gefunden werden können, um eine schnellere Lösung zu ermöglichen.

Backup-Systeme in der privaten Cloud

Von Christian Voshage  [Text]

Datensicherungen sind in der heutigen Zeit, in der viele Daten digital vorhanden sind, unabdingbar. Diverse Firmen bieten Datensicherungs-Dienste zu unterschiedlichsten Konditionen an. Vor allem der Kostenaspekt, so wie die gewährleistete Sicherheit und Verfügbarkeit spielen dabei eine große Rolle.

In dieser Arbeit wird eine Alternative zu Angeboten dieser Firmen vorgestellt. Hierbei werden Backups auf den Geräten des Netzwerks verteilt und verwaltet. Hierzu werden erstens die Angebote externer Dienstleister vorgestellt. Zweitens werden Konzepte für netzwerkinterne Services gebildet. Drittens werden Metriken deniert und anhand eines Beispiels diese Metriken bestimmt. Zuletzt werden die gewonnen Daten mit den Angaben externer Backup-Dienste verglichen und gezeigt, dass netzwerkinterne Services valide Backup-Services sein können.

Integrating GPU accelerated Matrix operations into the Groovy programming language

Von Robert Kühl [Text]

While Groovy library GPars offers convenient ways to implement concurrent tasks in Java or Groovy, it does not support GPUs in its current state. The only current solution would be the use of wrappers like JavaCL, which again is inconvenient for the user, because the GPU-kernel still have to be written with OpenCL.

The objective is to add GPU-Support to the GPars library with the aid of JavaCL. The user should be able to write GPU-Code in Groovy, using the familiar concepts of the GPars library. In order to achieve this goal, the followingsteps are necessary:

  • analyse the concepts of GPars and determine which of these could be extended for the use of GPUs
  • generate GPU-kernel code from Groovy-Code with the use of cross-compiling
  • implementing basic algorithms for testing and benchmarking
  • compare the performance of the generated Groovy-Code with native GPU Libraries such as OpenCL or CUDA.

Inkrementelle Algorithmen des maschinellen Lernens mit Map-Reduce

Von Oleg Pavlov

Die neue Generation der parallelen Algorithmen für maschinelles Lernen benutzt das Map-Reduce Paradigma, um eine hohe Skalierbarkeit zu erlangen. So zum Beispiel wurden in dem Projekt Apache Mahout (http://mahout.apache.org/) eine Vielzahl von Algorithmen implementiert, die das Framework Hadoop benutzen. Ein Problem dabei ist, dass diese Algorithmen nur im Batch-Modus arbeiten, was die Nutzung der vorläufigen Ergebnisse als auch Streaming-Anwendungen unmöglich macht. In dieser Arbeit sollen geeignete Algorithmen aus der Apache Mahout-Sammlung analysiert und an den inkrementellen Verarbeitungsmodus angepasst werden. Je nach Interesse können auch eigene Algorithmen entworfen werden, die es in Apache Mahout noch nicht gibt. Neben dieser konzeptionellen Arbeit sollen die Algorithmen in einem "Streaming Map-Reduce"-Framework implementiert werden, das an der PVS Heidelberg und an der FU Berlin entwickelt wurde. Ein weiterer Teil der Arbeit besteht aus dem Benchmarking der eigenen Implementationen und Vergleich der Leistung gegenüber den Offline-Versionen.

Einbindung des Mahout-Frameworks in das KNIME-Workflowsystem zwecks Analyse großer Datenmengen

Von Max Ernst [Text]

Data-Mining Tools wie KNIME (Konstanz Information Miner, https://www.knime.org/) bieten dem Benutzer eine grafische Oberfläche für die Verarbeitung der Daten mit Hilfe des maschinellen Lernens an. Aus Speicherplatzgründen können jedoch nur relativ kleine Datenmengen verarbeitet werden.

Auf der anderen Seite benutzt eine neue Generation der parallelen Algorithmen für maschinelles Lernen das Map-Reduce Paradigma, um eine hohe Skalierbarkeit bei der Verarbeitung und der Analyse von großen Datenmengen zu erlangen. So wurden in dem Projekt Apache Mahout (http://mahout.apache.org/) eine Vielzahl von parallelen Lernalgorithmen implementiert, die das Framework Apache Hadoop benutzen. Leider ist die Benutzung dieser Tools recht komplex - es ist nötig, viel Zeit sowohl für die Einrichtung und Konfiguration als auch in die Einarbeitung in Mahout zu investieren, um erste Ergebnisse zu erlangen.

In dieser Arbeit wird deshalb die Software KNIME verwendet, um die Bedienung von Mahout erheblich zu vereinfachen. Das Projekt ermöglicht es, die Verarbeitung der Daten via Mahout als ein KNIME-Workflow graphisch zu spezifizieren. Zu diesem Zweck werden KNIME-Knoten mit einer Anbindung an Mahout implementiert, um Workflows für die Analyse von großen Datenmengen via GUI zu definieren. Hierbei werden (große) Datensätze außerhalb von KNIME verarbeitet und nur Referenzen bzw. kleine Ergebnisdaten als Output an die nächsten KNIME-Knoten übergeben.