병렬컴퓨터
태그 :
- 개념
- 다수의 CPU가 다수의 프로그램을 혹은 분할된 프로그램을 동시에 처리하는 컴퓨터 다수의 CPU를 결합하여 단일 CPU 성능의 한계를 극복하기 위한 컴퓨터
I. 폰 노이만 구조의 해결 방안, 병렬 처리 컴퓨터의 개요
가. 병렬처리 컴퓨터의 정의
- 다수의 CPU가 다수의 프로그램을 혹은 분할된 프로그램을 동시에 처리하는 컴퓨터
- 다수의 CPU를 결합하여 단일 CPU 성능의 한계를 극복하기 위한 컴퓨터
나. 병렬처리 컴퓨터의 등장 배경
- 수행할 프로그램을 기억장치에 저장시키고 명령을 순차적으로 가져와서 처리하는 폰 노이만 형 컴퓨터 구조에서 컴퓨터 수행속도에 많은 제약을 가지는 단점을 극복하기 위해 새로운 컴퓨터 아키텍처 필요
- 대용량 멀티미디어, 공간데이터 자료 등 처리의 필요성
- 자료처리의 안정성 확보를 위한 고 가용성 시스템의 필요성 대두
다. 병렬 컴퓨터 분류
구분 |
종류 |
Flynn의 분류 |
- SISD, SIMD, MISD, MIMD - 프로세서들이 처리하는 명령어들과 데이터들의 흐름의 수에 따라 분류 |
메모리 공유에 따른 분류 |
SMP, MPP, NUMA |
CPU 유형에 따른 분류 (명령어 구성 방식에 따른 분류) |
CISC, RISC, EPIC |
II. Flynn의 컴퓨터 분류
가. 명령어와 데이터 처리로 분류한, Flynn의 분류
- 컴퓨터의 유형을 명령어의 흐름과 데이터 처리 흐름에 따라 4가지
- 유형으로 분류한 유형 분류
분류 |
명령어 흐름 |
데이터 흐름 |
사례 |
SISD |
1 |
1 |
- Pipeline 컴퓨터 - 전통적인 순차 컴퓨터로서 Von Neumann 구조 |
SIMD |
1 |
다중 |
- Array Processor, Vector Computer, Super Computer |
MISD |
다중 |
1 |
- 구현이 어려움, 알려진 적용 사례 없음 |
MIMD |
다중 |
다중 |
- 다중 프로세서, 클러스터, SMP, MPP, LCMP 시스템 |
나. 컴퓨터의 분류별 특징
1. SISD (Single Instruction stream, Single Data stream)
- 한번에 하나씩의 명령어와 데이터를 순차적으로 처리하는 단일 프로세스 시스템
|
1) 일반적인 컴퓨터(폰 노이만 구조) 2) 단일 명령에 의한 단일 데이터 흐름 3) 파이프라인 구조를 사용하여 수행되는 과정을 오버랩하며 시간적인 병렬처리 가능 |
2. SIMD (Single Instruction stream, Multiple Data stream)
- 하나의 제어장치와 여러 개의 ALU(Arithmetic Logic Unit : 연산장치)로 이루어진 배열프로세스
|
1) 단일 명령흐름에 대한 다중 데이터 흐름 2) 하나의 제어 장치가 다수의 처리기와 로컬 메모리 통제 3) 스칼라와 벡터 하드웨어를 갖는 컴퓨터 속함 4) 배열 처리기에 주로 활용됨 |
3. MISD (Multiple Instruction stream, Single Data stream)
- 여러 개의 처리기가 하나의 데이터 스트림에 대하여 서로 다른 명령어를 실행하는 구조
|
1) 다중명령에 의한 단일 데이터 흐름 2) 현재는 이론적으로만 존재함 |
4. MIMD (Multiple Instruction stream, Multiple)
- 여러 개의 제어기와 처리기가 서로 다른 명령어와 데이터를 처리함
|
1) 다중흐름에 대한 다중 데이터 흐름 2) LAN으로 연결된 컴퓨터, 공유버스, 다중 포트 3) 각각의 처리기들이 독립적으로 수행 4) 프로그램 작성이 어려움
|
- 여러 개의 처리기가 message-passing 방식으로 상호 데이터를 교환하며, 상호작용 정도에 따라 다음과 같이 분류
구분 |
종류 |
약결합 방식 (Loosely Coupled) |
- 각각의 처리기가 각각의 Local Memory를 가진 독립적인 구조로 구성 - 처리기 사이의 데이터 교환이 많지 않을 경우에 사용 |
강결합 방식 (Tightly Coupled) |
- 각각의 처리기가 하나의 공유 메모리를 사용하는 구조 - 처리기 사이의 데이터 교환이 빈번하게 발생할 때 유리한 구조 |
III. 메모리 공유 방식에 따른 분류
가. SMP(Shared Memory Processors)
- SMP의 정의
단일 처리기 시스템에서 나타나는 성능의 한계를 극복하기 위해 두 개 이상의 프로세서를 공유버스로 상호 연결하여 하나의 메모리를 망에 연결시켜 놓은 시스템
- SMP의 구조
- 두 대 이상의 프로세서로 구성되며 각 프로세서가 동일한 권한을 갖는 단일노드로 구성
3. 장점 및 단점
장점 |
단점 |
- 프로그래밍 인터페이스가 기존 단일 처리기 시스템과 동일 - 단일 OS에 의하여 운영되므로 H/W에 의해 Coherency를 사용하여 프로그래밍이 쉬움 |
- Backplane(보드) 크기 및 속도, 공유된 시스템 버스에 따라 프로세서 수 제한 - 시스템 버스를 공유하므로 트래픽 문제가 발생될 수 있음 - 각 CPU가 메모리 공유하므로 대기시간 존재 |
나. MPP(Massively Parallel Processors)
- MPP의 정의
수 천개 혹은 수 만개 정도의 처리기들을 상호 연결망에 의해 연결하여 태스크를 병렬로 처리하는 시스템
각 노드 별 각각의 CPU와 전용 메모리로 구성되며, 메모리를 공유하지 않는 방식
- 2. MPP의 구조
- SMP보다 많은 수의 프로세서를 연결해야 하기 때문에 대기시간이 오래 걸림
- 프로세스와 메모리, 운영체제로 구성된 각각의 노드로 작동되어,시스템 확장 시에 성능 저하 없음
3. 장점 및 단점
장점 |
단점 |
- 확장성이 뛰어나며 대용량의 DB를 지원 - 개발 비용이 적게 소요 |
- 노드 사이의 일관성을 S/W에서 관리하기 때문에 성능이 감소되지 않도록 트래픽 관리에 신경을 써야 함 - SMP에 비해 가용성이 떨어짐 |
다. LCMP(Loosely Couples /Clustered Multi Processor)
- LCMP의 정의
SMP를 클러스터 노드로 상호 연결해 놓은 구조
- LCMP의 구조
3. 장점 및 단점
장점 |
단점 |
- 뛰어난 확장성, 가격대비 성능 우수 - 특정 장애에 의한 어플리케이션 장애를 다른 노드가 해 줄 수 있는 가용성 향상 - Fault Tolerant System 구축 가능 |
- 시스템의 관리와 로드 밸런싱에 많은 주의를 요함 - 응용 프로그램의 개발이 어렵고, 성능, 싱글 이미지 구현이 어려움 |
라. NUMA(Non-Uniform Memory Access Model)
- NUMA의 정의
프로세서 별 공유 메모리를 두어 시스템 버스를 통하지 않고 Access 원하는 데이터가 위치한 기억장치를 따라 Access 시간이 달라지는 고유 기억 장치 구조
- NUMA의 구성
3. NUMA의 유형
구 분 |
설 명 |
CC-NUMA |
Cache Coherent – 하나의 운영체제가 탑재되는 단일 노드 개념으로 캐시 Coherent를 하드웨어적으로 구현하여 메모리 접근 지연 시간을 단축시킬 수 있음 |
RMC |
Reflective Memory Cluster-Quad마다 하나의 운영체제 복사본을 갖는 다수 Quad로 구성됨/운영체제의 간섭 없이 데이터가 전송되어 메모리 접근 빠름 |
COMA |
Cache-Only Memory Architecture – CC - NUMA구조처럼 단일 노드 개념에 하드웨어적 캐시 일치성 있지만, 각 노드 내에 메모리 갖지 않고 단지 큰 캐시로 구성됨 |
4. NUMA의 장단점
장점 |
단점 |
- Non-Uniformed Memory Access 방식을 채택함으로써 Scalability가 뛰어남 - 1개 이상의 Quad로 구성된 NUMA 시스템을 대상으로 Clustering 기법을 적용하여 수평적 확장 가능 |
- 아직은 지원되는 어플리케이션 및 시스템 소프트웨어가 전무 |
IV. 병렬 처리 컴퓨터의 유형별 비교 및 문제 발생 시 해결 방안
가. 병렬 처리 컴퓨터의 유형별 비교
비교항목 |
SMP |
MPP |
NUMA |
메모리 공유 |
CPU 단위의 공유 |
Node 단위의 공유 |
Quad 단위의 공유 |
데이터 전달방식 |
공유 메모리에 접근 |
명시적 메시지 전달 |
공유메모리 접근 |
프로그래밍 |
용이 |
어려움 |
용이 |
확장성 |
한계 있음 |
뛰어남 |
뛰어남 |
효율성 |
가격 대비 성능 좋음 |
확장 시 유리 |
가격대비 성능 좋음 |
가격 |
중/저가 |
고가 |
중/고가 |
응용프로그램 |
다양한 유틸리티 |
제한적 |
제한적 |
나. 병렬 처리 컴퓨터 구성 시 문제점 및 해결 방안
문제점 |
설 명 |
분할문제 |
- 하나의 순차성을 갖는 프로그램을 최대의 병렬성을 갖도록 단계별로 분할 할 때 태스크의 단위를 어떻게 할 것인가 하는 문제 - 하나의 순차적 프로그램을 너무 큰 단위로 나누면 동기화나 스케줄링은 쉬우나 병렬의 정도가 낮아지므로 전체적 효율이 떨어짐 |
1) 병렬성 탐지: 수행 속도를 최대화하기 위하여 프로그램에 내재되어 있는 모든 병렬성을 찾음 2) 묶음: 병렬성을 탐지하는 동안 여러 동작들을 하나의 태스크로 묶음 |
|
스케줄링 문제 |
분할된 태스크들을 실제 실행하기 위하여 각각 프로세서들에 배정하는 스케줄링 상의 문제 |
1) 정적 스케줄링: 프로세서 할당과 수행 순서가 컴파일 시에 컴파일러에 의해 결정 2) 동적 스케줄링: 수행 시에 태스크들을 프로세서에 할당하는 방법 |
|
동기화 문제 |
공유된 데이터가 한 프로세서에 의해서 변경되지 못하도록 하는 작업 |
1) 버스 잠금: 버스를 독점한 후 임계영역을 처리하는 방식 2) 플래그기법: 자원 각각에 플래그를 두어 자원의 상태표시 3) 세마포어 기법 |
|
캐시메모리 문제 |
여러 프로세서들이 하나의 버스를 통하여 메모리를 공유하므로, 캐시를 적절히 활용하여 성능을 향상 시켜야 함 |
V. 병렬 처리 컴퓨터의 활용 및 전망
가. 병렬처리 컴퓨터의 활용분야
활용분야 |
주요내용 |
활용 예 |
생명탐구 |
게놈을 통한 유전병 규명 DNA 연구의 획기적 개선 |
유전자 메커니즘 규명 데이터베이스 분석 |
영상분야 |
영화제작(특수효과, 렌더링 시간단축) |
타이타닉, 쥬라기 공원 등 |
설계분야 |
안전한 토목 구조물 및 건축물 설계 자동차 설계 |
교량의 구조해석 시뮬레이션 등 시험용 자동차 제작기간 및 비용 절감 |
나. 병렬처리 컴퓨터의 전망
- SMP의 확장성에 대한 단점 및 MPP의 프로그래밍 곤란을 해소하는 NUMA가 시장을 주도
- 병렬처리를 위한 범용 컴파일러가 널리 보급되어야 하며, 시스템 독립적인 메시지-패싱 기법이 심층 개발되어야 함
다. 발전 전망
1) 하드웨어적 측면
- 병렬처리 시스템의 기술을 이용한 페타 플랍스(Peta FLOPS)시스템의 등장
- SMP 시스템의 확장성에 대한 단점 및 MPP 시스템의 프로그래밍의 어려움을 해소할 수 있는 NUMA 기술이 보편적으로 사용될 것임
2) 컴퓨터 이용 측면
- 가상화 기술 및 Grid 기술을 이용한 Utility Computing이 일반화 예상
- 유비쿼터스 컴퓨팅 기술의 발전에 따라 나노 기술, 편재 컴퓨터 등의 분야 발전