Bild von Intel Threading Building Blocks

Intel Threading Building Blocks

von Intel

Bewährte C++-Vorlagenbibliothek für Windows, Linux und Mac OS

Übersicht

Intel Threading Building Blocks ist eine Bibliothek zur Programmierung von parallelisierten Programmen. Die TBB abstrahieren die vorhandenen Threading-Funktionen und ermöglichen durch C++-Templates und Funktionen die Programmierung von Multicore-Anwendungen, ohne dass tiefere Kenntnisse der Thread-Programmierung nötig sind.

Sie sind kein Experte im Bereich Threading oder paralleler Programmierung? Dann nutzen Sie Intel Threading Building Blocks wenn Sie nicht auf Multi-Core Performance verzichten wollen.

Vorteile von Intel TBB:
  • Ein höheres Level an parallelen Berechnungen um für einfachere Lösungen 
  • Die umfassende Lösung mit den meisten Features für die parallele Entwicklung von Anwendungen
  • Leicht einzusetzende und zukunftssichere Skalierbarkeit
  • Parallelisierter Code und hohe Performance für C++-Anwendungen
  • Unterstützt mehrere Betriebssysteme für eine Vielzahl von Intel Anwendungen Intel® Atom ™ , Intel® Core ™ , Intel® Xeon® und Intel® Xeon Phi ™ Prozessoren

Gesteigerte Produktivität und Verlässlichkeit

Intel® TBB bietet Abstraktionen, mit denen es leichter ist, skalierbare und verlässliche parallele Anwendungen mit weniger Codezeilen zu schreiben. Taskbasierte Algorithmen, nebenläufige Container, Synchronisationsprimitive und ein skalierbarer Speicherzuweiser vereinfachen parallele Anwendungsentwicklung.

Skalierbarkeit mit Zukunftssicherung

Die Anwendungsleistung verbessert sich durch Verwendung von abstrakten Tasks automatisch, wenn mehr Prozessorkerne hinzukommen. Der ausgeklügelte Task-Scheduler verteilt Tasks dynamisch auf Threads, um einen Lastausgleich zwischen verfügbaren Kernen zu schaffen, Cache-Lokalität zu erhalten und parallele Leistung zu maximieren.

Portabilität

Intel® TBB ist auf Windows®, Linux® und Mac OS® X-Plattformen unter Benutzung von mehreren Compilern validiert und kommerziell unterstützt. Sie sind auch auf FreeBSD®, IA Solaris®, XBox® 360, und PowerPC-basierten Systemen durch die Open-Source-Community verfügbar. Organisationen können ihre Kundenbasis erweitern, indem sie eine gebrauchsfertige, offene Lösung für Parallelität benutzen, die für eine große Anzahl an Plattformen verfügbar ist.

Zusammensetzbarkeit

Vielfache Intel® TBB-basierte Module arbeiten nahtlos in Benutzeranwendungen zusammen und stellen effiziente Ausnutzung der verfügbaren Hardware-Parallelität sicher. Intel® TBB stellt auch kooperative Koexistenz mit anderen Programmiermodellen innerhalb der Intel-Familie von parallelen Programmiermodellen sicher.

Leistungsvorteil

Intel® TBB ist für skalierbare Multicore-Architektur optimiert, einschließlich Non-Uniform Memory Access (NUMA). Intel® TBB bietet verlässlichen Code mit gesteigerter Leistung bei gleichzeitig weniger Aufwand im Vergleich zu manuellem Threading.

Lizenzprogramm

Intel Software wird entweder nach Named User (Single User) oder nach einem Netzwerk (Floating) lizenziert werden:

Lizenzierung nach Named User:
Die Single User Lizenzen werden auf einen bestimmten Mitarbeiter ausgestellt und dürfen auch nur von dieser Person verwendet werden. Möchten weitere Mitarbeiter auf die Lizenz zugreifen, müssen neue Lizenzen, speziell für die entsprechenden Mitarbeiter erworben werden. Single User Lizenzen sind in unbegrenzter Stückzahl käuflich. Jede Vollversion wird inklusive einem Jahr Wartung ausgeliefert.  Die Wartung sollte nach Ablauf eines Jahres verlängert werden. Dazu sind günstige Wartungsverlängerungen erhältlich.

