본문 바로가기
Programming/etc

SMP, MPP, NUMA 병렬 프로세스 기술

by 제타 2018. 4. 21.
반응형

클러스터링은 어떻게 보면 병렬 처리 기술의 일부에 속한다. 다른 기술과의 차이점은 자원을 공유하거나 복제하는 수준에 달려있다. 가장 단순한 구조는 한 마더보드에 여러개의 프로세서를 유지하고 다른 기술을 공유하는 것이다. 가장 높은 수준은 분산프로세싱이 여러개의 컴퓨터를 사용하되, 시스테밍 단일 서버로 취급되지 않는 것이다. 다음에 병렬프로세싱에 관련된 비슷한 기술들이 있다.

  • SMP
  • NUMA
  • MPP
  • 분산프로세싱

SMP(Symmetric Multiprocessing) : 대칭형 다중처리

SMP는 운영체계와 메모리를 공유하는 여러 프로세서가 프로그램을 수행하는 것을 말한다. SMP에서는 프로세서가 메모리와 입출력 버스 및 데이터 path를 공유하며, 또한 하나의 운영체계가 모든 프로세서를 관리한다. 보통 2개부터 32개의 프로세서로 이루어지며, 어떤 시스템은 64개까지 프로세서를 공유한다.

SMP시스템은 보통 MPP시스템에 비하여 병렬 프로그래밍이 훨씬 쉽고, 프로세서간 작업 분산(workload balance)시키는 것은 훨씬 용이하지만, 확장성은 MPP에 비하여 취약하다. 또한 많은 사용자가 동시에 데이터베이스에 접근하여 일을 처리하는 OLTP 작업에서도 강점을 보인다.

SMP 컴퓨터에서 운영 체제 자체는 애플리케이션을 구성하는 개별적인 프로세스를 사용 가능한 CPU간에 분배한다. Windows NT는 가중치가 매우 높은 스레드를 기반으로 하고, 리눅스는 가중치가 매우 적으므로, 구가지 모두 SMP하드웨어에 아주 적합하다.

2~4개의 프로세서를 가지는 SMP 시스템은 구축하기 쉬우나 그 이상은 힘든데, 이것은  SMP 시스템자체가 단일의 I/O와 메모리를 공유해야 하기 때문이다. 이것이 바로 시스템의 병목현상을 일으키는 주 원인이기 때문에 오히려 이 이상의 CPU확장은 성능 저하의 원인이 될 수도 있다. 실제로 2CPU SMP 시스템과 4CPU SMP 시스템의 성능차이는 실제로 크지 않다.

위와 같이 설명되어지는 것이 일반적인 서적이나 매뉴얼에 나와 있는 설명이다. 실제로 이런 설명을 이해할 수 있는 사람은 몇 명되지 않을 것이다. 그럼 SMP는 무엇인가? 하나의 일을 여럿이서 나누어서 하는 것이다. 그러나 일을 주는 사람과 일을 받아 나가는 사람은 한 사람밖에 없는 것이다. 그러므로 중간에 일을 실제로 하는 사람이 많으면 일을 주고 받는 사람이 지치게 될 수밖에 없을 것이다.

* OLTP : OLTP는 일반적으로 은행이나, 항공사, 우편주문, 슈퍼마켓, 제조업체 등을 포함한 많은 산업체에서 데이터 입력이나 거래조회 등을 위한 트랜잭션 지향의 업무을 쉽게 관리해주는 프로그램이다.



NUMA (Non-Uniform Memory Access) : 비균등 메모리 엑세스

SMP System에서 가장 큰 문제점은 I/O와 메모리 엑세스의 병목 현상이었다. 즉 일주는 사람과 다 된일을 받아가는 사람이 너무 바빠서 중간에 실제적으로 많이 확보인 인부를 활용하지 못하는 상황이다. 하지만 이런 경우 각각의 인부에게 한사람씩 더 주어 자신의 일을 미리 미리 받고 자신이 하고 난 일을 임시로 보관해 둘 수 있는 장소가 있다면 이런 문제는 해결 될 수 있을 것이다.

바로 이런 SMP의 단점을 해결한 것이 바로 NUMA 기술이다. NUMA는 몇 개의 마이크로프로세서들 간에 중간 단계의 공유메모리를 추가함으로써, 모든 데이터 액세스가 주버스 상에서 움직이지 않아도 되도록 하는 것이다.

NUMA는 하나의 상자 속에 있는 클러스터로 생각할 수 있다. 클러스터는 대체로 마더보드 상의 하나의 공유 메모리 (L3 캐시라고도 부른다)로 향하는 로컬버스에, 서로 연결된 네 개의 마이크로프로세서들로 구성된다. 이 유니트는 모든 클러스터들을 서로 연결하는 공용 버스 내에서 SMP를 구성하기 위하여 비슷한 유니트에 추가될 수 있다. 이러한 시스템은 대체로 16~256개의 마이크로프로세서를 가지고 있다. SMP 시스템에서 실행되는 응용프로그램에게는, 모든 개별 프로세서 메모리들이 하나의 단일 메모리인 것처럼 비쳐진다.

