Kim Seon Deok

[컴퓨터 구조] 6. Parallel processing program 본문

컴퓨터 구조

[컴퓨터 구조] 6. Parallel processing program

seondeok 2022. 11. 19. 15:27

 

multiprocessor : 최소한 2개 이상의 프로세서로 구성된 컴퓨터 시스템.

parallel processing program : 하나의 프로그램이 여러 개의 프로세서에서 동시에 수행될 때

multi core microprocessor : 한 칩 안에 다수의 프로세서(=core)를 집적시킨 마이크로 프로세서.

 

Shared memory

SMP : 단일 실제 주소공간을 갖는 병렬프로세서

shared memory는 하나의 메모리공간을 사용하고 여러개의 프로세서를 둔 구조이다.

  • 여러 개의 프로세서가 하나의 메모리를 서로 공유한다. 
  • 같은 메모리 공간이므로 프로세서와 프로세서 간 커뮤니케이션이 가능하다.

shared memory는 액세스 타임에 따라 UMA(uniform memory access)와 NUMA(nonuniform memory access)으로 나뉜다.

 

 

  • UMA : 어느 프로세서가 어느 워드에 접근하든지 동일한 시간이 걸리는 형태 
    • uniform한 메모리 액세스타임
    • 각 프로세서와 캐시로 구성되어 있고 공통의 메모리를 가진다.
  • NUMA : 어느 프로세서가 어느 워드에 접근하는지에 따라 메모리 접근시간이 달라지는 형태 
    • 하나의 메모리를 잘게 나누어 각각의 영역을 프로세서에 매핑시키는 방법으로, 각 프로세서마다 서로 다른 주소공간을 가지며 한 프로세서가 다른 프로세서의 메모리 공간을 액세스할 수 있다.
    • 프로세서와 메모리의 거리에 따라 액세스 타임 달라진다.
    • 가까운 메모리에 빨리 접근할 수 있고 규모를 크게 만들 수 있다는 장점이 있다.

 

 

Message passing

NUMA구조와 비슷하다. 하지만 각 프로세서마다 서로 다른 주소공간을 가지며 한 프로세서가 다른 프로세서의 메모리 공간을 액세스할 수 없다.→ 메모리가 독립적이고 각각의 프로세서-캐시 세트가 고속의 interconection network로 연결되어있다.→ interconnection network는 프로세서-메모리 노드들 사이에 존재한다.

 

 

Grid computing

지리적으로 멀리 떨어진 컴퓨터들이 장거리 통신망을 이용해 서로 통신하며 프로그램을 수행

SETI@home수백만개의 PC들이 아무 일도 하지 않고 놀고 있을 때 이들 PC에서 돌아갈 수 있는 소프트웨어를 만들어 각각의 PC에게 독립적으로 수행할 수 있는 작은 일들을 나누어 주어 PC를 활용할 수있다

 

 

 

 

Multithreading

 

Hardware multithreading은 한 스레드가 실행할 수 없게 되면 다른 스레드로 전환시켜 프로세서의 이용률을 높이는 것을 말하고 2종류가 있다. → 여러 스레드가 단일 프로세서의 유닛을 겹쳐 사용해 하드웨어 자원 효율적으로 사용

Thread: PC값과 레지스터, 스택을 갖는 경량프로세스

  • Fine grain multithreading

매 명령어마다 스레드를 전환해 여러 개의 스레드를 interleaving하는 방식

여러 개의 스레드를 만들어 놓고 매 클럭사이클 마다 한 스레드씩 돌아가며 수행

장점 ) 한 스레드가 지연되고 있는 동안 다른 스레드의 명령어를 수행함으로써 짧은 지연이나 긴 지연으로 인한 처리량의 손실을 감출 수 있다

  • Coarse grain multithreading

캐시 미스와 같은 사건이 일어날 때에만 스레드를 전환하는 하드웨어 멀티스레딩 방식

한 개의 스레드를 수행하는데 miss가 발생하면 다른 스레드를 수행하고 또 miss가 발생하면 다른 스레드를 수행

장점 ) 긴 지연이 발생하는 경우에만 다른 스레드의 명령어를 실행하기 때문에 개별 스레드의 수행이 느려지는 문제가 완화된다.

단점 ) 한 스레드에 속한 명령어들만 내보내기 때문에, 지연이 발생하면 파이프라인을 비우거나 멈추어야 한다. 지연 후에 수행되는 새로운 스레드는 파이프라인을 새로 채워야 한다. → 파이프라인 초기화 오버헤드

 

 

simultaneous multithreading = SMT

Hardware multi threading의 변형된 형태이다.

multi issue와 dynamic scheduling을 지원하는 마이크로 구조의 자원을 활용해 멀티스레딩 비용을 줄이는 방식

장점 ) dynamic 매커니즘을 사용하기 때문에 매 사이클마다 자원을 바꾸지 않고 항상 여러 스레드의 명령어를 동시에 실행한다.

장점 ) 스레드 수준 병령성과 명령어 수준 병렬성이 모두 활용되어, 한 클럭 사이클에서 여러 스레드가 내보내기 슬롯을 같이 사용한다.

 

 

fine grain multithreading, coarse grain multithreading, simultaneous multithreading

프로세서 구성에 따라 superscalar자원 활용능력이 달라짐을 보여준다.

상단부분 - 멀티 스레드 지원하지 않는 상황 : 각 프로세서에서 4개의 스레드가 따로따로 수행되는 모습

멀티스레드를 사용하지 않으면 명령어 수준 병렬성이 떨어지게 되고 큰 지연이 발생하면 전체 프로세서가 멈추게 된다.

하단 부분 

각각 coarse 멀티스레딩, fine 멀티스레딩, simultaneous 멀티스레딩 방식 

멀티 스레딩을 사용하면 단일프로세서의 자원을 더 효율적으로 사용할 수 있다.

 

 

 

Instruction and Data streams

 

  Data Streams
Single Multiple
Instruction Streams Single SISD SIMD
Multiple MISD MIMD

명령어 스트림 개수와 데이터 스트림 개수에 기반해 병렬 하드웨어를 분류하는 방법

SISD : 단일 명령어 단일 데이터스트림. 단일 프로세서

SIMD : 단일 명령어 복수 데이터스트림. 

벡터데이터 연산에 이용. 모든 유닛들이 동일한 명령어를 수행하는데, 각 유닛마다 별도의 주소레지스터가 있어 다른 데이터 주소를 사용할 수 있다. → 여러 실행 유닛들을 control하는 유닛을 하나로 통합

MISD : 복수 명령어 단일 데이터스트림. → 현재 사용 x

MIMD : 복수 명령어 복수 데이터스트림.

 

 

 

 

Interconnection networks

네트워크는 보통 노드로 표현한다. 모든 네트워크는 스위치들로 구성되며 스위치에는 프로세서-메모리 노드로 가는 링크와 다른 스위치로 가는 링크가 있다.

ring : 모든 노드를 순서대로 연결

mesh = fully connected : 노드 하나를 추가하려면 다른 나머지 노드와 모두 연결해주어야 한다.

 

 

 

 

 

 

 

출처

https://www.sciencedirect.com/topics/computer-science/uniform-memory-access

https://www.researchgate.net/figure/Flynns-taxonomy-1966-7_fig8_26639095

https://www.examguides.com/Networkplus/network-plus-2.htm

 

 

 

 

 

 

 

Comments