10. 병렬 처리 시스템

2021. 9. 29. 22:27Topcit 정리/기술 영역 - 네트워크 이해와 활용

반응형

시스템에 대한 분류

SISD 단일명령-단일자료

한 번에 한개씩 명령어와 데이터를 수넛대로 처리하는 단일 프로세서 시스템으로
현재의 일반적인 컴퓨터 구조이다.
성능 향상을 위해서 파이프라이닝과 슈퍼스칼라 기법과 같은 동시 수행 방법을 사용한다.

SIMD 단일명령-다중자료

하나의 명령어로 다수의 데이터들을 동시에 실행하는 구조로 다수의 데이터들에 대하여 동일한 연산을 수행한다.
배열 프로세서라고도 부르며, 동기적 병행 처리가 가능하다.
명령어 하나로 동시에 여러개의 연산을 처리하기 때문에 결과적으로 속도가 빨라진다.

MISD 복수명령-단일자료

각 프로세싱 유닛들은 서로 다른 명령어를 실행하지만, 처리되는 데이터는 동일한 병렬 아키텍쳐이다.
파이프라인 아키텍처가 속한다. 많이 사용되지는 않는다.

MIMD 복수명령-복수자료

다수의 프로세서들이 각각 다른 프로그램과 서로 다른 데이터들을 처리하는 구조로 대부분의 병렬 컴퓨터가 이에 속한다.
강결합 시스템과 약결합 시스템으로 다시 분류할 수 있다.

메모리 구조에 의한 분류

SMP 대칭형 다중 프로세서

모든 프로세서가 메인메로리를 공유메모리로 사용하는 강결합 구조로 프로그램에 용이하다.
하지만 확장이 어렵고 병목현상이 나타나기도 한다.

MPP 거대 병렬 프로세서

프로세서 별로 독립된 메인 메모리를 가지는 분산 메모리 방식이다.
내부버스나 이더넷과 같은 네트워크를 통해 프로세스간에 데이터를 교환하는 약결합 시스템이다.

NUMA

SMP와 MPP 구조를 결합한 구조이다.
각 프로세서는 별도의 로컬 메모리를 가지고 있으며 전역주소 공간도 가지고 있다.

병렬 프로세서 기술 유형

파이프라이닝

하나의 연산 과정을 여러 단계로 구분하고 각 단계들을 처리하기 위한 하드웨어 유닛을 별도로 구성하는 방법이다.
서로 동시에 다른 명령어들을 처리함으로써 성능을 극대화한다.

슈퍼스칼라

속도를 높이기 위해 다수의 명령어 파이프라인을 구성한 구조이다.
독립적으로 명령어들을 실행할 수 있어 순서와 다르게 실행할 수 있다.

병렬 프로그래밍 기술

컴파일러 - OpenMP

병렬 프로그래밍 api로, 원하는 부분을 정하여 병렬적으로 처리할 수 있다.
fork/join 모델을 사용하여 병렬로 진행하다 다시 순차코드를 진행한다.

MPI

메세지 패싱 병렬프로그래밍 모델의 약어로 분산 메모리 시스템 구조에 적합한 프로그래밍 모델이다.
네트워크를 통해 메시지를 주고받으며 연산을 하여, 슈퍼컴퓨터등에 사용된다.

그래픽 처리 프로세싱 기술

GPU

그래픽스 연산을 전문적으로 담당하는 하드웨어로, 3d 그래픽을 렌더링하는데 주로 사용된다.
부동소수점 연산을 하는 코어 수천 개로 구성되어 있어 병렬 데이터처리에 용이하다.

GPGPU

GPU를 일반 컴퓨팅 영역에서도 활용하기 위하여 만든 체계이다.
CUDA, OpenCL. C++ AMP등이 속한다.

반응형