프로세서가 어떤 메모리 주소에 있는 데이터를 찾을 때, 그것은 마이크로프로세서 그 자체에 붙어 있는 L1 캐시를 먼저 찾은 다음, 근처에 있는 다소 큰 L2 캐시 칩을 찾는다. 그 다음에는 다른 마이크로프로세서 인근에 있는 원격 메모리의 데이터를 찾기 전에, NUMA 구성에 의해 제공되는 제3의 캐시를 찾는다. NUMA에게는, 이러한 클러스터들 각각이 서로 연결된 네트웍 내에 있는 하나의 노드들 처럼 비쳐진다. NUMA는 모든 노드들 상에 있는 데이터를 계층 체계로 유지한다.




MPP (Massive Parallel Processing)

MPP 시스템은 보통 하나의 CPU, 하나의 Memory, 하나의 OS로 구성된 여러 Node들의 집합으로 구성되어 있다. MPP 시스템은 단일 OS하에서 운영되지 않으므로 Hardware Coherency를 사용할 수 없으며 Message-passing방법을 사용한 Software Coherency를 사용한다. Software Coherency는 Hardware Coherency에 비해 수백 내지는 수천배의 지연시간(latency)을 허용하며, 따라서 수백 내지 수천개의 프로세서를 사용하여 시스템을 구성하기가 쉽다. 이러한 지연시간으로 인해 MPP 시스템상에서 높은 Performance를 얻을 수 있는 어플리케이션은 각 노드간에 교환되는 데이터를 최소화 할 수 있도록 잘 분리되는 것이라야 한다.

MPP 시스템은 Hardware Coherency나 Shared Memory를 구현해야 할 필요가 없기 때문에 시스템 개발자에게는 구현하기 쉬운 장점이 있으나 어플리케이션 개발자는 Coherency구현을 위한 Message Passing 및, 퍼포먼스를 위한 어플리케이션 분산등을 고려하여 작성하여야하는 어려움이있다. 이러한 이유로 인해 데이터 공유가 필수적이고 빠른 응답시간을 요구하는 OLTP 어플리케이션들은 MPP 시스템에 적합하지 않으며, 빠른 응답시간을 요구하지 않고 어플리케이션의 각 시스템에서 데이터 요구가 분리되어 있는 의사결정 지원 시스템(DSS : Decision Support System), VOD(Video On Demand) 시스템등에 MPP시스템이 유용하다.

대규모의 병렬 시스템은 주로 계산 위주의 고급 연산에 사용되고, 현재 세계에서 가장 빠른 컴퓨터는 수학적 모델을 통해 핵 폭발을 시뮬레이터하는 MPP 시스템이다.


 

 비 교 항 목

    S M P

    M P P

    N U M A

 구  조

시스템 버스와 같은 인터커넥션을 통해 프로세스, 메모리, I/O 등의 시스템 자원을 균등하게 공유하는 구조

개별 프로세스, 메모리, I/O 등의 시스템 자원을 가지는 노드들을 독점된 상호 연결로 결합한 구성

복수개의 CPU 보드를 연결하여 통합된 멀티 프로세서 시스템을 만드는 구조

 운영 형태

하나의 OS 커널이 존재
표준 개방형 OS 지원 

각 노드별로 OS 커널 존재
표준 개방형 OS 지원 안함. 

표준의 개방형 OS 지원

InterConnection

멀티 프로세싱, 멀티 쓰레드 , 메모리 공유 프로그래밍 / 통신 방식 

데이터 병렬 처리 또는 메시지 패싱 프로그래밍 방식

글로벌 메모리 공유 방식

데이터 전달방식

공유 메모리에 직접 접근

명시적인 메시지 전달

공유 메모리 접근 및 로컬 캐쉬 메모리 사용

원격데이터 접근

 자동

주소 변환, 메시지 전달

 패킷 전송

 프로그래밍

프로그래밍 용이
표준화된 개발 툴이 다양 

프로그래밍이 어려움.
불완전한 병렬 SW 제공 

프로그래밍이 용이

 확장성

업무량 증가 또는 추가시 단위 SMP 내에서 CPU, 메모리 등을 증설 가능

일정 규모까지 시스템 노드 내에서 증설 가능 또는 시스템 노드를 증가

일정 규모까지 시스템 노드 내에서 증설 가능 또는 시스템 노드 증가

 안정성

HW 이중화 및 이중 운영 기능 
장애 발생의 자동 감지 및 장애 부분 절단 가능
디스크 미러링 

HW 이중화 및 상호 감시
장애의 자동 감지 및 자동 절환
디스크 미러링 

 

 Application

다양한 유틸리티 지원

극히 제한됨

 

 가  격

 저, 중가

 고가

 중, 고가


출처 - 리눅스 포털


반응형

'Programming > etc' 카테고리의 다른 글

[정보보안기사 대비] 용어 정리 1  (0) 2018.04.25
파이썬 2.x 버전과 3.x 버전 차이  (0) 2018.04.22
TCP/IP Socket programming  (0) 2018.04.17
OSI 모델과 TCP/IP 프로토콜  (0) 2018.04.15
파이썬 정규 표현식(re) 모듈  (0) 2018.03.21