Bachelorarbeit:

Implementierung der

"schnelle-fourier-transformation (FFT)"

in Skelcl

Thema

Die „Schnelle-Fourier-Transformation (FFT)" ist ein mathematisches Verfahren mit vielen Anwendungen, z.B.  in der digitalen Signalverarbeitung. Praxisrelevanz zeigt sie beispielsweise auch in der Audio- und Bildverarbeitung sowie in der Astrophysik und den Wirtschaftswissenschaften.
Eine schnelle Implementierung von FFT wird durch ihre Parallelisierung erreicht, in dem viele Recheneinheiten (Kerne) moderner paralleler Systeme (z.B. multi-core Prozessoren oder Grafikkarten) gleichzeitig Berechnungen ausführen. Die Programmierung erfolgt dabei jedoch i.d.R. in hardwarenahen (low-level) Programmiersprachen wie z.B. OpenCL oder CUDA, die vom Programmierer detaillierte technische Kenntnisse abverlangen und nicht immer über verschiedene Rechnerarchitekturen portabel sind.
Ein neuartiger Ansatz zur Parallelprogrammierung auf einem höheren Abstraktionslevel bietet die Programmbibliothek SkelCL, die in der Arbeitsgruppe PVS der WWU entwickelt wird. SkelCL erleichtert die parallele Programmierung grundlegend durch die Bereitstellung von vorimplementierten Programmiermustern, in der Fachsprache auch als „algorithmische Skelette“ bezeichnet. Diese ermöglichen es dem Nutzer, Parallelität deskriptiv auszudrücken, frei von technischen Details der Hardware.
 
Im Rahmen dieser Bachelorarbeit soll der FFT-Algorithmus nachvollzogen und in SkelCL umgesetzt werden. Eine anschließende Evaluation soll die vorgeschlagene Implementierung experimentell auswerten und mit den verwandten Ansätzen aus der Literatur ausführlich vergleichen.

Literatur

Webseite von SkelCL
 [en]
FFT-OpenCL-Optimization-Guide [en]

Voraussetzungen

Kenntnisse in der Programmierung mit C/C++ sowie OpenCL/CUDA (z.B. durch Besuch der Veranstaltung: "Multi-core und GPU: Parallele Programmierung”)

Umfang

Bachelorarbeit (6 Wochen Bearbeitungszeit).

Student

Kevin Gehling

Betreuer

Dipl.-Inf. Ari Rasch