Lizenzierung nach Netzwerk (Floating):
Die Netzwerklizenzen werden im Gegensatz zur Single User Lizenzierung nicht auf einen bestimmten Mitarbeiter ausgestellt. Daher können die Netzwerklizenzen von verschiedenen Mitarbeitern genutzt werden, die beim Kauf nicht angegeben werden müssen. Daher können Unternehmen die Netzwerklizenz viel flexibler einsetzen und brauchen sich nicht um eine mögliche Unter- oder Überlizenzierung zu kümmern. Die Floating Lizenz ist für verschiedene Userstaffeln erhältlich. Je nachdem, welche Userstaffel beim Kauf der Netzwerklizenz gewählt wird, können dementsprechend viele  Mitarbeiter gleichzeitig die Lizenz verwenden. Die Wartung sollte nach Ablauf eines Jahres verlängert werden. Dazu sind günstige Wartungsverlängerungen erhältlich.

Wartung (SSR):
In allen Vollversionen der Intel Softwaretools ist das erste Jahr Wartung enthalten. Wir empfehlen, die Wartung nach einem Jahr zu günstigen Konditionen zu verlängern.

Vorteile der Verlängerung:

  • Gratis Updates auf neue Versionen und Features
  • Möglichkeit, günstige Upgrades auf höherwertige Editionen zu kaufen
  • 24h Customer Support, unbegrenzte Anzahl an Serviceanfragen
  • Technische Unterstützung mit dem “Intel Premier Services“ Programm und Website, z. B. bei Lizenzierungs- und Registrationsproblemen, Installation, Lizenzumzug zwischen Servern, Lizenzumschreibungen, etc.
  • Möglichkeit zur Teilnahme an öffentlichen Hands-On Trainings
  • uvm.

Non-Commercial Einsatz (Academic Versionen):
Für Ausbildungszwecke bietet Intel spezielle Academic Versionen zu vergünstigten Konditionen an. Academic-berechtigt sind Hochschulen, TUs, Institute, etc. die akademische Titel vergeben. Zudem dürfen Academic Lizenzen von Privatpersonen, also Studenten genutzt werden, die weder Bafög, noch sonstige Einkünfte verdienen und die Software für Studienzwecke verwenden möchte.

ProduktmerkmalVorteil
Flow Graph

Abhängigkeitsgraphen und Datenflußgraphen
Flexible API für das Ausdrücken von statischen und dynamischen Abhängigkeiten zwischen Berechnungen. Erweitert auch die Anwendbarkeit von Intel® TBB auf ereignisgesteuerte/reaktive Programmiermodelle.
Task- und Task-Gruppen-Prioritäten Bietet die Möglichkeit, die Reihenfolge der Task-Ausführung basierend auf drei Prioritätsstufen (niedrig, normal und hoch) festzulegen. Für eingereihte Tasks werden statische Prioritäten unterstützt; für Task-Gruppen werden dynamische Prioritäten unterstützt.
Speicherpools Ermöglicht dem Intel® TBB Speicherzuweiser die Bearbeitung von benutzerdefinierten Speicherbereichen. Dieser Mechanismus ermöglicht größere Flexibilität und Leistung, indem man thread-sichere und skalierbare Objektzuweisung in den anwendungsspezifischen Speicherblöcken mit maßgeschneiderten Lebensdauer- und Wachstumsregeln erhält.
Nebenläufige Prioritäts- Warteschlange

Prioritäts-Warteschlange mit nebenläufigen Operationen
Neue thread-sichere Container zur Speicherung von und Zugriff auf Benutzerobjekte unter Benutzung eines Hash-Key. Implementiert eine nebenläufige Variante eines Standard-C++ class std::unordered_set.
Generische Unterstützung von GCC* Atomics Größere Portabilität der Bibliothek, die dem Anwender ermöglicht, Intel® TBB-basierte Lösungen auf einer größeren Anzahl an Plattformen zu entwicklen. Der Anwender hat jetzt die Wahl, integrierte GCC* Atomics-Routinen anstatt der bereitgestellten, plattformspezifischen Routinen zu benutzen.
Neue Beispiele Neue Beispiele veranschaulichen die Benutzung wichtiger neuer Informationen:

