여러 개의 프로세스를 생성하여 각각의 프로세스에서 작업을 처리하는 방법으로 독립적인 프로세스를 이용하기 때문에 안정성이 높으며, 여러 개의 CPU를 사용하여 병렬 처리가 가능.
하나의 프로세스에서 여러 개의 쓰레드를 생성하여 각각의 쓰레드에서 작업을 처리하는 방법으로 메모리 공간을 적게 차지하고, 쓰레드간 데이터 공유가 쉬우며, I/O 작업이 많은 경우에 유용.
하나의 명령어로 여러 개의 데이터를 처리하는 방법으로 대용량 데이터를 처리할 때 유용하며, 대표적으로 벡터 연산과 GPU가 있음.
C, C++, 포트란 등에서 사용되는 공유 메모리를 이용한 병렬 처리 라이브러리로 쓰레드 생성, 동기화 등을 쉽게 구현할 수 있으며, 간단한 작업을 병렬 처리할 때 유용.
분산환경에서 동작하는 병렬 처리 라이브러리로 여러 대의 컴퓨터에서 작업을 분할하여 각각의 컴퓨터에서 처리한 결과를 모아 최종 결과를 도출하고 대규모 병렬 처리에 유용.