Portabilität
TBB ist tragbar. Es unterstützt Intel- und AMD- (d. H. X86) Prozessoren, IBM PowerPC- und POWER-Prozessoren, ARM-Prozessoren und möglicherweise andere. Wenn Sie in der build directory suchen, können Sie alle Konfigurationen sehen, die das Build-System unterstützt, die eine breite Palette von Betriebssystemen (Linux, Windows, Android, MacOS, iOS, FreeBSD, AIX usw.) und Compiler (GCC, Intel , Clang/LLVM, IBM XL usw.). Ich habe TBB nicht mit dem PGI C++ Compiler probiert und weiß, dass es nicht mit dem Cray C++ Compiler funktioniert (Stand 2017).
Vor ein paar Jahren war ich Teil der Bemühungen, TBB zu IBM Blue Gene-Systemen zu portieren. Die statische Verbindung war eine Herausforderung, wird aber jetzt von dem big_iron.inc Build-System-Helfer behoben. Die anderen Probleme waren die Unterstützung relativ alter Versionen von GCC (4.1 und 4.4) und die Sicherstellung, dass die PowerPC-Atomics funktionierten. Ich erwarte, dass die Portierung auf eine derzeit nicht unterstützte Architektur auf Plattformen, die GCC und POSIX bereitstellen oder damit kompatibel sind, relativ einfach ist.
Verwendung in Gemeinschaftskodizes
Ich bin von mindestens zwei HPC-Applikations-Frameworks bewusst, dass TBB verwendet:
Ich weiß nicht, wie ELCH Anwendungen TBB, aber MADNESS verwendet TBB für seine Aufgabenwarteschlange und seinen Speicherzuordner.
Leistung im Vergleich zu anderen Threading-Modelle
ich persönlich TBB im Parallel Research Kernels Projekt verwendet haben, in dem ich TBB zu OpenMP verglichen haben, OpenCL, Kokkos, RAJA, 17 ++ C Parallel STL und andere Modelle. Details finden Sie unter C++ subdirectory.
Die folgende Abbildung zeigt die relative Leistung der oben genannten Modelle auf einem Intel Xeon Phi 7250 Prozessor (die Details sind nicht wichtig - alle Modelle verwenden die gleichen Einstellungen). Wie Sie sehen können, ist TBB recht gut, mit Ausnahme von kleineren Problemgrößen, bei denen der Aufwand für die adaptive Planung wichtiger ist. TBB hat Einstellknöpfe, die diese Ergebnisse beeinflussen.
Vollständige Offenlegung: Ich arbeite für Intel in einem Forschungs/Wegfindung Kapazität.
Ich wünschte, ich hätte etwas Zeit, um mit diesen alleine herumzuspielen, aber bis dahin würde ich wirklich daran interessiert sein, von den Erfahrungen mit TBB zu hören. – tgamblin