Big Data und High Performance Computing

Amazon hat sich mit seinen Webservices zu einem größeren Cloud Anbieter emporgearbeitet. Man kann dort z.B. Rechenressourcen mieten, um darauf eine ressourcenhungrige Anwendung laufen zu lassen.

Field Programmable Gate Arrays (FPGA) sind aufgrund ihrer Architektur sehr gut für das high Performance Computing geeignet. Amazon bietet nun solche FPGAs in der Cloud an, was z.B. im Bereich der Analytics interessant ist.

FPGA

Im Bereich der Computertechnik trifft man gewöhnlich auf die folgenden drei Gruppen:

  • Universalcomputer, mit fest definierten Mainboards oder Steuerplatinen und ICs, denen per Software Leben eingehaucht wird.
  • Spezialcomputer, die mit Chips ausgestattet sind, die eigens für das spezifische Problem entworfenen wurden (ASICS).
  • Geräte die aus einer Mischung aus angepasster Hardware und aus Software bestehen.

Field Programmable Gate Arrays (FPGA) gehören zur letzten Gruppe. Sie waren vor wenigen Jahren noch so teuer, daß man diese Chips nicht oft sah, bzw nur dort, wo es auf Leistung ankam. Heute wird diese Technologie zunehmend günstiger, und geläufiger.

Technisch unterscheiden sich FPGA-Boards von normalen, fest definierten Mainboards dadurch, dass die Chips aus einer definierten Anzahl von Logikgattern bestehen, deren Struktur dem definierten Rechenproblem angepaßt wird. Wikipedia (siehe die Links am Ende des Artikels) definiert hierzu:

„Ein Field Programmable Gate Array (FPGA) ist ein integrierter Schaltkreis (IC) der Digitaltechnik, in welchen eine logische Schaltung geladen werden kann. Die englische Bezeichnung kann übersetzt werden als im Feld (also vor Ort, beim Kunden) programmierbare (Logik-)Gatter-Anordnung, was ihre flexible Programmierbarkeit unterstreicht.

Anders, als bei der Programmierung von Computern, Microcontrollern oder Steuerungen, bezieht sich hier der Begriff Programmierung nicht nur auf die Vorgabe zeitlicher Abläufe, sondern vor Allem auf die Definition der gewünschten Schaltungsstruktur. Diese wird mittels einer Hardwarebeschreibungssprache formuliert und von einer Erzeugersoftware in ein Konfigurationsfile übersetzt, welches vorgibt, wie die physikalischen Elemente im FPGA verschaltet werden sollen. Man spricht daher auch von der Konfiguration eines FPGA.  „

FPGAs sind aufgrund ihrer Logik sehr schnell und dabei energieeffizient. Z.B. habe ich auf der Elektronica Messe kleine Boards gesehen, die in Echtzeit ein eingehenden Videostream in 8k-Auflösung auf eine Videoleinwand aufteilen können, die aus 8 separaten Bildschirmen besteht. Sie können sich ja vorstellen, welche Performance es benötigt, Millionen Pixel in Echtzeit zu setzen.

Es gibt unterschiedliche Hersteller von diesen Chips – am Ende des Artikels habe ich einige erwähnt.

Amazon EC2 Instances (F1)

Amazon hat vor wenigen Wochen im Rahmen eines Developer Previews die „EC2 Instances (F1)“ vorgestellt, die dazu dienen, unterschiedliche FPGA-Varianten in der Computing Cloud zur Verfügung zu stellen (siehe Referenz am Ende des Artikels). Man schreibt hierzu:

„Amazon EC2 F1 ist eine Compute-Instance mit Field Programmable Gate Arrays (FPGAs), die Sie programmieren können, um benutzerdefinierte Hardwarebeschleunigungen für Ihre Anwendung zu erstellen. F1-Instances sind einfach zu programmieren und enthalten alles, was Sie zum Entwickeln, Simulieren, Debuggen und Kompilieren eines Hardwarebeschleunigungscodes benötigen, einschließlich ein FPGA-Entwickler-AMI und ein Hardware Developer Kit (HDK). Wenn das FPGA-Design fertig gestellt ist, können Sie es als Amazon FPGA Image (AFI) registrieren und dieses in Ihrer F1-Instance in nur wenigen Klicks bereitstellen. Sie können die AFIs beliebig oft und in beliebig vielen F1-Instances wiederverwenden.“

Anwendung

Ich habe mir die Information näher angesehen. Mit dieser Lösung kann man sich im Prinzip seine eigene Hardware so zusammenstellen, wie es die konkrete Rechenaufgabe verlangt, und man kann diese angepaßte Hardware als Paket weiterverkaufen, oder als Image nutzen.

Im Gegensatz zu einer konventionellen Lösung kommt man hierbei ohne eigene, teure Hardware aus.

Beispiel

Stellen Sie sich vor, Sie benötigen eine Lösung um Massendaten aus Twitter auszuwerten, um damit eine Marketingkampagne zu gestalten, und Sie wollen hierzu Algorithmen der künstlichen Intelligenz verwenden.

Mit der neuen Lösung könnten Sie nun z.B. die Maschinenintelligenz in die Hardware legen, indem Sie diese Hardware passend strukturieren, und Sie könnten  die Auswertungen in Form von Software so implementieren, daß sie die beschleunigte/ intelligente Hardware bestmöglich nutzt.

Herauskommen würde eine hardwarebeschleunigte Lösung, die Sie als „Amazon FPGA Image (AFI)“ in ähnlich gelagerten, konkreten Projekten weiter nutzen könnten.

Weiterführende Informationen

Das Original dieses Artikels ist auf Der Produktmanager erschienen (©Andreas Rudolph). Folgeartikel zum Thema gibt es über die (→Mailingliste), oder indem Sie →mir auf Twitter folgen.

Quelle des Artikelbildes: Messe München.

Alle hier verwendeten Namen gehören den jeweiligen Inhabern der Rechte.

In der Online Version des Artikels finden Sie hier die versprochenen weiterführenden Links:

Comments are closed.