스레딩 빌딩 블록

스레딩 빌딩 블록(Threading Building Blocks, TBB)은 다중 코어 프로세서의 이점을 취하는 소프트웨어 프로그램을 작성할 목적으로 인텔이 개발한 C++ 템플릿 라이브러리이다.

라이브러리 속성 
TBB는 병렬 프로그래밍을 위한 구성 요소들의 집합이다:
 기본 알고리즘: parallel_for, parallel_reduce, parallel_scan
 고급 알고리즘: parallel_while, parallel_do, parallel_pipeline, parallel_sort
 컨테이너: concurrent_queue, concurrent_priority_queue, concurrent_vector, concurrent_hash_map
 동적 메모리 할당: scalable_malloc, scalable_free, scalable_realloc, scalable_calloc, scalable_allocator, cache_aligned_allocator
 상호 배제: mutex, spin_mutex, queuing_mutex, spin_rw_mutex, queuing_rw_mutex, recursive mutex
 원자적 연산: fetch_and_add, fetch_and_increment, fetch_and_decrement, compare_and_swap, fetch_and_store
 타이밍: 포팅 가능하고 정밀한 전역 시간표
 태스크 스케줄러: 태스크의 작성 및 활성화의 통제에 대한 직접 접근

역사 
 1.0 (2006년 8월 29일)
 1.1 (2007년 4월 10일)
 2.0 (2007년 7월 24일)
 2.1 (2008년 7월 22일)
 3.0 (2010년 5월 4일)
 4.0 (2011년 9월 8일)
 4.1 (2012년 9월 5일)
 4.2 (2013년 9월 4일)

지원 시스템 
TBB는 3.0 기준으로 마이크로소프트 윈도우 (XP 이상), OS X (버전 10.5.8 이상), 리눅스를 지원하며, 비주얼 C++(윈도 전용이며 버전 8.0 이상), 인텔 C++ 컴파일러(버전 11.1 이상), GCC를 사용할 수 있다. 또, TBB 오픈 소스 커뮤니티는 썬 솔라리스, 파워PC, 엑스박스 360, QNX 뉴트리노, FreeBSD를 위한 패치를 제작하여 기여하고 있다.

2010년 3월 기준으로, TBB는 FreeBSD에서 이용할 수 있으며 다음의 GNU/리눅스 및 썬 솔라리스 배포판에 포함되고 있다:
 레드햇 페도라
 노벨 오픈수세
 우분투
 아치 리눅스
 터보리눅스
 아시아눅스
 데비안
 젠투 리눅스
 썬 솔라리스
 썬 오픈솔라리스

같이 보기 
 오픈MP
 병렬 컴퓨팅

참조

참고 문헌

외부 링크 
 

API
C++ 라이브러리
인텔 제품
스레드
C++ 프로그래밍 언어 계열
인텔 소프트웨어
제네릭 프로그래밍