Unter der Haube
Wie ein Blick in das »omptl«-Verzeichnis verrät, besteht die gesamte Bibliothek aus einer Handvoll Headerdateien. Tatsächlich ist die OMPTL nur ein Wrapper, der sich zwischen Programm und Standardbibliothek setzt. Abbildung 2 verdeutlicht dieses Zusammenhang noch einmal grafisch.

|
Abbildung 2: Die OMPTL-Bibliothek zur Parallelisierung in C++ ist zwischen Programm und den Standardbibliotheken angesiedelt.
|
Mit Hilfe der Iteratoren zerhackt die OMPTL den Wertebereich zunächst in mehrere Teilstücke. Für jedes von ihnen ruft sie anschließend die passende Funktion der Standardbibliothek auf, deren Ausführung sie wiederum in eigene OpenMP-Threads kapselt.
Die Funktionen der Standardbibliothek werden somit gar nicht selbst parallelisiert, sondern nur mehrfach für kleinere Datenpakete aufgerufen. Da sowohl die Container als auch die eigentlichen Algorithmen unangetastet bleiben, darf der Programmierer jede beliebige Implementierung der Standardbibliothek verwenden und diese sogar ohne erneute Übersetzung des Programms austauschen.
Laufzeit messen mit OpenMP
Nach dem Einbau von OMPTL-Konstrukten ins eigene Programm möchte jeder Entwickler natürlich gerne wissen, wie viel schneller das nun parallelisierte Programm überhaupt läuft. Dabei hilft ihm die OpenMP-Funktion zur Zeitmessung:
double aktuelle_zeit = omp_get_Uwtime();
Die Funktion liefert den Wert einer ständig im Hintergrund laufenden Stoppuhr. Bevor OMPTL mit den eigentlichen Berechnungen startet, sichert der Programmierer den aktuellen Wert auf die gezeigte Art und Weise. Sobald das Ergebnis vorliegt, ermittelt der folgende Code die verstrichene Zeit in Millisekunden:
std::cout<<"Berechnungsdauer: "<< (1000 * (omp_get_wtime() - aktuelle_zeit)) <<" msn";
Wer die so ermittelten Ausführungszeiten von paralleler und herkömmlicher Variante miteinander vergleicht, dürfte in vielen Fällen von dem Resultat enttäuscht sein, häufig scheint die parallele Ausführung sogar langsamer zu sein.
| Whitepaper |
|
Daten Migration - Eine Publikation von Bloor Research
Datenmigrationsprojekte überschreiten häufig das Budget, neigen zu Verzögerung und werden unter Umständen komplett abgebrochen. Bloor Research ist eines der weltweit führenden IT-Forschungs-, Analyse- und Beratungsunternehmen und wird in dem vorliegenden White Paper die wichtigsten Aspekte dieser Problematik näher beleuchten. Ferner werden praktische Empfehlungen für erfolgreiche Migrationsprojekte gegeben, die Sie auf Ihr nächstes Projekt übertragen können.
Download PDF (Registrierung erforderlich)
|
|
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)
|
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