- Kürzester Weg (concurrent_priority_queue)
- Dininierende Philosophen, Bin-Packing (Flußgraph)
- Mandelbrot-Fraktal (Task-Priorität)

Funktionen und Vorteile

ProduktmerkmalVorteil
Leistung und Produktivität 
Parallele Algorithmen

Generische Implementierung von häufigen parallelen Leistungsstrukturen
Generische Implementierungen von parallelen Strukturen wie zum Beispiel parallele Schleifen, Flußgraphen und Pipelines kann ein einfacher Weg sein, skalierbare parellele Implementierung zu erzielen, ohne der Notwendigkeit, eine maßgeschneiderte Lösung von Grund auf fertigen zu müssen.
Task-Scheduler

Engine, der parallele Tasks und Task- Gruppen verwaltet.
Der Intel® TBB Task-Scheduler unterstützt taskbasiertes Programmieren und nutzt Task-Stealing für dynamischen Lastausgleich - eine skalierbare und higher-level Alternative zur manuellen Verwaltung von Betriebssystem-Threads. Die Implementierung unterstützt C++- Ausnahmen, Task/Task-Gruppen-Prioritäten und Löschen, welche für große und interaktive parallele C++-Anwendungen essenziell sind.
Nebenläufige Container

Generische Implementierung von häufigen Idiomen für nebenläufigen Zugriff
Die nebenläufigen Container von Intel® TBB sind eine skalierbare Alternative zu seriellen Datencontainern. Serielle Datenstrukturen (wie z.B. C++ STL-Container) benötigen häufig einen globalen Lock, um sie vor nebenläufigen Zugriff und nebenläufiger Modifikation zu schützen; die nebenläufigen Container von Intel® TBB ermöglichen mehreren Threads gleichzeitig auf Items im Container zuzugreifen und diese zu aktualisieren und somit wird die Menge an geleisteter paralleler Arbeit maximiert und die Skalierbarkeit der Anwendung verbessert.
Synchronisationsprimitive

