460 likes | 1k Views
제 1 장 병렬처리의 개요. 1.1 병렬처리의 한계와 가능성 1.2 병렬처리의 단위 1.3 병렬컴퓨터의 분류 1.4 병렬컴퓨터의 성능 척도. 병렬처리 (Parallel Processing). 다수의 프로세서들이 여러 개의 프로그램들 또는 한 프로그램의 분할된 부분들을 분담하여 동시에 처리하는 기술 컴퓨터시스템의 성능 향상을 위하여 가장 널리 사용되고 있는 방법. 병렬처리의 조건.
E N D
제1장 병렬처리의 개요 1.1 병렬처리의 한계와 가능성 1.2 병렬처리의 단위 1.3 병렬컴퓨터의 분류 1.4 병렬컴퓨터의 성능 척도
병렬처리(Parallel Processing) • 다수의 프로세서들이 여러 개의 프로그램들 또는 한 프로그램의 분할된 부분들을 분담하여 동시에 처리하는 기술 • 컴퓨터시스템의 성능 향상을 위하여 가장 널리 사용되고 있는 방법 Parallel Computer Architecture
병렬처리의 조건 • 많은 수의 프로세서들로 하나의 시스템을 구성할 수 있도록 작고 저렴하며 고속인 프로세서들의 사용이 가능해야 한다 반도체 기술 발전에 따른 VLSI 칩의 개발에 의해 해결 • 한 프로그램을 여러 개의 작은 부분들로 분할 가능해야 하며, 분할된 부분들에 대한 병렬처리 결과가 순차적 처리의 결과와 동일해야 한다<새로이 야기되는 과제들> • 분할성(decomposability) : 한 프로그램을 여러 개로 분할 필요 • 복잡성(complexity) : 병렬 알고리즘의 개발 필요 • 프로세서간 통신(interprocessor communication) : 프로세서들간에 데이터 교환을 위한 통신 필요 Parallel Computer Architecture
1.1 병렬처리의 한계와 가능성 • 단일 프로세서의 속도 한계 • Si 칩상의 전자 흐름 속도 = 3x107m/sec (광속도의 1/10) • 지름 3cm인 칩 내 최대 전송시간 = 10-9sec 최대 계산 능력 : 109 FLOPS = 1 GFLOPS • 속도 한계를 극복할 수 있는 방법병렬처리 Parallel Computer Architecture
병렬처리에 대한 비판적 이론 (I) • Glosch’s law : 프로세서의 성능이 가격의 제곱에 비례하여 높아질 것으로 예측: 즉, n1/2 배의 비용만 투자해도 n배 빠른 프로세서 개발 가능 [비교] n 개의 프로세서들 사용 속도 : n 배, 비용 : n 배 • 여건의 변화 • VLSI 기술의 발전으로 저렴한 가격의 소형 프로세서 개발 가능 Parallel Computer Architecture
병렬처리에 대한 비판적 이론 (II) • Minsky’s conjecture : P개의 프로세서들을 사용한 병렬 프로세서에서 프로세서들 간의 정보 교환을 위한 통신 오버헤드 때문에, 시스템 성능은 P배가 아닌, 최대 log2P배까지만 개선될 수 있다 • 여건의 변화 • 효율적인 병렬 알고리즘들의 개발 • 고속 상호연결망 출현 • 프로세서 스케줄링 기술 개발, 등 Parallel Computer Architecture
병렬처리에 대한 비판적 이론 (III) • Amdahl의 법칙(Amdahl’s law) • 병렬처리를 이용하여 얻을 수 있는 속도 향상은 병렬화가 불가능한 비율(Amdahl’s fraction : a)에 의해 제한 Sp = T1 / Tp lim Sp = 1 / αp∞[예] α= 20% 최대 Sp = 5배 α α a a a Parallel Computer Architecture
Amdahl’s law (계속) • 여건의 변화 • 대부분의 공학 및 과학 계산에서는 a가 문제의 크기(n)가 증가함에 따라 감소lim α(n) = 0 lim Sp = pn∞ n∞ (Sp는 프로세서 수에 비례) Parallel Computer Architecture
1.2 병렬처리의 단위 • 작업 단위(Job level) : 독립적인 job program 단위로 병렬처리[예] 성적관리 프로그램 // 실험 데이터 처리 프로그램 • 태스크 단위(Task level) : 하나의 큰 job을 기능에 따라 분할한 작은 프로그램(태스크) 단위로 병렬처리[예] Robot 제어 프로그램: 팔과 다리들을 제어하는 4 개의 태스크들로 분할한 후, 병렬처리 프로세서들간의 정보 교환 필요 Parallel Computer Architecture
병렬처리의 단위 (계속) • 프로세스 단위(Process level) : 태스크 프로그램을 더 작게 분할한 크기인 프로세스 레벨에서의 병렬처리[예] for i = 1, 5 x(i) = x(i-1) + y(i-1) P1(i) y(i) = x(i-2) - y(i-1) s(i) = x(i) + y(i) if s(i) ≥ 100 P2(i) then a = a+1 else b = b+1 Parallel Computer Architecture
프로세스-단위 병렬처리의 예 • P(i+1) // P2(i), P1(i) // P2(i-1), P1(i-1) // P2(i-2) Parallel Computer Architecture
병렬처리의 단위 (계속) • 변수 단위(Variable level) : 독립적인 연산에 의해 계산될 수 있는 변수들 간의 병렬처리[예] P1내의 x(i) // y(i) • 비트 단위(Bit level) : 가장 낮은 레벨의 병렬처리로서, 데이터 단어를 구성하고 있는 비트들에 대한 독립적 연산들을 병렬처리 Parallel Computer Architecture
1.3 병렬컴퓨터의 분류 1.3.1 Flynn의 분류(classification) • SISD(Single Instruction stream Single Data stream) • SIMD(Single Instruction stream Multiple Data stream) • MISD(Multiple Instruction stream Single Data stream) • MIMD(Multiple Instruction stream Multiple Data stream) Parallel Computer Architecture
SISD 조직 • 한 번에 한 개씩의 명령어와 데이터를 순서대로 처리하는 단일 프로세서 시스템 • 성능 향상을 위한 프로세서 내부 구조 : 파이프라이닝(pipelining), 슈퍼 스칼라(superscalar) Parallel Computer Architecture
SIMD 조직 • 하나의 명령어를 다수의 데이터들에 대하여 동시 실행 다수의 데이터들에 대하여 동일한 연산 수행 • 배열 프로세서(Array processor)라고도 부름 Parallel Computer Architecture
MISD 조직 • 각 프로세서들은 서로 다른 명령어를 실행하지만,처리되는 데이터들은 하나의 스트림 • 실제로 설계 및 구현된 사례는 없음 Parallel Computer Architecture
MIMD 조직 • 다수의 프로세서들이 각각 다른 프로그램을 서로 다른 데이터들에 대하여 수행. 대부분의 병렬 컴퓨터들이 이 분류에 해당 • 밀결합 시스템(tightly-coupled system): 프로세서들이 공유 기억장치(shared memory)를 이용하여 데이터 교환 • 소결합 시스템 (loosely-coupled system) : 프로세서들이 메시지 전송(message passing)을 이용하여 데이터 교환 Parallel Computer Architecture
MIMD 조직 (계속) Parallel Computer Architecture
1.3.2 구조적 특징에 따른 분류 • 파이프라인 컴퓨터(Pipeline Computer) • 시간적 병렬성(temporal parallelism)을 이용한 중첩 계산(overlapped computation)을 수행하는 시스템 • 배열 프로세서(Array Processor) • 공간적 병렬성(spatial parallelism)을 실현하기 위하여 여러 개의 동기화 된 프로세싱 유니트(processing unit)들로 구성되는 시스템 • 다중프로세서시스템(Multiprocessor System) • 시스템 자원들(기억장치, I/O장치)을 공유하는 여러 개의 프로세서들을 이용하여 비동기적 병렬성(asynchronous parallelism)을 실현하는 시스템 Parallel Computer Architecture
배열 프로세서와 다중프로세서의 차이점 • 프로그램 수행의 독립성 • 배열 프로세서: 모든 프로세서들이 동일한 프로그램을 동기적으로 수행 • 다중프로세서시스템: 각 프로세서들이 서로 다른 별도의 프로그램을 비동기적(독립적)으로 수행 Parallel Computer Architecture
1.3.3 기억장치 액세스 모델에 따른 분류 • 균일 기억장치 액세스(Uniform Memory Access: UMA)모델 • 불균일 기억장치 액세스(Non-uniform Memory Access: NUMA)모델 • 캐쉬-온리 기억장치 액세스(Cache-Only Memory Access: COMA)모델 • 무-원격 기억장치 액세스(No-Remote Memory Access: NORMA)모델 Parallel Computer Architecture
UMA 모델 • 모든 프로세서들이 상호연결망에 의해 접속된 주기억장치 공유 • 프로세서들은 주기억장치의 어느 영역이든 액세스할 수 있으며, 그에 걸리는 시간이 동일 Parallel Computer Architecture
UMA 모델 (계속) • 장단점 • 장점: 하드웨어가 간단하고, 프로그래밍이 용이 • 단점: 공유 자원에 대한 경합이 높아지기 때문에 시스템 크기(프로세서 수)에 한계[예] 최대 프로세서 수- 공유-버스를 사용하는 시스템 : 30 개 이하, - 크로스바, MIN을 사용하는 시스템 : 64 개 이하 Parallel Computer Architecture
NUMA 모델 • UMA 모델의 한계를 극복하고 더 큰 규모의 시스템을 구성하기 위한 모델 • 다수의 UMA 모델들이 상호연결망에 의해 접속 • 분산 공유-기억장치 (distributed shared-memory) 구조 • 기억장치 액세스 시간은 기억장치의 위치에 따라 달라짐 • 지역 기억장치 액세스(local memory access) • 전역 기억장치 액세스(global memory access) • 원격 기억장치 액세스(remote memory access) Parallel Computer Architecture
NUMA 모델의 일반적인 구성도 Parallel Computer Architecture
COMA 모델 • 특징 • 시스템 내에 기억장치가 존재하지 않음 • 각 프로세서가 가지고 있는 기억장치들이 모두 캐쉬로서 동작하며, 하나의 공통 주소 공간을 가짐 • 다른 캐쉬에 대한 액세스는 분산 캐쉬 디렉토리(distributed cache directory)에 의해 지원 • 초기에는 데이터들이 임의의 캐쉬에 저장되어 있으며, 실행 시간 동안에 그 데이터를 사용할 프로세서의 캐쉬로 이동 • 대표적 시스템들: Data Diffusion Machine(DDM), KSR-1 Parallel Computer Architecture
COMA 모델의 일반적인 구성도 Parallel Computer Architecture
NORMA 모델 • 분산-기억장치 시스템(distributed-memory)이라고도 부름 • 프로세서가 원격 기억장치(remote memory)는 직접 액세스할 수 없는 시스템 구조 • 프로세서들과 기억장치들은 메시지-전송(message-passing)을 지원하는 상호연결망으로 접속 • 주요 상호연결망: 매쉬(mesh), 하이퍼큐브(hypercube), 토러스(torus), 등 Parallel Computer Architecture
NORMA 모델의 일반적인 구성도 Parallel Computer Architecture
1.3.4 시스템 구성에 따른 분류 • 대칭적 다중프로세서(Symmetric Multiprocessor: SMP) • 대규모 병렬프로세서(Massively Parallel Processor: MPP) • 캐쉬-일관성 NUMA(Cache-Coherent NUMA: CC-NUMA) 시스템 • 분산 시스템(Distributed System) • 클러스터 컴퓨터(Cluster Computer) Parallel Computer Architecture
SMP • 최대 수십(20~64) 개 이하의 프로세서들로 구성되는 중대형급 시스템 • 완전-공유 구조(shared-everything architecture) : 프로세서들이 시스템 내의 모든 자원들을 공유 • 시스템 내에 하나의 OS만 존재 • 대칭적(symmetric): • 모든 프로세서들이 필요 시 직접 OS 코드 수행 • 모든 프로세서들이 자원들을 동등한 권한으로 사용 Parallel Computer Architecture
SMP (계속) • SMP의 특징 • 능력이 비슷한 프로세서들로 구성 • 프로세서들이 기억장치와 I/O 장치들을 공유하며, 상호연결망에 의해 접속 • 모든 프로세서들은 동등한 권한을 가지며, 같은 수준의 기능들을 수행 • 프로세서간 통신은 공유-기억장치를 이용 • Job scheduling이 하나의 OS에 의해 통합적으로 이루어짐 • 공유 자원에 대한 경합으로 인하여 시스템 크기에 한계 Parallel Computer Architecture
MPP • 무공유 구조(shared-nothing)를 기반으로 하는 대규모 병렬처리시스템 • 수백 혹은 수천 개의 프로세서들로 구성 • 간단한 구조의 노드 프로세서 사용 • 마이크로-커널(micro-kernel) 수준의 노드 OS 탑재 • 노드들 간의 통신은 message-passing 방식 이용 • 복잡도 높은 상호연결망 이용 [사례 시스템] CM-5, Cray T3E, IBM BlueGene Parallel Computer Architecture
CC-NUMA • 독립적인 노드들(UMA 혹은 NUMA 시스템)이 상호연결망에 의해 접속 • 모든 노드들의 캐쉬 및 주기억장치들 사이에 데이터 일관성 유지 • 시스템 내의 모든 기억장치들이 전역 주소공간(global address space)을 가지는 분산 공유-기억장치 시스템(distributed shared-memory system)으로 구성 • 주요 장점: S/W 변경 없이 SMP보다 더 큰 시스템 구축 가능 [사례 시스템] DASH, SGI Origin, Sequent NUMA-Q Parallel Computer Architecture
CC-NUMA 시스템의 일반적 구성도 Parallel Computer Architecture
분산시스템 • 독립적인 노드(컴퓨터시스템)들이 전통적인 네트워크에 의해 접속 • 노드들 간의 정보 교환 혹은 병렬처리를 수행할 때만 네트워크를 이용하여 통신 : 소결합 시스템(loosely-coupled system) • 노드: PC, workstation, SMP, MPP, 혹은 그들의 조합 Parallel Computer Architecture
클러스터 컴퓨터 • A collection of PCs or workstations • 네트워크: 고속 LAN, 혹은 network switch • 모든 시스템 자원들을 SSI(Single System Image)로 통합 • 주요 장점 • 저렴한 비용으로 병렬처리시스템 구축 가능 • 결함 대체 용이 가용성(availability) 향상 Parallel Computer Architecture
SSI 및 scalability 비교 SSI(Single System Image)Scalability: System extendability Parallel Computer Architecture
1.4 병렬컴퓨터의 성능 척도 처리 속도에 대한 척도 • MIPS(Millions of Instructions Per Second) : 초당 실행 완료되는 명령어들의 수를 나타내는 단위 • 1 MIPS : 초당 백만(106) 개의 명령어 실행 • 1 GIPS : 초당 10억 (109) 개의 명령어 실행 • 1 TIPS : 초당 1조 (1012) 개의 명령어 실행 • M : MegaG : GigaT : Tera Parallel Computer Architecture
처리 속도에 대한 척도 (계속) • MFLOPS(Millions of Floating-Point Operations Per Second) : 초당 실행 완료되는 부동-소수점 연산들의 수를 나타내는 단위 • 1 MFLOPS : 초당 백만(106) 번의 부동-소수점 연산 수행 • 1 GFLOPS : 초당 10억(109) 번의 부동-소수점 연산 수행 • 1 TFLOPS : 초당 1조 (1012) 번의 부동-소수점 연산 수행 • 주로 슈퍼컴퓨터의 성능 척도로 사용 • LIPS(Logical Inferences Per Second) : 단위 시간당 처리하는 logical inference들의 수 • AI 프로그램의 처리 속도를 나타내기 위해 사용 Parallel Computer Architecture
속도 향상에 대한 척도 • 속도 향상(speedup: Sp) : p 개의 프로세서를 가진 병렬컴퓨터가 단일프로세서시스템에 비하여 몇 배의 처리 속도를 가지는지를 나타내는 척도Sp = T1 / Tp • Sp < p가 되는 주요 요인들 • 불균등 작업부하 • 병렬처리 오버헤드들(프로세서 동기화, 프로세서간 통신, 등) Parallel Computer Architecture
효율(efficiency) • 투자 비용에 따른 효과를 나타내는 척도 • 속도 향상과 프로세서 수의 비율Ep = Sp / p = T1 / p Tp Parallel Computer Architecture
중복성(redundancy) • 응용 프로그램을 병렬컴퓨터에서 처리하는 경우에 수행되는 연산들의 수(Op)와 단일프로세서시스템에서의 연산들의 수(O1)의 비율Rp = Op / O1 • R p > 1이 되는 주요 요인: 병렬처리를 위해 추가되는 동작들(오버헤드: 프로세서 동기화 및 프로세서간 통신) Parallel Computer Architecture
시스템 이용률(system utilization) • H/W resource들이 어느 정도 효율적으로 사용되는지를 나타내는 척도 • 프로그램 처리의 전체 시간 중 H/W 자원이 busy 상태인 시간의 비율Up = Rp Ep = (Op/ O1 ) (T1 / p Tp) • Up < 1가 되는 주요 요인들 • 불균등 작업부하 • 데이터 전송 대기 시간 Parallel Computer Architecture
병렬처리의 질(quality of parallel processing) • 병렬처리가 어느 정도 효과적으로 이루어졌는지를 나타내는 척도 • 속도 향상과 효율에 비례, 중복성에 반비례Qp = Sp Ep / Rp • Ep < 1, 1 < Rp < p Qp < Sp Parallel Computer Architecture