Open Source im professionellen Einsatz

Newsletter abonnieren
Seite durchsuchen

HEFTARCHIV | NEWS | E-BIBLIOTHEK | VIDEO | BLOGS | WHITEPAPER | EVENTS | ACADEMY | ABO | SHOP

user friendly

  Home  »  Heft & Abo  »  Heftarchiv  »  2008  »  01  »  Doppel-Herz  

RSS-Feed der aktuellen News von Linux-Magazin Online Folgen Sie Linux-Magazin Online auf Twitter
Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark

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.

Alternative

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)

Infos

[1] OpenMP: [http://www.openmp.org]

[2] Michael Hebenstreit, "Parallelisieren mit OpenMP" Linux-Magazin 05/07, S. 42

[3] Intel-C++-Compiler für Linux [http://www3.intel.com/cd/software/products/asmo-na/eng/compilers/clin/277618.htm]

[4] OMPTL-Bibliothek: [http://sip.unige.ch/omptl]

[5] CVMLCPP-Bibliothek: [http://sip.unige.ch/cvmlcpp]

[6] TBB-Homepage: [http://threadingbuildingblocks.org]

[7] Mario Deilmann, Thomas Willhalm, "Intel Threading Building Blocks. Ein Template-basiertes Programmiermodell für Multicore": Linux-Magazin 05/07, S 48

Der Autor

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.

Sie können diesen Artikel als PDF für 99 Cent kaufen. Klicken Sie dazu einfach auf eine der beiden Bezahloptionen Paypal oder ClickandBuy.


Diesen Artikel druckenDiesen Artikel weiterempfehlen Diesen Artikel kommentieren Newsletter abonnieren
Share/Bookmark
Ähnliche Artikel
Reichhaltiges Angebot C++0x, Teil 2: Neues in der Standardbibliothek
Erfrischend neu Der kommende C++-Standard C++0x
Chips frisch Aktuelle und kommende Numbercruncher-CPUs
Freie Fahrt Konzept freier Programme auf dem Prüfstand
Grenzübertritt Solaris-Software nach Linux portieren
Leserbriefe Auf den Punkt gebracht
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)
Kommentare (1)
von
Andrew,
06.01.2009 22:30
More about OpenMP
32 OpenMP traps for C++ developers
http://www.viva64.com/art-3-2-1023467288.html