Ausnahme-sichere Locks; Mutexe, Condition-Variablen und atomare Operationen
Intel® TBB bietet einen umfassenden Satz an Synchronisationsprimitiven mit unterschiedlichen Qualitäten, die auf häufige Synchronisationsstrategien anwendbar sind. Ausnahme-sichere Implementierung von Locks hilft, Deadlocks in C++-Programmen zu vermeiden, die C++-Ausnahmen benutzen. Verwendung der atomaren Variablen von Intel® TBB anstelle einer C-artigen atomaren API verringert potentielle Data-Races.
Skalierbare Speicherzuweiser Skalierbarer Speichermanager und False-Sharing-freier Speicherzuweiser Der skalierbare Speicherzuweiser vermeident Skalierbarkeitsengpässe, indem er Zugriff auf gemeinsamen Speicher mittels per-Thread- Speicherpool-Mangement verringert. Spezielle Verwaltung von großen (>=8KB) Blöcken ermöglicht effizientere Nutzung von Ressourcen bei gleichzeitiger Skalierbarkeit und wettbewerbsfähiger Leistung. Der cache-ausgerichtete Speicherzuweiser vermeidet False Sharing indem er zugewiesenen Speicherblöcke nicht erlaubt, eine Cache-Zeile zu teilen.
Dokumentation und Beispiele Ein vollständiges Dokumentationspaket und Codebeispiele sind sowohl als Teil der Intel® TBB-Installation als auch online verfügbar. Die Getting Started Anleitung und das Tutorial bieten eine Einführung in Intel® TBB. Das Referenzhandbuch enthält formale Beschreibungen aller in Intel® TBB implementierten Klassen und Funktionen, während die Entwurfsmuster häufige parallele Programmierstrukturen behandeln und wie diese mittels Intel® TBB implementiert werden.
Flexibilität 
Geeignet für viele Anwendungsbereiche Der Intel® TBB Flow Graph und die generischen Vorlagenfunktionen sind an eine große Anzahl von Problemen anpassbar.
Anwenderdefinierte Tasks Wenn ein Algorithmus nicht mit high-level Intel® TBB-Konstrukten ausgedrückt werden kann, hat der Anwender die Möglichkeit, beliebige Aufgabenbäume zu schaffen. Tasks können für bessere Lokalität und Leistung gespawned werden, oder eingereiht, um FIFOähnliche Reihenfolge beizubehalten und gegen Aussperrung resistente Ausführung sicherzustellen.
Vorwärtsskalierung 
Dynamisches Task-Scheduling Intel® TBB ermöglicht es dem Entwickler, Parallelität auf der höheren Ebene zu betrachten und sich nicht mit Low-Level-Details des Threading herumzuschlagen. Ein Entwickler drückt ein paralleles Modell in Form von parallelen Tasks aus und verlässt sich auf Intel® TBB, diese in effizienter Art und Weise auszuführen, indem die passende Anzahl an Threads dynamisch erkannt werden. Dadurch sind Lösungen, die auf Intel® TBB basieren, unabhängig von der Anzahl an CPUs und dies macht verbesserte Leistung und Skalierbarkeit mit der in Zukunft wachsenden Anzahl an CPUs möglich.
Zusammensetzbarkeit 
Unterstützung von verschiedenen Parallelitätsarten Der Intel® TBB Task-Scheduler und die parallelen Algorithmen unterstützen verschachtelte und rekursive Parallelität und können auch parallele Konstrukte nebeneinander ausführen. Das ist für schrittweise Einführung von Parallelität nützlich und unterstützt unabhängige Implementierung von Parallelität in verschiedenen Komponenten einer Anwendung.
Kompatibilität 
Koexistenz mit anderen Threading- Paketen Intel® TBB ist darauf ausgelegt, neben anderen Threading-Paketen und -Technologien eingesetzt zu werden (Intel® Cilk™ Plus, Intel® OpenMP, Betriebssystem-Threads, etc.). Verschiedene Komponenten der Intel® TBB können unabhängig oder gemeinsam mit anderen Threading-Technologien benutzt werden.
Compilerunabhängige Lösung Intel® TBB ist eine Bibliothekslösung und kann in mit mehreren Compilern erzeugten Software-Projekten auf verschiedenen Plattformen benutzt werden.
Einfache Lizenzierung 
Lizenzfreie Verwendung Unbegrenzte Kopien der Intel® TBB-Bibliotheken und Header-Dateien mit Ihrer Anwendung vertreiben.
Open Source Version Zum Herunterladen von threadingbuildingblocks.org erhältlich. Die breite Unterstützung durch eine involvierte Community bietet Entwicklern Zugriff auf zusätzliche Plattformen und Betriebssysteme.
 Intel Parallel Studio XEIntel C++ Studio XEIntel Fortran Studio XEIntel Composer XEIntel C++ Composer XEIntel Fortran Composer XEIntel Cluster Studio XEIntel Cluster Studio
