제16강 : 병렬다중처리

Download Report

Transcript 제16강 : 병렬다중처리

제16강 : 병렬다중처리
병렬 다중 분산처리
여러 처리기 - 일반적인 장점들
- 성능
- 신뢰성(加用性)
- 모듈별 확장
전체 시스템 교체?  병목현상 부분만 확장
- 가격/성능
값싼 Intel칲 (대량생산 성능 대비 가격이 유리)
구분 및 개요
병렬처리 (Parallel processing)
한 CPU 내에 여러 PE(Processing Element)
한 개의 프로그램을 병렬처리,
그 프로그램의 처리 속도를 빠르게 하는 것이 목적.
예:
파이프라인 (Pipleline),
벡터 프로세서 (Vector Processor) 등
다중처리 (Multiprocessing)
여러 CPU 들이 clock과 메모리를 공유
CPU 들간의 거리는 수 미터 이내
강결합 시스템(tightly coupled system).
각 CPU 는 독립적인 프로그램을 수행
전체 시스템의 Throughput을 높이도록 설계된 시스템.
각 CPU 들이 담당하는 역할이 동일한지 여부에 따라
비대칭적 다중처리 (한 특정 CPU 만이 OS와 I/O를 전담)
대칭적 다중처리 (SMP: Symmetric Multiprocessing).
네트워크 운영체제
(NOS: Network Operating Systems)
네트워크상 여러 시스템들이 서로의 자원을 액세스
사용자는 네트워크에 대해 잘 알아야 한다.
원격지 login을 명시적으로 하여야 하며
원격지 호스트의 이름,
원격지 userid, 암호,
원격지 파일의 위치 등을 제시하여야
NOS는 사용자에게 투명(transparent)한 인터페이스를 제공하지는 않는다.
예:
원격 login
telnet 명령문
ftp (File Transfer Protocol) 명령
용어
사이트(site)~ 노드(node)~컴퓨터(computer)~기계(machine)~호스트(host)
분산처리 (Distributed processing)
DOS 사용자들은 네트워크를 의식하지 않아도 된다.
(local 자원 사용방법) = (remote 자원 사용방법).
특징:
-제어, 자원, 정보가 여러 노드에 분산되어 있고
-이들을 투명하게 사용할 수 있으며
-사용자는 한 개의 시스템 처럼 느껴야 하고
-그러면서도 각 노드는 독립성이 있다.
약결합 시스템(Loosely-coupled)이라고도 부른다.
예:
Web
NFS (Network File System),
그리드 (Grid) 컴퓨팅 등
다중처리
(Multiprocessing)
다중처리기 상호 연결(interconnection) 방법
(1) 시분할 공유 버스(Time shared single bus)
(2) 크로스바 교환 행렬(Crossbar switching matrix)
(3) 하이퍼 큐브
(4) 다중 포트 메모리(Multiport storage)
시분할 공유 버스
(Time shared single bus)
단 하나의 통신선로만을 제공하는 방법이다.
① 장점 : 경제적
② 단점: 성능, 신뢰성
delay
가격
CPU 개수
메모리
크로스바 교환 행렬
(Crossbar switching matrix)
모든 처리기가 모든 장치에 동시에 접근할 수 있다.
장점 : access가 막히는 일이 없다
단점 : 가격이 N2 에 비례
가격
delay
CPU 개수
Hypercube
2차원
하이퍼 큐브
3차원
하이퍼 큐브
4차원
하이퍼 큐브
Multiport memory
CPU
CPU
메모리
CPU
다중처리 (Multiprocessing)
Operating System
master/slave 다중처리
일반 프로그램
OS
Master CPU
일반 프로그램
Slave CPU
일반 프로그램
Slave CPU
공유 메모리
병목현상 – 성능, 신뢰
“비대칭적” 멀티프로세싱
separate executive 다중처리
일반 프로그램
일반 프로그램
일반 프로그램
OS
OS
OS
CPU
CPU
CPU
공유 메모리
각 노드는 독립적 OS
load balancing?
SMP 다중처리
(Symmetric Multiprocessing)
일반 프로그램
일반 프로그램
일반 프로그램
CPU
CPU
CPU
Program Counter
Program Counter
Program Counter
OS Code
병목현상 없음
load balancing
“대칭적” 멀티프로세싱
분산처리
(Distributed Processing)
분산처리
(Distributed Processing)
연결 Topology
완전 (Fully) Connected
①
②
③
④
⑤
각 사이트는 다른 모든 사이트와 직접 링크되어 있다.
기본 비용이 매우 높다.
사이트 간의 메시지는 매우 빠르게 전달된다.
신뢰성이 높다.
링크 수 =N(N-1)/2
부분(Partially) Connected
①
②
③
④
사이트 간에 서로 부분적으로 연결된다.
기본 비용은 완전 연결보다 낮다.
메시지 전달은 여러 사이트를 경유 - 늦어질 수 있다.
완전 연결 네트워크만큼 신뢰성이 높지 않다.
계층(Hierarchy) Connection
①
②
③
④
각 사이트는 트리 형태로 구성된다.
각 사이트는 하나의 부모를 가지며 여러 개의 자식
비용은 비교적 저렴하다.
사이트의 고장은 여러 서브트리간 단절
성형(Star) Connection
①
②
③
④
모든 사이트는 하나의 중앙 호스트에 직접 링크.
중앙 노드가 모든 경로를 알므로 통신 비용이 저렴.
성능 bottleneck.
신뢰성 bottleneck.
Ring Connection
①
②
③
④
각 사이트는 다른 두 사이트와 연결.
정보 전달 방향은 단방향 또는 양방향일 수 있다.
비용은 사이트의 수에 비례한다.
메시지가 링을 순환해야 한다면 통신 비용이 문제.
Bus Connection
①
②
③
④
모든 사이트는 하나의 공유 링크에 연결.
기본 비용은 사이트의 수에 비례한다.
통신 비용은 적은 편이다.
링크가 고장나면 모든 사이트 간의 통신은 불가능.
분산처리
(Distributed Processing)
사용자 측면
(1) 투명성(Transparency)
Local/Remote 한 가지 방식으로 사용할 수 있게 해줌.
① 위치 투명성(Location transparency)
경로명이 위치와 관련된 정보를 반영하지 않는다.
② 접근 투명성(Access transparency)
local/remote 모두 동일한 방법으로 액세스 한다.
(2) 위치 독립성(Location independency)
파일의 물리적 저장장치가 위치를 바꾸어도
경로명은 변경되지 않는다.
분산처리
(Distributed Processing)
Site 간 이주
• 데이터 이주 (data migration)
– 파일 전체/요청된 부분
– 복사본간 일관성 유지
• 연산이주 (computation migration)
– 대형파일 액세스 시
– 큰 데이터를 가져와 local서 연산할 것인가?
– RPC (Remote Procedure Call)를 할 것인가?
• 프로세스 이주(Process Migration)
– 연산 이주의 논리적 확장
– 그리드 컴퓨팅 등의 예
분산처리
(Distributed Processing)
내부 동작의 설계
① 경로배정 (또는 라우팅: routing)
-고정경로:
송수신자간 경로가 미리 정해져 있으며,
고장이 발생하지 않는 한 경로를 바꾸지 않는다
-가상회로:
송 수 신 자 간 경 로 가 한 세 션 (session) 동 안 만 고 정 된 다 .
다른 세션에서는 경로가 달라질 수 있다.
-동적 경로:
경로 선택이 동적으로 결정되므로
메시지마다 서로 다른 경로들을 배정받을 수 있다.
일반적으로 메시지는 가장 혼잡이 덜한 링크를 통해서 보내진다.
② 연결 전략
-회선 교환(circuit switching)
두 지역 사이에 일단 링크가 할당되면 통신이 끝나기 전까지는
(예, 한 쪽에서 끊어버리는 경우) 어느 누구도 그 통신 회선을 사용할 수 없다.
전화와 비슷.
-메시지 교환(message switching)
통신할 때 링크는 메시지가 전송되는 아주 짧은 시간 동안만 할당된다.
-패킷 교환(packet switching)
긴 메시지를 패킷(packet)이라 부르는 고정된 크기로 나누고
각 패킷들은 출발지와 목적지 주소를 가지고 독립적으로 전송된다.
각 패킷은 서로 다른 경로로 전달될 수 있다.
패킷들은 목적지에서 원래의 메시지로 재결합되어야 한다.
(데이터그램, 가상 회선 방식)
Flynn의 분류
① SISD(Single Instruction Single Data)
초창기 컴퓨터
② SIMD(Single Instruction Multiple Data)
벡터 처리기 혹은 배열 컴퓨터
③ MISD(Multiple Instruction Single Data)
이 구조는 별로 사용되지 않는다.
④ MIMD(Multiple Instruction Multiple Data)
여러 형태의 다중 처리기.