'OpenCL'에 해당되는 글 1건

  1. 2013.04.10 OpenCL

OpenCL

Programming/OpenCL 2013. 4. 10. 00:38 |


병렬화의 중요성

CPU 의 동작 주파수가 매년 향상되면서 소프트웨어를 최적화하지 않아도 동작 속도가 빨라지는 시절이 있었다. 하지만, 인텔 cpu가 4GHz 에 가까워진 2004년쯤부터는, cpu의 동작 주파수 향상은 점점 더뎌졌다. 그리고 Power Wall(전력 장벽) 이라는 소비 젼력과 발열량의 증가가 심각한 문제로 주목받기 시작했다.

또한, 2004년 이후의 cpu는 동작 주파수 향상이 아니라 연산코어 증가라는 형태로 진화했다. 그런데 멀티코어 cpu의 동작 주파는 싱글코어 cpu와 같거나 약간 느려진 상황이기 때문에 싱글코어에서 만든 기존의 애플리케이션을 멀티코어 cpu에서 동작시킨다고 속도가 빨라지지 않는다. 최근 일반 소비자용 노트북에도 멀티코어 cpu가 탑재되고 있고, 고도의 연산 능력이 필요한 분야뿐만 아니라 일반 컴퓨팅 환경에서도 병렬화 기술을 사용한다. 따라서 멀티코어 프로세서의 성능을 충분히 사용하는 병렬처리 연산이 가능한 애플리케이션으로 최적화시킬 필용성도 높아졌다.


하드웨어 관점의 병렬 컴퓨팅

위키피디아에서 정의하는 병렬 컴퓨팅: http://ko.wikipedia.org/wiki/%EB%B3%91%EB%A0%AC%EC%BB%B4%ED%93%A8%ED%8C%85

실제로 어떤 작업 하나를 처리 장치 여러 개로 나누어 동작시키는 하드웨어 아키텍처는 여러 가지가 있다. 규모가 큰 것에서 작은 순서로 나열하면 다음과 같다.

# 인터넷에 접속된 다양한 종류의 연산 자원을 연결해, 하나의 연산을 실행하는 그리드 컴퓨팅

# 슈퍼 컴퓨터의 아키텍처로서 유명한 초병렬 연산기 (Massively Parallel Processor, MPP) 시스템

# 범용 컴퓨터를 조합해 만드는 클러스터 서버 (Cluster Server) 시스템

# 같은 cpu 여러 개를 탑재하고 밀접하게 결합해, 하나의 연산기를 구성하는 대칭형 멀티프로세싱 (Symmetric Multiprocessing, SMP) 시스템

# cpu 내부에 여러 개의 연산코어를 가진 멀티코어 프로세서 (Multicore Processor) 시스템


플린의 분류

컴퓨터 아키텍처를 분류하는 지표 중에 '플린의 분류(Fluynn's Taxonomy) 가 있다. 마이클 J. 플린은 하나의 처리를 실현하는 명령의 나열인 명령 스트림(Instruction Stream) 의 병렬도(병렬성이 있는지나 없는지의 정도를 나타냄) 처리 대상이 되는 데이터의 나열인 데이터 스트림(Data Stream) 의 병렬도에 따라 모든 컴퓨터 아키텍처를 다음 4가지로 분류한다.

SISD (Single Instruction, Single Data Stream) 

하나의 명령 스트림이 하나의 데이터 스트림을 처리하는, 즉 명령과 데이터에 병렬성이 없는 순차적인 시스템을 말한다. 싱글코어 프로세서 하나가 탑재된 pc가 여기에 해당한다.

SIMD (Single Instruction, Multiple Data Streams)

단일 명령을 복수의 연산기에 전달하더라도 각각의 연산기는 서로 다른 데이터를 가지고 연산하는 시스템을 말한다. 벡터 연산기라고 불리는 일분의 슈퍼 컴퓨터가 대표적인 예이다.

MISD (Multiple Instruction, Single Data Stream)

복수의 명령 스트림이 단일 데이터 스트림을 처리하는 시스템을 말한다. 이론상으로만 존재할 뿐 쓸모가 없으므로 이 분류에 해당하는 실제 시스템은 거의 존재하지 않는다.

MIMD (Multiple Instruction, Multiple Data Streams)

복수의 연산기가 가진 각기 다른 데이터 스트림을 서로 다른 명령 스트림에서 처리하는 시스템을 말한다.


이 4가지 분류에 다르면 앞서 이야기한 클러스터 시스템이나 SMP 시스템 등 별렬 컴퓨팅을 실행하기 위한 하드웨어 아키텍처의 대부분이 MIMD 에 속한다. 따라서 병렬 컴퓨팅을 더욱 상세하게 분류하고 싶다면 하드웨어의 메모리 구성에 주목하는 것이 일반적이다.


Posted by scii
: