Themen für Bachelor- und Masterarbeiten auf dem Gebiet der Rechnerarchitektur

Allgemeine Beschreibung des Arbeitsgebiets:

Moderne Prozessorarchitekturen verfügen über einen hohen Grad an interner Parallelität. Sie besitzen heute oft zwei, vier oder sogar mehr Prozessorkerne, wobei jeder Kern intern in einer SIMD-Einheit (oder auch als Multimedia-Einheit bezeichnet) datenparallele Berechnungen auf mehreren in eine breites Register gepackte Daten durchführen kann. Noch höher ist der Parallelitätsgrad in speziellen Hochleistungsarchitekturen (wie z.B. IBM Cell Chip, IBM KiloCore, ClearSpeed CSX, Tilera MultiCore) oder bei Einsatz von FPGAs (Field Programmable Gate Arrays), bei denen auf einem Chip oft Hunderte von Rechenwerken implementiert werden können.

Im Rahmen von Bachelor- oder Masterarbeiten besteht die Möglichkeit, einige rechen- oder daten-intensive Anwendungen effizient auf diesen modernen parallelen Rechnerarchitekturen zu realsieren. Hierzu gehören vor allem die parallele Programmierung (in C/C++ mit Threads oder in Java) bzw. die Spezifikation in VHDL bei FPGAs, die Optimierung bzgl. der gewählten Zielarchitektur, sowie eine eine detaillierte Analyse der erreichbaren Leistung. Als Zielarchitekturen stehen u.a. ein FPGA-Board der Fa. Alpha Data (mit Xilinx Virtex 5 FPGA), ein System mit zwei Intel Quad-Core CPUs, und ein ClearSpeed Advance e710 Board (mit 192 Prozessorelementen auf einem CSX700 Chip) zur Verfügung.

Zu vergebende Bachelor-Arbeiten:

ArbeitsthemaI/O Performance moderner Acceleratorkarten  (NEU!)
Beschreibung
: Viele rechenintensive Anwendungen lassen sich effizient auf modernen Acceleratorkarten realisieren, da hier durch Ausnutzung der massiven Parallelität eine sehr hohe algorithmische Leistung erreicht werden kann. Beispiele für moderne Acceleratorkarten sind FPGA-Boards oder Many-Core Prozessor-Boards, die in einen PCI oder PCI Express Slot eines Desktops oder Servers gesteckt werden.  Es ist jedoch zu beachten, dass oft viele Daten erst vom Hauptspeicher des Hosts zum Speicher der Accelerator-Karte übetragen werden müssen, bevor die Berechnung gestartet werden kann. Ziel dieser Arbeit besteht nun daher darin, nicht die Rechenleistung, sondern die E/A-Leistung moderner Acceleratorkarten experimentell zu ermitteln. Hierzu sinjd kleine Testprogramme zu entwickeln, zu implementieren und die I/O Performance exemplarisch auf zwei vorhandenen Acceleratorkarten (ein ClearSpeed Advance e710 Board  mit 192 Prozessorkernen und ein Alpha Data ADM-XRC-5T1 Board mit Virtex-5 FPGA) zu analysieren. Voraussetzung sind Kenntnisse in C.
Bearbeiter: frei

ArbeitsthemaErkennung handgeschriebener Ziffern auf Acceleratorkarte  (NEU!)
Beschreibung
: In einer abgeschlossenen Bachelor-Arbeit wurde bereits ein neuronales Lernverfahren erfolgreich auf einem FPGA implementiert. Es konnte simulativ gezeigt werden, dass das Training eines neuronalen Netzes zur Erkennung handegeschriebener Ziffern auf einem FPGA ca. 140 mal schneller läuft als auf einem PC. Die Aufgabe dieser Arbeit besteht nun darin, die vollständige Anwendung einmal auf einem Alpha Data ADM-XRC-5T1 FPGA Board  zu realsiieren. Hierzu ist die Entwicklung eines Host-Programmes (in C/C++, möglichst mit GUI, unter Verwendung der Alpha Data API Library) erforderlich, das die Trainingsdaten und Netzwerkparameter an das FPGA transportiert und das Training steuert. Auf dem FPGA kann hierzu der vorliegende VHDL-Code verwendet werden. Voraussetzung sind Kenntnisse in C.
Bearbeiter: frei

Arbeitsthema: Paralleliserung von Lernverfahren für Entscheidungsbäume
Beschreibung: Im Bereich des Data Mining stellt die Klassifikation mittels Entscheidungsbäumen eine zentrale Aufgabe dar. Neue Datenobjekte werden anhand eines Entscheidungsbaumes vorhandenen Klassen zugeordnet. Das Aufstellen eines Enstscheidungsbaumes ist in Anbetracht grosser vorliegender Datensätze eine sehr rechenintensive Aufgabe, deren Parallelisierung für moderne Multi- und Many-Core Architekturen eine interessante Aufgabe ist. Inhalt dieser Arbeit ist ein Vergleich verschiedener Lernalgorithmen (ID3, C4.5, Sprint, ...) zur Konstruktion von Entscheidungsbäumen, eien Analyse deren Parallelisierbarkeit sowie die threadparallele Implementierung und Leistungsbwertung eines ausgesuchten Verfahrens.
Bearbeiter: frei

