Overhead
Schuld an diesem Widerspruch ist der erhöhte Aufwand bei einer Parallelisierung. So müssen OMPTL und OpenMP zunächst die Daten passend auf mehrere Threads verteilen und deren Ergebnisse anschließend wieder sinnvoll zusammenführen. Die entstehende zusätzliche Arbeit frisst recht häufig den erzielten Zeitgewinn auf. Ob sich eine Parallelisierung tatsächlich lohnt, hängt maßgeblich von den vorliegenden Daten und dem zu verwendenden Algorithmus ab. Als Faustregel gilt: Eine Parallelisierung rentiert sich nur, wenn man erstens mit großen Datenmengen hantiert und zweitens die darauf ausgeführten Berechnungen auch wirklich einen essenziellen Teil des späteren Programms ausmachen.
|
Neben dem im Artikel erwähnten OpenMP gibt es für C/C++-Entwickler noch weitere Alternativen zur Parallelprogrammierung. Ähnlich wie OMPTL richtet sich die Intel-Entwicklung Threading Building Blocks (TBB) an C++-Programmierer [6]. Auf Templates basierend ergänzt die Bibliothek das Funktionsrepertoire der Standard-C++-Library STL. Für einige komplexe Datentypen der STL bringen die TBB auch Thread-sichere Pendants mit.
Seit dem im Linux-Magazin erschienenen Artikel [7] zu diesem Thema hat sich bei der TBB-Bibliothek einiges getan. So steht sie mittlerweile unter einer Open-Source-Lizenz jedermann frei zur Verfügung.
Die kommende Version wird weitere Neuerungen bringen. So möchten die Entwickler neue Thread-sichere Containerklassen implementieren und vorhandene beschleunigen. Die Implementierung von Task-to-Thread-Affinität soll außerdem dafür sorgen, dass die Cache-Lokalität von Daten bei parallelen Programmen erhalten bleibt. Andernfalls würden die durch zwischen den Kernen wechselnde Threads gewonnenen Performance-Vorteile wieder verschenkt. (Oliver Frommel)
|
Fazit
Die OMPTL bietet einen schnellen und unkomplizierten Einstieg in die parallele Programmierung mit C++. Dank der transparenten Arbeitsweise muss sich der Entwickler keine Gedanken mehr über die Aufteilung des Algorithmus und der Zusammenführung der Berechnungsergebnisse machen, vorausgesetzt die betroffenen Container bringen eigene Iteratoren mit.
Wer zur OMPTL greifen möchte, sollte sich vorher aber gut überlegen, ob die parallele Verarbeitung tatsächlich Vorteile bringt. Hier sind entsprechende Laufzeittests unentbehrlich. Verschärfend kommt noch hinzu, dass die OMPTL gegenwärtig noch nicht alle Algorithmen aus der Standardbibliothek unterstützt und bei einigen von ihnen auch gar keine Parallelisierung möglich sein wird. Immerhin ist die OMPTL dank LGPL-Lizenz mit kommerzieller Software verträglich. (ofr)
|
Tim Schürmann ist selbstständiger Diplom-Informatiker und derzeit hauptsächlich als freier Autor unterwegs. Zu seinen Büchern gesellen sich zahlreiche Artikel, die in Zeitschriften und auf Internetseiten in mehreren Ländern veröffentlicht wurden.
|
| Whitepaper |
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele
Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
|
The Role of Open Source in Data Integration
Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|
Andrew,
06.01.2009 22:30
http://www.viva64.com/art-3-2-1023467288.html