병렬컴퓨터

개념
다수의 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이 일반화 예상
  • 유비쿼터스 컴퓨팅 기술의 발전에 따라 나노 기술, 편재 컴퓨터 등의 분야 발전

댓글