Arbeitsthema: Analyse der Eignung des Cell-Chips zur Simulation neuronaler Netze
Beschreibung: Einige einfache neuronale Netze (z.B. SOM, RBF, LVQ) und ihre Lernverfahren sollen exemplarisch auf der Cell Broadband Engine von IBM/Sony/Toshiba realisiert werden, um die Eignung der Architektur für diese Anwendungsklasse zu analysieren. Hierzu kann die frei verfügbare Entwicklungsumgebung mit C/C++ Compiler eingesetzt werden; Die Leistungsmessungen können auch auf einem realen System mit Cell-Prozessoren durchgeführt werden. Die Aufgabenstellung umfasst das Studium der Algorithmen, deren Abbildung und Implementierung auf der Cell-Architektur unter Ausnutzung von Daten- und Thread-Parallelität sowie eine Leistungsanalyse.
Bearbeiter: frei

Weitere Themen (auch für Masterarbeiten) auf Anfrage, eigene Themenvorschläge aus dem obigen Arbeitsgebiet sind natürlich ebenso willkommen.

Laufende Bachelor-Arbeiten:

ArbeitsthemaErstellen einer Bibiothek zum parallelen Rechnen auf sehr grossen Zahlen 
Beschreibung
: Viele Anwendungen (z.B. aus der Kryptographie oder der möglichst exakten Berechnung mathematischer Konstanten) benötigen Zahlendarstellungen nit einer Stellenzahl, die wesentlich größer ist als bei den Standarddatentypen (wie long oder double) gängiger Programmiersprachen. Rechenoperationen auf diesen langen bignum Zahlen sind natürlich sehr rechenintensiv. Daher soll im Rahmen dieser Arbeit analysiert werden, ob sich der Clearspeed Prozessorchip mit 2x96 Prozessorelementen für die schnelle Implementierung von Operationen auf sehr grossen Zahlen eignet. Hierzu gehören eine Einarbeitung in die zugehörige parallele Programmiersprache Cn, eine parallele Implementierung der wichtigsten Operationen auf bignum Zahlen (Addition, Multiplikation, modulares Potenzieren), und einer Leistungsbewertung durch Vergleich mit einer sequentiellen Referenzimplementierung, wie z.B. der GNU Multiple-Precision Library.
Bearbeiter: Dominik Neuner

Arbeitsthema: Parallele Implementierung von Algorithmen zur verlustfreien Daten(de)kompression
Beschreibung: Die Komprimierung grosser Datenmengen ist sehr rechenintensiv, insbesondere wenn hohe Kompressionsfaktoren erreicht werden sollen. Daher ist es wichtig, diese Verfahren durch den Einsatz von Parallelität auf modernen Multi-Core Prozessoren zu beschleunigen. Inhalt der Arbeit ist ein Studium der in der Literatur vorgeschlagenen Kompressionsverfahren (zip, gzip, bzip2, ...), das Herausarbeiten von Gemeinsamkeiten und Unterschieden, sowie die exemplarische Parallelisierung und Implementierung eines Datenkompression-Verfahrens auf einer Multi-Core Architektur. Mit einer detaillierten Leistungsanlyse soll die Effizienz der Implementierung untersucht werden.
Bearbeiter: Peter Kiechle

Arbeitsthema: Sprecheridentifikation auf FPGA-Karte
Beschreibung: Neuronale Netze sind aufgrund Ihrer geringen Präzisions-Anforderungen sehr gut für eine effiziente Realisierung auf FPGA-Bausteinen geeignet. In dieser Arbeit soll exemplarisch eine komplette neuronale Anwedung auf einer FPGA-Karte implementiert werden: die Sprecheridentifikation mittels einer Selbstorganisierenden Karte (SOM = Self-Organizing Feature Map). Zur Anwendung gehören die Aufnahme von Sprachdaten über Mikrofon, deren Digitalisierung und Speicherung, die Extraktion von Merkmalen mittels LPC, das Training der SOM sowie die Identifikation anhand der trainierten Karte. Es steht ein Xilinx Spartan-3AN FPGA-Entwicklungsboard (mit Spartan-3AN FPGA, A/D-Wandler, 2-zeiligem alphanumerischem Display und integriertem SRAM) zur Verfügung. Die Aufgabenstellung beinhaltet das Vertrautmachen mit den Algorithmen für SOM und LPC, die Reaisierung einer Matlab-Referenz-Implementierung, die Umsetzung in VHDL und der Test auf dem FPGA Board. Vorkenntnisse in VHDL sind unbedingt erforderlich.
Bearbeiter: Hannes Mösl

