Please enable JavaScript.
Coggle requires JavaScript to display documents.
Parallel Processors from Client to Cloud (병렬처리 프로그램 (Amdahl's Law에 의해…
Parallel Processors
from Client to Cloud
병렬처리 프로그램
multiprocessor: 두 개 이상의 프로세서로 구성된 Computer System
직렬적(serial), 병렬적(parallel)
순차적(sequential), 병행적(concurrent)
병렬처리 프로그램 = 병렬 소프트웨어
순차적/병행적 무관하게 병렬 하드웨어에서 수행되는 소프트웨어
Amdahl's Law에 의해
여러 프로세서를 효율적 사용하기 위해서는 작은 부분까지도 모두 병렬화
속도 개선
경성 스케일링: 문제의 크기 고정
연성 스케일링: 프로세서의 수에 비례하여 문제 크기 증가
부하 균형(load balancing)
병렬 하드웨어 분류 방법
SISD(단일 프로세서)
단일 명령어 스트림, 단일 데이터 스트림.
MIMD(멀티프로세서)
복수 명령어 스트림, 복수 데이터 스트림
SPMD: 단일 프로그램, 복수 데이터스트림.
모든 프로세서가 같은 프로그램을 수행하는 MIMD의 전통적 프로그래밍 모델.
하드웨어 멀티쓰레딩
여러 쓰레드가 단일 프로세서의 기능 유닛 겹쳐 사용
SIMD
단일 명령어 스트림, 복수 데이터 스트림. 벡터 프로세서처럼 동일한 명령어를 여러 데이터 스트림에 적용하는 방식.
PC 인출 명령어 일제히 수행
데이터 수준 병렬성
SSE, AVX, 벡터 구조
벡터 구조가 스칼라 구조보다
속도 빠름
vector lane(다중 병렬)
그러나 무어의 법칙에 의해
충분한 성능 개선이므로 벡터 X
.
fine-grained multithreading: 매 명령어마다 쓰레드 전환
coarse-grained multithreading: 긴 지연이 생길 때만 스레드 전환
동시 멀티쓰레딩
: 파이프라인 프로세서 자원 이용
더 많은 기능 유닛 병렬성
늘 여러 스레드의 명령어 함께 실행
할당은 하드웨어
지원받지 못할 경우 명령어 수준 병렬성 부족
SMP
균일 메모리 접근
: 프로세서가 어떤 워드에 접근하든 동일 시간
비균일 메모리 접근
: 어떤 워드에 접근하는지에 따라 시간 달라짐
동기화- 둘 이상의 프로세스들의 동작 조정하는 작업
1. 그래픽 처리 유닛: GPU
SIMD 스레드 스케줄러
하드웨어 멀티쓰레딩 이유
스트리밍 캐시
SIMD 프로세서들이 독립적인 MIMD 코어처럼 작용
메시지 전달 컴퓨터
자신만의 실제 주소공간 갖기
message passing 방식
근거리 LAN / cluster(표준화된 네트워크 스위치와의
입출력 장치를 통해 연결된 컴퓨터들의 집합)
WSC: Warehouse Scale Computers
멀티프로세서 네트워킹
네트워크 대역폭/양분 대역폭/완전 연결 네트워크/
다단계 네트워크/크로스바 네트워크
멀티프로세서 벤치마크
최근 개발된 Pthread: 9개 응용 프로그램 3개 커널
클라우드 영역에서의 YCSB: 데이터 서비스 성능 비교
p.558 수식 확인(연산 강도)
루프라인 모델