Betriebssystem W,L W,L W,L W,L W,L,M W,L,M W,L W,L
Intel® C / C++ Compiler    
Intel® Fortran Compiler    
Intel® Integrated Performance Primitives  
Intel® Math Kernel Library
Intel® Cilk™ Plus    
Intel® Threading Building Blocks    
Intel® Inspector XE        
Intel® VTune™ Amplifier XE        
Statische Sicherheitsanalyse        
Intel® MPI-Bibliothek            
Intel® Trace Analyzer & Collector            
Rogue Wave IMSL*-Bibliothek              
Artikelnummer Bezeichnung Upg Nettopreis Bruttopreis
191086 EDU Intel Threading Building Blocks 2019, 1 User Floating, 1Y, EN, MAC, RNW MNT Pre-Expiry max, 30 Tage nach Ablauf €228,57 €272,00
191087 EDU Intel Threading Building Blocks 2019, 1 User Floating, 1Y, EN, MAC, RNW MNT Post-Expiry max, 12 Monate nach Ablauf €366,39 €436,00
191088 EDU Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, MAC, LIZ+MNT €228,57 €272,00
191089 EDU Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, MAC, RNW MNT Pre-Expiry max, 30 Tage nach Ablauf €118,49 €141,00
191090 EDU Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, MAC, RNW MNT Post-Expiry max, 12 Monate nach Ablauf €183,19 €218,00
191092 EDU Intel Threading Building Blocks 2019, 1 User Floating, 1Y, EN, LINUX, RNW MNT Pre-Expiry max, 30 Tage nach Ablauf €228,57 €272,00
191093 EDU Intel Threading Building Blocks 2019, 1 User Floating, 1Y, EN, LINUX, RNW MNT Post-Expiry max, 12 Monate nach Ablauf €366,39 €436,00
191094 EDU Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, LINUX, LIZ+MNT €228,57 €272,00
191095 EDU Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, LINUX, RNW MNT Pre-Expiry max, 30 Tage nach Ablauf €118,49 €141,00
191096 EDU Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, LINUX, RNW MNT Post-Expiry max, 12 Monate nach Ablauf €183,19 €218,00
191098 EDU Intel Threading Building Blocks 2019, 1 User Floating, 1Y, EN, WIN, RNW MNT Pre-Expiry max, 30 Tage nach Ablauf €228,57 €272,00
191099 EDU Intel Threading Building Blocks 2019, 1 User Floating, 1Y, EN, WIN, RNW MNT Post-Expiry max, 12 Monate nach Ablauf €366,39 €436,00
191100 EDU Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, WIN, LIZ+MNT €228,57 €272,00
191101 EDU Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, WIN, RNW MNT Pre-Expiry max, 30 Tage nach Ablauf €118,49 €141,00
191102 EDU Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, WIN, RNW MNT Post-Expiry max, 12 Monate nach Ablauf €183,19 €218,00
115180 Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, LINUX, RNW MNT Post-Expiry max, 12 Monate nach Ablauf €321,01 €382,00
115181 Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, LINUX, RNW MNT Pre-Expiry max, 30 Tage nach Ablauf €164,71 €196,00
115182 Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, MAC, RNW MNT Post-Expiry max, 12 Monate nach Ablauf €321,01 €382,00
115183 Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, MAC, RNW MNT Pre-Expiry max, 30 Tage nach Ablauf €164,71 €196,00
115184 Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, WIN, RNW MNT Post-Expiry max, 12 Monate nach Ablauf €321,01 €382,00
115185 Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, WIN, RNW MNT Pre-Expiry max, 30 Tage nach Ablauf €164,71 €196,00
115186 Intel Threading Building Blocks 2019, 1 User Floating, 1Y, EN, LINUX, RNW MNT Post-Expiry max, 12 Monate nach Ablauf €642,02 €764,00
115187 Intel Threading Building Blocks 2019, 1 User Floating, 1Y, EN, LINUX, RNW MNT Pre-Expiry max, 30 Tage nach Ablauf €321,01 €382,00
115188 Intel Threading Building Blocks 2019, 1 User Floating, 1Y, EN, MAC, RNW MNT Post-Expiry max, 12 Monate nach Ablauf €642,02 €764,00
115189 Intel Threading Building Blocks 2019, 1 User Floating, 1Y, EN, MAC, RNW MNT Pre-Expiry max, 30 Tage nach Ablauf €321,01 €382,00
115190 Intel Threading Building Blocks 2019, 1 User Floating, 1Y, EN, WIN, RNW MNT Post-Expiry max, 12 Monate nach Ablauf €642,02 €764,00
115191 Intel Threading Building Blocks 2019, 1 User Floating, 1Y, EN, WIN, RNW MNT Pre-Expiry max, 30 Tage nach Ablauf €321,01 €382,00
187676 Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, LINUX, LIZ+MNT €458,82 €546,00
187677 Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, MAC, LIZ+MNT €458,82 €546,00
187678 Intel Threading Building Blocks 2019, 1 Named User, 1Y, EN, WIN, LIZ+MNT €458,82 €546,00