Vorheriger Beitrag: BASTA! Spring 2009: C#4.0, Visual Studio 2010 und mehr
Buchtipp: Multicore-Programmierung lernen mit Intel
Für alle, die sich mit dem Thema Multicore-Programmierung autodidaktisch auseinandersetzen wollen, haben wir heute einen Buchtipp: “Multicore-Programmierung” von Shameem Akhter und Jason Roberts. Für alle, die mehr auf das Original stehen, sei das Buch in Englisch bei Amazon empfohlen (54,90 Euro, ISBN-10: 3939084700) oder die deutsche Übersetzung “Multicore-Programmierung”, die es bei Entwickler.press für denselben Preis zu kaufen gibt.
Das Buch ist unterteilt in elf Kapitel, die sich allesamt mit dem Thema Multicore-Programmierung und Multithreading beschäftigen. Im ersten Abschnitt geht es zunächst um die Grundzüge von Multicore-Architekturen und die Frage, was das Amdahlsche Gesetz mit dem Ganzen zu tun hat.
Kapitel Nummer 2 betrachtet Threads im Speziellen und zeigt, wo sie eine Rolle spielen und wie hier die Virtualisierung ins Spiel kommt. Der dritte Teil des Buches erläutert dann, wie ein Programm in Threads zerlegt werden sollte, um ein Höchstmaß an Parallelität in die Anwendung zu implementieren.
Anschließend geht es ans Eingemachte: Shameem und Jason betrachten die einzelnen Schritte, die bei der Multithread-Programmierung anfallen, also die Synchronisierung von Daten und Aufgaben, und erklären auch, wie Deadlocks entstehen und wie man diese vermeidet. Kapitel fünf und sechs widmen sich den Threading-Modellen, also den Windows- und POSIX-Threads sowie OpenMP, die wir auch schon betrachtet haben.
Im siebten Kapitel wird es ein wenig schmerzhaft, denn hier zeigen die Autoren, welche Fehler man bei der Multicore-Programmierung machen kann. Die gute Nachricht: Zu jedem Problem gibt es eine passende Lösung, und so präsentiert das Verfasserduo die schönsten Klassiker der Parallelprogrammierung – zu viele Threads, Race Conditions, Deadlocks und Speicherprobleme – wie man sie in den Griff bekommt und welche Tools hierfür taugen.
Abschnitt Numero acht macht kurzen Prozess mit dem siebten, indem es die Fehlerbehebung, also das Debugging näher betrachtet. Beim neunten Kapitel scheint ein Bruch im Buchkonzept vorzuliegen, denn es geht auf einmal um Single-Core-Prozessoren. Dafür haben die Autoren allerdings eine passende Erklärung parat: Nur wer die Funktionsweisen der Einkern-CPUs kennt, versteht die Multicore-Prozessoren richtig. Zumal es ja keinen 100-Prozent-Parallelcode gibt. Daher ist dieses Thema nicht ganz unbedeutend, wenngleich man es nicht unbedingt an dieser Stelle erwartet.
Anhand des zehnten und elften Abschnitts merkt man dann doch noch, dass es sich bei dem Multicore-Buch um ein Intel-Produkt handelt: Die Parallelprogrammierung wird am Beispiel der Intel Multicore-Prozessoren besprochen. Und auch die Programmiertools wie der Thread Checker, die Intel MKL, die Intel IPP und natürlich der VTune Performance Analyzer entstammen alle derselben Schmiede.
Fazit: Für alle, die mehr wissen wollen zum Thema Multicore-Programmierung, sei dieses Buch wärmsten empfohlen. Denn es ist gespickt mit fundiertem Fachwissen, hilfreichen Beispielen und nützlichen Tipps.
Keine ähnlichen Artikel.



Trackbacks & Pingbacks