Programmieren mit Tasks und parallelen Schleifen

Fazit

Konstrukte für die Nutzung von Task- und Datenparallelität sind die Grundbausteine zahlreicher Anwendungen und gehören zum Handwerkszeug eines jeden Softwareentwicklers, der sich die Leistung moderner Prozessoren zunutze machen möchte. Zusammen mit einer auf Multicore-Systeme optimierten Implementierung des darunter liegenden Laufzeitsystems bilden diese Konstrukte ein mächtiges Programmiermodell für parallele Systeme.

In der Literatur findet sich eine Vielzahl weiterer über den Artikel hinausgehender Entwurfsmuster und Techniken, etwa Futures, die die Entwicklung paralleler Software vereinfachen [5]. Dazu gehören auch für den parallelen Zugriff optimierte Datenstrukturen. (ane)

Urs Gleim
leitet bei der Corporate Technology der Siemens AG ein Team mit den Arbeitsschwerpunkten Softwarearchitekturen und Programmiermodelle zur Parallelisierung industrieller Anwendungen.

Dr. Tobias Schüle
ist ebenfalls Mitarbeiter bei Siemens Corporate Technology. Sein Hauptinteresse gilt neben parallelen Programmiermodellen der Architektur und Implementierung von Software für Multicore-Systeme.

  1. International Organization for Standardization; Information Technology – Programming Languages – C++ (ISO/IEC 14882:2011), 2011
  2. Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein; Introduction to Algorithms; MIT Press 2009 (3. Aufl.)
  3. Russ Miller, Laurence Boxer; Algorithms Sequential & Parallel; A Unified Approach; Charles River Media, 2005
  4. Robert D. Blumofe, Charles E. Leiserson; Scheduling Multithreaded Computations by Work Stealing; Symposium on Foundations of Computer Science (FOCS); IEEE, 1994, S. 356 ff.
  5. Urs Gleim, Tobias Schüle; Multicore-Software; dpunkt.verlag 2012