Kim Seon Deok
[컴퓨터 구조] 6. Parallel processing program 본문
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 매커니즘을 사용하기 때문에 매 사이클마다 자원을 바꾸지 않고 항상 여러 스레드의 명령어를 동시에 실행한다.
장점 ) 스레드 수준 병령성과 명령어 수준 병렬성이 모두 활용되어, 한 클럭 사이클에서 여러 스레드가 내보내기 슬롯을 같이 사용한다.
프로세서 구성에 따라 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
'컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] 5-4. Page table & TLB (0) | 2022.11.18 |
---|---|
[컴퓨터 구조] 5-3. Virtual memory (0) | 2022.11.17 |
[컴퓨터 구조] 5-2. Associative Caches (0) | 2022.11.17 |
[컴퓨터 구조] 5-1. Direct mapped Cache (0) | 2022.11.16 |
[컴퓨터 구조] 4-5. Exception & Dynamic multiple issue (0) | 2022.11.15 |