Echt-Zeit Daten-Evaluierung mit parallelisiertem Computing

Für die Online Daten-Inspektion, Auswertung und Kontrolle is es wünschenswert die Rohdaten so schnell wie möglich zu prozessieren, was besondere Herausforderungen an Bandbreite und Rechenkapazitäten kreiert. Diese Anforderungen lassen sich mit einer geeigneten, parallelisierten Compute-Infrastruktur bestehend aus CPU-Clustern und GPUs erfüllen. Das Projekt wird einen Satz von Funktions-Bibliotheken entwicklen um dies effizient zu unterstützen. Das Ziel ist es, ein Reihe von Software-Tools zu entwickeln, die die schnelle Entwicklung und den Einsatz eines breiten Spektrum von parallelisierten Datenprozessierzungs-Algorithmen, ermöglichen. OpenCL, ein Standard in der Programmierung paralleler Architekturen, ist ein möglicher Kandidat für eine universell einsetzbare Hochsprache.

Es wird eine Struktur mit drei Ebenen vorgeschlagen. Die erste Ebene implementiert die Kernfunktionen, einen SAtz von APIs, der die Nutzung der Datenströme und Compute-Platform automatisiert. Dies beinhaltet

  • Zugriff auf Daten im Standarddatenformat
  • Transport der Daten zu den Rechnerknoten
  • Dekomprimierung von Daten und
  • Darstellung der Ergebnisse
Die nächste Ebene umfasst eine Sammlung von "parallel primitives" für die Bildverarbeitung und numerische Berechnung auf parallelen Architekturen. Der Toplevel dieses Gerüsts strukturiert den Entwicklungsprozess. Ein Task-Scheduler verteilt die Prozesse zwischen den verfügbaren GPU- und CPU-Kernen. Ein Entwickler solte nur Plugins für die Prozessierung, Visualisierung und Qualitäts-Überprufung besteiern müssen, alle anderen Aufgaben werden innerhalb des Systems automatisiert.

Synchron mit diesen Aufgaben erfolgt die Evaluierung und Empfehlung geeigneter paralleler Compute-Platformen. Die Hardware muss hionreichend modular aufgebaut sein umd den unterschiedlichen Anforderung gerecht werden zu können. In Fällen, wo der Datentransfer ein limitierender Faktor ist, ist eine Lösung mit einem einzelnen Knoten eine Option. Eine Alternative zu CPU-Clustern sind in diesem Fall Systeme mit GPU, die zunehmend Verbreitung in der wissenschaftlichen Prozessierung finden. Einzelne GPUs können mehr als 500 Kerne zur Verfügung stellen mit einer Rechenleistung von über 1TFlop. Es gibt mittlerweile Lösung die in einem PC Rechenleistungen von deutlich über 10TFlops bereitstellen können. Im Vergleich dazu bieten konventionelle CPUs wie AMDs Opterons nur einige GFlops. Ein konventionelles Setup kann daher durch den Einsatz von GPUs leicht um einen Faktor 100 oder mehr beschleunigt werden. Die Herausforderung wird sein, das vorgeschlagene Online-Analyse System für parallele Rechnerarchitekturen auf die Echtzeit-Analyse der Daten anzuwenden.