휴대 성
TBB는 휴대용입니다. Intel 및 AMD (즉 x86) 프로세서, IBM PowerPC 및 POWER 프로세서, ARM 프로세서 및 기타 제품을 지원합니다. build directory을 보면 다양한 운영 체제 (Linux, Windows, Android, MacOS, iOS, FreeBSD, AIX 등) 및 컴파일러 (GCC, Intel 등)를 포함하는 빌드 시스템이 지원하는 모든 구성을 볼 수 있습니다. , Clang/LLVM, IBM XL 등). TBB를 PGI C++ 컴파일러로 사용하지 않았으며 Cray C++ 컴파일러 (2017 년 현재)와 호환되지 않는다는 것을 알고 있습니다.
몇 년 전, 저는 TBB를 IBM Blue Gene 시스템에 이식하기위한 노력의 일환이었습니다. 정적 연결은 어려웠지 만 이제는 big_iron.inc 빌드 시스템 도우미로 처리됩니다. 다른 문제는 상대적으로 고대 버전의 GCC (4.1 및 4.4)를 지원하고 PowerPC atomics가 작동하는지 확인하는 것이 었습니다. 현재 지원되지 않는 아키텍처로의 이식은 GCC 및 POSIX와 호환되거나 호환되는 플랫폼에서 비교적 간단합니다.지역 코드에
는
사용
내가 TBB를 사용하여 두 개 이상의 HPC 응용 프로그램 프레임 워크 알고 :
내가 어떻게 MOOSE 용도를 모른다 TBB이지만 MADNESS는 태스크 큐와 메모리 할당 자로 TBB를 사용합니다. 다른 스레딩 모델 나는 개인적으로 Parallel Research Kernels 내가 OpenMP를, OpenCL을, Kokkos 라자에 TBB를 비교 한있는 내 프로젝트, C++ 17 병렬 STL, 그리고 다른 모델에 TBB를 사용했다
대
다음 그림은 Intel Xeon Phi 7250 프로세서에서 앞서 언급 한 모델의 상대적 성능을 보여줍니다 (세부 사항은 중요하지 않으며 모든 모델은 동일한 설정을 사용함). 보시다시피, TBB는 적응 스케줄링의 오버 헤드가 더 중요한 작은 문제 크기를 제외하고는 꽤 잘합니다. TBB에는 이러한 결과에 영향을 줄 수있는 조정 손잡이가 있습니다.
![PRK stencil](https://i.stack.imgur.com/MVd5j.png)
전체 공개 : 나는 연구/길 찾기 능력에 인텔 작동합니다.
나는 이것들을 가지고 놀기를 바란다.하지만 그때까지는 TBB에 관한 경험에 대해서 정말로 관심이있다. – tgamblin