title: "**병렬 컴퓨팅 : Parellel Computing**"
description: "**병렬 컴퓨팅 : Parellel Computing**"
cleanUrl: /sw-engineer/parellel-computing
ogImage: "<https://anyflower.notion.site/image/https%3A%2F%2Fprod-files-secure.s3.us-west-2.amazonaws.com%2F7570d2fc-66b1-4e23-bb3c-ff7b56842b0d%2Fe7b02e99-3b39-4330-b596-37fdae6abdd6%2FUntitled.png?table=block&id=858dd03e-3dfd-4102-b6b8-62fd133eca97&spaceId=7570d2fc-66b1-4e23-bb3c-ff7b56842b0d&width=1080&userId=&cache=v2>"
floatFirstTOC: right

병렬 컴퓨팅의 정의

병렬 컴퓨팅의 특징

병렬성(parallelism)의 종류

메모리와 통신

모든 주 메모리에 동일한 지연률(latency)와 대역폭(bandwidth)으로 액세스 가능한 컴퓨터 아키텍처는 Uniform Memory Access(UMA) 시스템이라 하며 통상 (물리적으로 분산되지 않은) 공유 메모리 시스템이 여기에 속한다. 또한 이러한 속성을 지니지 않은 아키텍처는 Non-Uniform Memory Access(NUMA)로 알려져 있다. 분산 메모리 시스템은 NUMA에 속한다.

병렬 컴퓨터에서는 하나 이상의 위치에 동일한 값을 저장하는 캐시(cache)를 구성하기가 어려우며, 이로 인해 잘못된 연산을 수행할 여지가 많다. 이러한 컴퓨터는 캐시 값을 추적하고 전략적으로 일소(purge)함으로 캐시 일관성을 이루는 캐시 일관성 : Cache Coherency 시스템을 필요로 하며, Bus snooping(sniffing)은 이를 구현하는 가장 흔한 방법중 하나이다. 하지만 대규모의 고성능 캐시 일관성(cache coherence) 시스템 설계는 매우 어려우므로, 공유 메모리 컴퓨터 아키텍처는 분산 메모리 시스템에 비해 규모 확장이 어렵다.

프로세서 대 프로세서, 프로세서 대 메모리간 통신 H/W는 여러가지 방법으로 구현 가능하며, 그 방법으로서 공유(multiported, multiplexed) 메모리 기법 뿐 아니라 공유 버스 또는 star, ring, tree, hypercube, n-dimensional mesh 등의 여러 topology를 통해 상호 연결된 네트워크가 사용된다.

병렬 컴퓨터의 종류(classes of parallel computers)