OpenMP는 컴파일러 지시문(지침) 세트이자 C, C++ 또는 FORTRAN으로 작성된 프로그램을 위한 API로, 공유 메모리 환경에서 병렬 프로그래밍을 지원한다. OpenMP는 병렬 영역을 병렬로 실행될 수 있는 코드 블록으로 식별한다. 애플리케이션 개발자는 병렬 영역에 코드에 컴파일러 지시문을 삽입하고, 이러한 지시문은 OpenMP 런타임 라이브러리에 해당 영역을 병렬로 실행하도록 지시한다.
병렬화에 대한 지시문을 제공하는 것 외에도 OpenMP는 개발자가 여러 수준의 병렬화 중에서 선택할 수 있도록 한다. 예를 들어, 스레드 수를 수동으로 설정할 수 있다. 또한, 개발자는 데이터가 스레드 간에 공유되는지 또는 비공개인지 식별할 수 있다. OpenMP는 Linux, Windows 및 macOS 시스템용 여러 오픈 소스 및 상용 컴파일러에서 사용할 수 있다.
Grand Central Dispatch (GCD)는 Apple이 macOS 및 iOS 운영 체제를 위해 개발한 기술이다. 런타임 라이브러리, API 및 언어 확장의 조합으로, 개발자가 병렬로 실행할 코드 섹션(tasks)을 식별할 수 있다. OpenMP와 마찬가지로 스레딩의 대부분 세부 사항을 관리한다.
GCD는 디스패치 큐에 task를 배치하여 런타임 실행을 위한 작업을 예약한다. 큐에서 task를 제거하면 해당 작업을 관리하는 스레드 풀에서 사용가능한 스레드에 할당한다. GCD는 serial 및 concurrent는 두 가지 유형의 디스패치 큐를 식별한다.
Intel threading building blocks (TBB)은 C++에서 병렬 애플리케이션을 설계하는 것을 지원하는 템플릿 라이브러리이다. 이것은 라이브러리이므로 컴파일러나 언어 지원이 필요하지 않다. 개발자는 병렬에서 실행할 수 있는 task를 지정하고, TBB task 스케줄러는 이러한 task를 기본 스레드에 매핑한다. 또한, task 스케줄러는 부하 분산을 제공하고 캐시를 인식하므로 캐시 메모리에 데이터가 저장되어 더 빠르게 실행될 가능성이 있는 task에 우선권을 부여한다. TBB는 병렬 루프 구조, 원자 연산 및 상호 배제 잠금을 위한 템플릿을 포함한 풍부한 기능 세트를 제공한다. 또한 해시 맵, 큐 및 벡터를 포함한 동시 데이터 구조를 제공하며, 이는 C++ 표준 템플릿 라이브러리 데이터 구조의 동등한 스레드 안전 버전으로 사용할 수 있다.