{{위키데이터 속성 추적}}
{{소프트웨어 정보
|name                       = 스레딩 빌딩 블록<br />Threading Building Blocks
|logo                       =
|screenshot                 =
|caption                    =
|collapsible                =
|author                     =
|developer                  = 인텔
|released                   =
| latest release version = 2021.8
| latest release date = {{시작 날짜와 나이|2023|02|17}}<ref>{{웹 인용|title= oneAPI Threading Building Blocks Github Releases |website=[[GitHub]] |url=https://github.com/oneapi-src/oneTBB/releases}}</ref>
|latest preview version     =
|latest preview date        =
|frequently updated         =
|programming language       = C++
|operating system           = FreeBSD, 리눅스, 솔라리스, OS X, 마이크로소프트 윈도우
|platform                   =
|size                       =
|language                   =
|status                     =
|genre                      = [[라이브러리 (컴퓨팅)|라이브러리]] 또는 [[소프트웨어 프레임워크]]
|license                    = [[다중 라이선스|이중]]: 상용 / 오픈 소스
|website                    = http://threadingbuildingblocks.org/
}}

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

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

== 역사 ==
* 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 이상), [[GNU 컴파일러 모음|GCC]]를 사용할 수 있다.<ref>{{웹 인용 |url=http://software.intel.com/sites/products/documentation/hpc/tbb/release_notes.txt |제목=Intel Threading Building Blocks - Release Notes Version 3.0 |accessdate=2011-08-08}}</ref> 또, TBB 오픈 소스 커뮤니티는 썬 [[솔라리스 (운영 체제)|솔라리스]]<ref>{{웹 인용 |url=http://developers.sun.com/solaris/articles/tbb_intro.html|제목=Using Intel's Threaded Building Blocks (TBB) With Sun Studio Express|accessdate=2008-05-08}}</ref>, [[파워PC]], [[엑스박스 360]], [[QNX|QNX 뉴트리노]], [[FreeBSD]]를 위한 패치를 제작하여 기여하고 있다.

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

== 같이 보기 ==
* [[오픈MP]]
* [[병렬 컴퓨팅]]

== 참조 ==
<references />

== 참고 문헌 ==
* {{서적 인용|last=Reinders|first=James |year=2007|month= July|url=http://www.oreilly.com/catalog/9780596514808 |제목=Intel Threading Building Blocks: Outfitting C++ for Multi-core Processor Parallelism|edition=Paperback|location= Sebastopol|publisher= O'Reilly Media|isbn= 978-0-596-51480-8}}
* {{서적 인용|last=Voss|first=M.|year=2006|month=October|url=http://www.devx.com/cplus/Article/32935|제목=Demystify Scalable Parallelism with Intel Threading Building Blocks' Generic Parallel Algorithms|access-date=2013-02-09|archive-date=2012-02-05|archive-url=https://web.archive.org/web/20120205044110/http://www.devx.com/cplus/Article/32935|url-status=}}
* {{서적 인용|last=Voss|first=M.|year=2006|month=December|url=http://www.devx.com/cplus/Article/33334|제목=Enable Safe, Scalable Parallelism with Intel Threading Building Blocks' Concurrent Containers|access-date=2013-02-09|archive-date=2012-02-05|archive-url=https://web.archive.org/web/20120205044133/http://www.devx.com/cplus/Article/33334|url-status=}}
* {{서적 인용|doi=10.1145/1133956.1133967|pages=74–83|chapter=McRT-Malloc|제목=Proceedings of the 2006 international symposium on Memory management  - ISMM '06|year=2006|last1=Hudson|first1=Richard L.|last2=Saha|first2=Bratin|last3=Adl-Tabatabai|first3=Ali-Reza|last4=Hertzberg|first4=Benjamin C.|isbn=1595932216}}

== 외부 링크 ==
* {{공식 웹사이트}}

{{인텔 소프트웨어}}
{{병렬 컴퓨팅}}

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