Portabilidad
TBB es portátil. Es compatible con procesadores Intel y AMD (es decir, x86), procesadores IBM PowerPC y POWER, procesadores ARM y posiblemente otros. Si busca en el build directory, puede ver todas las configuraciones compatibles con el sistema de compilación, que incluyen una amplia gama de sistemas operativos (Linux, Windows, Android, MacOS, iOS, FreeBSD, AIX, etc.) y compiladores (GCC, Intel , Clang/LLVM, IBM XL, etc.). No he probado TBB con el compilador PGI C++ y sé que no funciona con el compilador Cray C++ (a partir de 2017).
Hace algunos años, formé parte del esfuerzo por transferir TBB a los sistemas IBM Blue Gene. La vinculación estática fue un desafío, pero ahora se aborda mediante el asistente de sistema de compilación big_iron.inc. Los otros problemas apoyaban versiones relativamente antiguas de GCC (4.1 y 4.4) y aseguraban que los atómicos de PowerPC funcionaban. Espero que la migración a cualquier arquitectura que actualmente no sea compatible sea relativamente sencilla en plataformas que ofrecen o son compatibles con GCC y POSIX.
uso de códigos comunitarios
Soy consciente de por lo menos dos marcos de aplicaciones HPC que utiliza TBB:
No sé usos cómo ALCES TBB, pero MADNESS usa TBB para su cola de tareas y su asignador de memoria.
rendimiento frente a otros modelos de roscado
he utilizado personalmente TBB en el proyecto Parallel Research Kernels, dentro de la cual he comparado TBB a OpenMP, OpenCL, Kokkos, raja, C++ 17 STL paralelo, y otros modelos. Vea el C++ subdirectory para más detalles.
La figura siguiente muestra el rendimiento relativo de los modelos antes mencionados en un procesador Intel Xeon Phi 7250 (los detalles no son importantes, todos los modelos utilizan la misma configuración). Como puede ver, TBB lo hace bastante bien, excepto en el caso de tamaños de problema más pequeños, donde la sobrecarga de la programación adaptable es más relevante. TBB tiene perillas de ajuste que afectarán estos resultados.
La revelación completa: Yo trabajo para Intel en una capacidad de investigación/búsqueda de caminos.
Ojalá tuviera algo de tiempo para jugar con esto por mi cuenta, pero hasta entonces estaría realmente interesado en conocer las experiencias con TBB también. – tgamblin