FH Bielefeld
University of
Applied Sciences

Public Resource Computing Technologien für Hochleistungsrechnen

Auf die Frage wo die größte Rechenkapazität der Welt zu finden sei, wird üblicherweise geantwortet "in Supercomputerzentren". Tatsächlich ist es aber so, dass die größte Rechenkapazität um den Globus verteilt in unzähligen Haushalten und Büros anzutreffen ist. Bis zum Jahresende wird es etwa 2 Milliarden mit dem Internet verbundene Computer auf der Welt geben. Die Rechenleistung dieser Computer ist immens. Bereits 1 Prozent dieser Maschinen liefert zusammen genommen eine Rechenleistung von mehr als einem PetaFLOPS. Eine Frage, die sich stellt ist, inwieweit man sich diese Rechenleistung zu Nutze machen kann. Hierzu wurde vor 10 Jahren eine Technologie entwickelt, die unter dem Namen "Public Resource Computing (PRC) " (auch "Volunteer Computing" oder "@Home Computing" genannt) bekannt geworden ist. Mit dieser Technologie lassen sich beliebig viele mit dem Internet verbundene "öffentliche" Rechner für wissenschaftliche Berechnungen nutzen, immer vorausgesetzt die

"Teilnehmer" stellen die Rechenzeit ihrer Computer freiwillig zur Verfügung. Das Prinzip basiert auf einer Client-Server Architektur, bei der ein Server-Computer so genannte Arbeitspakete an einen Client-Computer schickt, der Client-Computer diese bearbeitet und seine Ergebnisse zurück an den Server-Computer schickt. Der berühmteste Vertreter und gleichzeitig Begründer dieser Technologie ist das SETI@home-Projekt [2] an dem sich mittlerweile mehr als 1,3 Mio. Teilnehmer mit mehr als 3,3 Mio. Rechnern weltweit beteiligen - Tendenz steigend! Im öffentlichen Sektor hat diese Technologie seit Ihrer Entstehung vor etwa 15 Jahren zu derzeit weltweit etwas mehr als 70 aktiven Projekten [3] geführt, die sich mit Problemen der Berechnung nanomagnetischer Strukturen, Protein-Faltung, Klimasimulationen etc. beschäftigen. An dieser Stelle sei auf einen entscheidenden Unterschied dieser Technologie zum Parallelrechner hingewiesen: Beim Parallelrechner sind die parallelen Berechnungsprozesse in hohem Maße abhängig voneinander. Im Gegensatz hierzu erfordert die Verarbeitung im Sinne des PRC keinen speziellen Parallelrechner. Ganz im Gegenteil, jeder in einem Netzwerk vorhandene Rechner kann an der Berechnung teilnehmen. Es muss lediglich eine entsprechende Client-Software installiert werden. Mit Hilfe einer Management-Software können weitere Konfigurationen wie z.B. die zur Verfügung zu stellende Rechenleistung des Client-Computers etc. festgelegt werden. Damit ist allerdings auch das Anwendungsspektrum dieser Technologie anders als bei Parallelrechnern. Die Client-Server-Architektur erfordert, dass sich ein Problem in unabhängige Prozesse aufteilen lässt, die ohne Kommunikation untereinander ausgeführt werden können.

Vor zirka 10 Jahren wurde die zugrunde liegende Basistechnologie von den eigentlichen Berechnungsproblemen entkoppelt und als "Berkeley Open Infrastructure for Network Computing (BOINC)" der Öffentlichkeit zur Verfügung gestellt [4]. Basierend auf der BOINC Middleware wurde im Jahr 2006 das Projekt Spinhenge@home [5] entwickelt, das der Berechnung thermodynamischer Eigenschaften nanomagnetischer Moleküle dient. Mittlerweile gehört das Projekt mit fast 60000 registrierten Teilnehmern und mehr als 150000 teilnehmenden Rechnern zu den erfolgreichsten BOINC-basierten Projekten - auch wenn es derzeit inaktiv ist, da im Rahmen des Projekts "Visu@lGrid" umfangreiche software-technische Änderungen vorgenommen werden (siehe unten).

Abgesehen von der globalen Nutzung von Rechnerressourcen mit Hilfe von PRC stehen in den Universitäten, Forschungsinstituten und Unternehmen heutzutage beachtliche "verborgene" lokale Rechnerressourcen zur Verfügung, die gar nicht vollständig genutzt werden, angefangen von der Workstation am Arbeitsplatz bis hin zum Desktop-Computer an der Pforte. Über den Tag betrachtet, sind diese Rechner nur selten voll ausgelastet und wertvolle Rechenleistung bleibt ungenutzt. Die benutzerfreundliche Nutzung dieser "verborgenen" Rechenleistung ist das Ziel weiterer geplanter Forschungsprojekte.

