실시간 그래픽 어플리케이션 프로그래밍 인터페이스 혹은 점, 선 그리고 삼각형과 같은 표면형 물체를 표현하는 API에 사용된다.
화면의 픽셀 하나하나를 계산하기 때문에, 병렬처리가 쉽다.
이러한 파이프라인의 Several Stages(shader functions)는 프로그래밍이 가능하다(C코드로 개발됨).
Shader functions은 그래픽 스트림 안의 다수 요소들을 적용될 수 있는 시점부터 병렬처리된다.
GPGPU(General Purpose computing on GPU) programming : Cuda, OpenCL과 같은 녀석들이 최근에 개발됨..
작은 문제에선 안 좋은 퍼포먼스를 보여준다.
여러 개의 데이터스트림에서 작동되는 다수의 명령체계를 처리할 수 있다. 독립된 프로세싱 유닉이나 코어에서 따로따로 구동된다.
각각의 어플리케이션은 공용 메모리에 접근할 수 있다. 각 프로세서들은 공유된 데이터 체계에 접근하므로써 암묵적으로 서로에게 통신할 수 있다.
모든 프로세서가 모든 메모리에 접근하는 시간은 모든 코어에서 시간이 똑같다.
프로세서 위치에 따라, 메모리에 접근하는 시간이 달라진다.
각 프로세서는 각자의 개인 메모리를 갖고 있다. 프로세서-메모리 쌍은 Interconnection network를 통해 통신해야 한다. 이 통신은 암묵적으로 프로세서 사이에 메세지가 송수신됨으로써 실행된다.