Arbeitsthema: Multimedia-Kompressionsverfahren auf Multi-Core Architekturen
Beschreibung: Immer häufiger werden Multimedia-Daten (z.B. hochauflösende Bilder, Videos, Musikstücke, ...) über Netzwerke versandt, wobei die Datenmengen bei hoher Qualität sehr groß sind. Aufgrund der begrenzten zur Verfügung stehenden Bandbreite der Netzwerke ist ein gute Kompression erforderlich. Heute im Multimedia-Bereich eingesetzte Kompressionsalgorithmen arbeiten verlustbehaftet (aac, jpeg, mpeg, ...) und benötigen bei großen Datenmengen einen hohen Rechenaufwand. Anhand ausgewählter Algorithmen soll im Rahmen dieses Projektes einmal analysiert werden, ob die rechenzeitintensive Kompression unter Ausnutzung von Daten- und Threadparallelität auf einem heutigen Multi-Core System effizient realisiert werden kann. Insbesondere soll untersucht werden, welche Algorithmen sich für den Einsatz auf zukünftigen Manycore-Architekturen mit vielen Kernen eignen. Als Zielrechner kommen wahlweise ein System mit zwei Intel Quad-Core CPUs oder der Cell-Chip mit acht Kernen in Betracht. Die Aufgabenstellung beinhaltet einen Vergleich heute eingesetzter Algorithmen, Überlegungen zur Parallelisierung, threadparallele Implementierung mit OpenMP oder pThreads, datenparalllele Implementierung mit Intel SSE oder IBM SPE Intrinsics, und eine Analyse der Leistung.
Bearbeiter: Peter Knapp

Arbeitsthema: Schnelle Clusteranalyse auf PC mit FPGA-Karte
Beschreibung: Clusteranalyse ist ein Analyseverfahren zur Ermittlung von Gruppen (Clustern) von Objekten, die bestimmte Ähnlichkeiten aufweisen. Es wird oft im Bereich des Data-Mining und Information Retrieval eingesetzt. Ein wichtiger Algorithmus ist das k-Means Verfahren, bei dem die Daten in k Cluster gruppiert werden. Trotz einfacher Operationen benötigt dieses Verfahren bei typischerweise hochdimensionalen Daten eine hohe Rechenzeit. Aufgrund der geringen Präzisonsanforderungen ist eine parallele Implementierung auf einem FPGA besonders sinnvoll. Für diese Arbeit liegt eine Implementierung des k-Means Algorithmus in VHDL bereits vor. Eine FPGA PCI-Karte mit mit Linux-Treiber und Bibliothek ist ebenfalls voirhanden. Die Aufgabenstellung besteht in der Konzeption und Realisierung einer effizienten Integration des FPGA-basierten k-Means Algorithmus in ein Programm zur Clusteranalyse auf dem PC. Hierzu gehören die Implementierung eines schnellen Datentransfers zwischen PC und FPGA-Karte sowie ein Leistungsvergleich mit einer reinen Software-Lösung auf einem PC mit Multi-Core CPU.
Bearbeiter: Martin Neuhauser

Abgeschlossene Bachelor-Arbeiten:

Thema: Neuronale Lernverfahren auf FPGA
Beschreibung: Neuronale Lernverfahren sind sehr rechenintensiv, können jedoch durch den inhärenten massiven Parallelismus gut auf parallelen Rechnerarchitekturen realisiert werden werden. Aufgrund der hohen Konnektivität neuronaler Netze sind vor allem eng gekoppelte parallele Systeme (Multi-Core, FPGAs) sinnvoll. Der Schwerpunkt dieser Arbeit liegt auf der Realisierung eines Lernverfahrens auf einem FPGA. Die Aufgabenstellung beinhaltet das Vertrautmachen mit einem auf Gradientenabstieg basierenden Lernverfahren für ein RBF-Netzwerk, eine Implementierung in VHDL unter Ausnutzung möglichst hoher Parallelität, Validierung des Entwurfs durch Vergleich mit einer Referenzimplementierung sowie eine eine Leistungsanalyse. Vorkenntnisse in VHDL und/oder neuronalen Netzen sind wünschenswert.
Bearbeiter: Christoph Brejla

Thema: Implementierung des RSA Algorithmus in VHDL
Bearbeiter: Philipp Gebhard

Thema: Threadparallele Implementierung des Apriori Algorithmus .
Bearbeiter: Boban Milanovic

Thema: Kohonen's Self-Organizing Maps auf FPGAs,
Bearbeiter: Manfred Gratt

Thema: Threadparallele Implementierung des Eclat Algorithmus
Bearbeiter: Florian Sereinig

Thema: Daten- und threadparallele Realisierung der Berechnung von PI auf einer Multi-Core Architektur
Bearbeiter: Daniel Rieder

Thema: Ausnutzung von Thread- und Datenparallelität moderner Mikroprozessoren
Bearbeiter: Manuel Niederkofler

Thema: Realisierung einer Gleitkomma-Bibliothek in VHDL
Bearbeiter: Hannes Ganthaler

Thema: Daten- und threadparallele Realisierung des FFT-Algorithmus auf Multi-Core Architekturen
Bearbeiter: Stephan Plank

Thema: Support Vector Machine (SVM) auf IBM Cell Chip
Bearbeiter: Christian Gapp