Offensichtlich wird die PRC-Technologie trotz aller Chancen und Vorteile bislang kaum genutzt (sonst gäbe es sicherlich mehr als 70 Projekte weltweit!). Der Grund hierfür liegt darin, dass die Entwicklung und Einrichtung der Server- und Client-Software sehr viel Erfahrung in den verschiedenen, beteiligten Kommunikations- und Betriebssystem-Technologien voraussetzt. Dementsprechend hoch ist der Zeit- und Administrationsaufwand für ein solches Projekt, das nicht häufig eingestellt wird, sobald der betreuende Mitarbeiter das Projekt verlässt. Um diese Technologie für Anwender attraktiver und beständiger zu machen und vor allem um vorhandene und ungenutzte Rechnerverbünde für Applikationen nach dem PRC-Prinzip nutzbar zu machen, verfolge ich derzeit zwei Forschungsansätze, einen "Bottom-up"- und einen "Top-down"-Ansatz [6].

Beim "Bottom-up"-Ansatz geht es um die Entwicklung von Modellierungssprachen und Entwicklungsumgebungen, die den Anwender in die Lage versetzen sollen, seine zu verteilende Berechnung textuell und graphisch modellieren zu können, ohne sich mit der zugrundeliegenden Betriebssystem- und Kommunikations-Infrastruktur befassen zu müssen. Der gesamte Quell-Code (Client- und Server-seitig) sowie alle notwendigen Installationsskripte sollen automatisch generiert werden. Der Entwicklungsprozess für verteilte Applikationen nach dem Public-Resource-Computing-Prinzip soll damit drastisch vereinfacht und der Administrationsaufwand auf ein Minimum reduziert werden. Die Entwicklungszeiten werden durch die graphische Programmierung bzw. Modellierung wesentlich reduziert. Die Code-Generierung sorgt für einen fehlerfreien Quell-Code. Im Rahmen des BMBF-Projekts "Visu@lGrid - Realisierung einer Entwicklungsumgebung zur graphischen Modellierung heterogener Client-Server-Applikationen mit automatischer Code-Generierung" wurde erstmalig eine Modellierungssprache auf der Basis eines UML-Profils definiert [7]. Gleichzeitig konnten eine rudimentäre Entwicklungsumgebung sowie Code-Generierungsansätze realisiert werden [8].

Beim "Top-down"-Ansatz soll mit Hilfe geeigneter Wrapper-Routinen bereits vorhandene wissenschaftliche Software mit einem Minimum an Aufwand "BOINC-fähig" gemacht werden. Die BOINC-Infrastruktur soll wie im "Bottom-up"-Ansatz automatisch generiert werden. Das Ziel dieses Ansatzes ist die Integration von BOINC in eine bestehende Entwicklungslandschaft, so dass am Ende ein einziger Quell-Code einer wissenschaftlichen Software existiert, der je nach Bedarf für Parallelrechner-Systeme (inkl. Beschleuniger-Hardware) oder verteiltes Rechnen auf der Basis von BOINC kompiliert werden kann. Eine solche Lösung hat den gewaltigen Vorteil, dass nicht mehr mehrere verschiedene Versionen einer Software gepflegt werden müssen. Als erste Anwendung und Machbarkeitsstudie wurde hierzu das Projekt "ComsolGrid" durchgeführt, das es erlaubt FEM-Parameterstudien auf heterogenen Rechnernetzwerken durchzuführen [9]. Auf der Basis der damit gewonnenen Erkenntnisse wird derzeit das Projekt Spinhenge@home vollständig umgebaut.

 

[2] SETI steht für "Search for Extraterrestrial Intelligence"; Details über SETI@home siehe http://setiathome.berkeley.edu/

[3] siehe http://de.boincstats.com/

[4] David P. Anderson, "BOINC: A System for Public-Resource Computing and Storage," grid, pp. 4-10, Fifth IEEE/ACM International Workshop on Grid Computing (GRID'04), 2004

[5] C. Schröder, "Spinhenge@home - in search of tomorrow's nanomagnetic applications", erscheint als Buchbeitrag in "Distributed & Grid Computing - Science Made Transparent for Everyone. Principles, Applications and Supporting Communities" (geplanter Erscheinungszeitpunkt 2014); Projektseite: http://spin.fh-bielefeld.de

[6] C. Schröder, "HPC via Public Resource Computing - Technologies, applications, and trends", Keynote, Fourth International Conference on Internet Technologies & Applications (ITA 11), Wrexham, North Wales, UK (2011)

[7] C. B. Ries, T. Hilbig, C. Schröder, "A Modeling Language Approach for the Abstraction of the Berkeley Open Infrastructure for Network Computing (BOINC) Framework", IEEE Proceedings of the of the International Multiconference on Computer Science and Information Technology 5, 663 (2010)

[8] C. B. Ries, C. Schröder, and V. Grout, "Model-based Generation of Workunits, Computation Sequences, Series and Service Interfaces for BOINC based Projects", The 2012 International Conference on Software Engineering Research and Practice (SERP'12), part of WORLDCOMP'12, USA, Las Vegas, Juli 2012; C. B. Ries, C. Schröder, "Visu@lGrid: UML Profile for Berkeley Open Infrastructure for Network Computing (BOINC)", Federated Conference on Computer Science and Information Systems (FedCSIS), Szczecin, Polen (2011)

[9] C. B. Ries, C. Schröder, "ComsolGrid - A framework for performing large-scale parameter studies using Comsol Multiphysics and Berkeley Open Infrastructure for Network Computing (BOINC)", Proceedings of the COMSOL Conference, ISBN: 978-0-9825697-6-4, France, Paris, 2010