Intel stellt Weichen fĂĽr Many Integrated Core
Many Integrated Cores und ein ĂĽberraschendes Fortran-Revival waren nur einige der Highlights der Mitte April in Istanbul ausgerichteten Intel Software Conference.
- Alexander Neumann
Many Integrated Cores und ein ĂĽberraschendes Fortran-Revival waren nur einige der Highlights der Mitte April in Istanbul ausgerichteten Intel Software Conference.
Seit sieben Jahren schon lädt Intels Software and Services Group Pressevertreter, OEMs und Reseller ein, um ihnen einen jährlichen Überblick zu ihren Werkzeugen zur Unterstützung der Softwareentwicklung auf Intel-Plattformen zu geben.
Im Fokus der Veranstaltung steht seit etlichen Jahren die effiziente Ausnutzung zur Verfügung stehender Multi- und Many-Core-Systeme seitens der Entwickler. Relativ neu operiert Intel hierbei mit dem Schlagwort MIC (Many Integrated Core; ausgeprochen 'Mike'). Darunter versteht das Unternehmen vor allem die derzeit in geschlossener Beta vorliegende HPC-Plattform (High-Performance Computing) Knights Ferry, die als Knights-Corner-Produkt spätestens Anfang 2013 die Ziellinie überqueren soll. Sie wird bei Erscheinen wohl Prozessoren mit über 50 Kernen enthalten. Derzeit sind es noch 32 Kerne. Gegenwärtige Geräte mit Intel-Prozessoren fahren noch mit maximal acht Kernen.
Für die MIC-Co-Prozessorsysteme lassen sich die gleichen Programmiermodelle und -werkzeuge wie bei Intels Xeon-Prozessoren verwenden. Das bedeutet, sie unterstützen etwa Intels Math Kernel Library (MKL), die Programmiersprachen Fortran und C++, die C++-Bibliothek Threading Building Blocks (TBB), die C++-Spracherweiterung Cilk Plus sowie OpenMP und OpenCL. Dadurch ist davon auszugehen, dass die Migration auf MIC Entwickler vor keine großen Schwierigkeiten stellen wird. Der Programmierer muss offenbar allein die vorgeschlagenen Bereiche auswählen, die auf dem MIC-Chip laufen sollen – Compiler und Laufzeitumgebungen übernehmen in der Folge den Datentransfer und den Abgleich zwischen MIC und Hauptprozessor, wobei die CPU für den seriellen und MIC für datenparallelisierten Code genutzt werden. Ist der MIC-Chip nicht arbeitsfähig, kann das Programm komplett auf der CPU laufen.
Parallelität auf allen Ebenen
Parallelität über den gesamten Anwendungslebenszyklus einer Anwendung will Intel mit der Tool-Suite Parallel Studio erreichen. Als wohl wenig erfolgreiches Visual-Studio-Plug-in für C- und C++-Entwickler 2010 gestartet, gibt es die Werkzeuge um Fortran-Unterstützung und Optimierungswerkzeuge wie VTune Analyzer erweitert mittlerweile als Xtreme Edition (XE). Darüber hinaus bietet Intel noch das auf die Entwicklung verteilter HPC-Programme abgestimmte Toolkit Cluster Studio XE an, das eine um Coarray-Fortran, Math Kernel Library, Message Passing Interface (MPI) Library, VTune Amplifier und Trace Analyzer and Collector ergänzte Obermenge von Parallel Studio XE darstellt. Die XE-Versionen scheinen angesichts ihrer spezielleren Tools besser anzukommen als das eingangs reduziertere Parallel Studio.
Den Anfang bei der Parallelisierung mag bei Entwicklern das in Parallel Studio XE und Cluster Studio XE enthaltene Parallel Advisor XE machen, ein Design-Werkzeug, das Anwendern mit rechenintensiven Anwendungen Hinweise darüber gibt, wo sich Parallelität in seriell ausgeführtem Code nutzen lässt und wie sie Threads implementieren können. Dabei gibt es einen fünfschrittigen Weg vor. Zuerst läst sich damit eine bestehende Anwendung analysieren, dann erstellt das Tool geeignete Annotationen, über die es prüft, inwiefern sich die Anwendung parallelisieren lässt. In der Folge wird der ausgewiesene Code auf vorhersehbare Fehler wie Data Races oder Speicherfehler hin geprüft. Schließlich schlägt das Werkzeug ein Parallelisierungsframework vor. Das zuweilen wohl auch schon als "Toy Tool" abgekanzelte Tool versteht Intel als methodisches Werkzeug, das Anwender dazu anleitet, ein effektives Vorgehen für die Parallelprogrammierung zu erlernen.
Bislang konnten Softwarearchitekten mit Parallel Advisor allein das Parallelisierungspotenzial bei C/C++-Anwendungen identifizieren. Die kommende Version – Advisor XE 2013 – wird nun auch
C#- und Fortran-Applikationen unterstützen. Zudem wird dann das Tool erstmals für Linux-Systeme verfügbar sein. Ebenfalls neu ist, dass Parallel Advisor XE als eigenständige Anwendung funktioniert, die editorunabhängig beim Aufspüren des Parallelisierungspotenzials helfen soll.
Das Augenmerk richtete Intel darüber hinaus auf die Werkzeuge VTune Amplifier XE und VTune Inspector XE, die wie der Parallel Advisor nun Beta-Status haben. Sie umfassen ein Paket aus Profilerwerkzeugen, die beispielsweise Algorithmen analysieren sowie nach Hotspots, Locks, Waits und Nebenläufigkeitsfehlern suchen. Beide sind nicht neu, aber waren in früheren Versionen wohl überholungsbedürftig und unterstützen in den nächsten Versionen nun unter anderem Windows 8, Visual Studio 11, MIC, Task-Analysen sowie Java- und OpenCL-Code.
Modernes Fortran
Lag in den Jahren zuvor der Schwerpunkt der Vorträge allein auf der C++-Entwicklung, stellten die Intel-Repräsentanten dieses Mal auch ihre Wertschätzung für Fortran heraus. Über diese älteste, immer noch im Einsatz befindliche Programmiersprache hat Intel seinen Fuß in vielen wissenschaftlichen Einrichtungen, insbesondere im HPC-Bereich. Anscheinend machen die Einnahmen im Bereich Fortran 40 Prozent der Gesamteinnahmen der Tools-Verkäufe aus, was überraschend ist, da C++ die deutlich verbreitetere Sprache darstellt.
Als Stärken hob Heinz Bast, Technical Consulting Engineer bei Intel, hervor, dass die meisten Fortran-Programme auch nach sehr langer Zeit kompilieren und laufen würden. Des Weiteren sind Arrays nicht Teil der Sprachsyntax, sie werden aber in der Laufzeitumgebung repräsentiert, wodurch sich Code schnell und einfach ausführen lässt. Außerdem verfügt Fortran über ein Modulkonzept und ist ohne Änderungen von 32-Bit- auf 64-Bit-Systeme portierbar. Bast sieht die Vorteile bei C++ in Unternehmensanwendungen oder bei der Spieleentwicklung, Fortran würde hingegen bei der Speicherverarbeitung punkten.
Den Bereich der Parallelprogrammierung geht Fortran 2008, das im Sommer 2010 freigegeben wurde, mit einigen neuen Funktionen an. Hier wäre etwa "DO CONCURRRENT" zu nennen, ein paralleles Schleifenkonstrukt, bei der eine in der Schleife referenzierte Variable in der selben Iteration oder außerhalb des Schleifenkonstrukts zu definieren ist. Dadurch lassen sich die Abhängigkeiten zwischen den unterschiedlichen Schleifeniterationen festlegen, wodurch sie sich ohne Seiteneffekte parallelisieren lassen. In Intels Compiler werden diese Iterationen via OpenMP parallel ausgeführt.
Ein anderes die Parallelprogrammierung betreffendes neues Fortran-Feature sind Coarrays. Ihre Implementierung ist vor dem Hintergrund entstanden, eine möglichst kleine Änderung an der Sprache durchzuführen, um diese in ein für die Parallelprogrammierung geeignetes Fortran umzuwandeln. Dafür implementiert sie das im HPC-Umfeld verwendete Programmiermodell Partitioned Global Address Space (PGAS), das einen globalen Adressenbereich logisch unterteilt und den Einzelbereichen den jeweiligen Prozessoren zuordnet.
Fazit
Es hat den Anschein, dass auch drei Jahre nach der ursprünglichen Ankündigung der Parallel-Studio-Software-Suite Intel gut daran tut, weiterhin hart daran zu arbeiten, den Bekanntheitsgrad der eigenen Werkzeuge zu steigern. Denn Parallelprogrammierung, die in den unterschiedlichsten Schattierungen in der HPC-Szene schon länger zum Status quo gehört, wird weiterhin vermehrt Einzug in den Alltag anderer Programmierer halten.
Der IT-Konzern sieht sich gut gerüstet, da Entwickler bei der Bewältigung im nicht einfachen Umgang mit Tasks, Threads, Locking & Co. Hilfe bei Tools suchen werden. Dass sich der Riese dabei beweglich zeigt, verdeutlichen die maßvollen Ergänzungen bei den Parallel-Studio-Werkzeugen beziehungsweise die Anpassungen bei der Konfektionierung ebendieser. (ane)