Please enable JavaScript.
Coggle requires JavaScript to display documents.
병렬 프로세서 (멀티프로세서 (멀티코어 마이크로프로세서 : 하나의 칩 안에 여러 개의 프로세스를 집적시킨 마이크로프로세서 (공유…
병렬 프로세서
멀티프로세서
정의
: 최소한 두 개 이상의 프로세서로
구성된 컴퓨터 시스템
장점
확장가능한 성능 제공
전력 효율 개선
고성능
=
높은 처리량
테스크 수준 병렬성
(프로세스 수준 병렬성)
정의
: 다수의 프로세서를 이용하여
독립적인 프로그램 여러 개를
동시에 수행하는 것
병렬처리 프로그램
(병렬 소프트웨어)
개발의
어려움
더 높은 성능과 에너지 효율 충족
Amdahl의 법칙
속도 개선의 어려움
멀티코어 마이크로프로세서
: 하나의 칩 안에 여러 개의 프로세스를
집적시킨 마이크로프로세서
Moore의 법칙
공유 메모리 프로세서(SMP)
: 실제 주소공간을 공유
비균일 메모리 접근(NUMA)
: 단일 주소공간 멀티프로세서의 일종
: 프로세서가 어떤 워드에 접근하는지에 따라
소요 시간 상이
균일 메모리 접근(UMA)
: 어떤 프로세서가 메모리에 있는
어떤 워드에 접근하든지
균일한 시간 소요
동기화
: 둘 이상의 프로세스들의
동작을 조정하는 작업
방법 =>
lock
이용
: 한번에 한 프로세서만 데이터에
접근할 수 있게 하는 동기화 장치
분류법
: 명령어 스트림 수
& 데이터 스트림 수
MIMD
: 복수 명령어 스트림
: 복수 데이터 스트림
=
멀티프로세서
SPMD
: 단일 프로그램
: 복수 데이터 스트림
: 모든 프로세서가 같은 프로그램 수행
=
MIMD의 전통적 프로그래밍 모델
ex)
Intel Core i7
SISD
: 단일 명령어 스트림
: 단일 데이터 스트림
=
단일 프로세서
ex)
Intel Pentium 4
SIMD
: 단일 명령어 스트림
: 복수 데이터 스트림
:
벡터 프로세서
처럼
동일한 명령어를 여러 데이터 스트림에 적용
데이터 수준 병렬성
: 독립적인 데이터에 연산을 수행함으로서
얻어지는 병렬성
ex)
SSE instructions of x86
벡터구조
: 벡터 레지스터 집합
MISD
: 복수 명령어 스트림
: 단일 데이터 스트림
=
스트림 프로세서
하드웨어 멀티스레딩
: 한 스레드가 실행할 수 없게 되면
다른 스레드로 전환하도록 하여
프로세서의 이용률 높이는 기법
방식
큰 단위 멀티스레딩
: 캐시 실패와 같은 심각한 사건 발생 시
스레드 전환
작은 단위 멀티스레딩
: 한 명령어 실행 후 다른 스레드로 전환
스레드
: 프로그램 카운터와 레지스터 상태, 스택을 가짐
= 경량 프로세스
동시 멀티스레딩(SMT)
: 다중 내보내기 + 동적 스케줄링
지원하여 멀티스레딩 비용 줄임
그래픽 처리 유닛 (GPU)
기능
: CPU를 돕는 가속기
메모리 지연을 감추기 위해
하드웨어 멀티스레딩
사용
높은 처리율
에 초점
기타
창고규모 컴퓨터(WSC)
일괄 처리 프레임 워크
=
Hadoop
MapReduce
Map
: 수천 개의 서버를 사용하여
(key-value) 쌍 형태의 중간결과 생성
Reduce
: 분산 수행 결과를 모아
통합된 결과를 산출
메시지 전달 멀티프로세서
다수의
전용 주소공간
사용
메시지 전달
: 명시적으로 정보를 보내고 받음
: 프로세서 간 통신 수행
메시지 전송 루틴
: 전용 메모리 컴퓨터에서
한 프로세서가 다른 프로세서로
메시지 전송
메시지 수신 루틴
: 전용 메모리 컴퓨터에서
한 프로세서가 다른 프로세서로부터
메시지 수신
클러스터
네트워크 위상
성능 척도
총 네트워크 대역폭
: 각 링크의 대역폭 X 링크 수
양분 대역폭
: 멀티프로세서에서 균등하게
분할된 두 부분 간의 대역폭
: 최악의 양분에 대한 값 사용
유형
다단계 네트워크
: 각 노드에 스위치를 둔 네트워크
크로스바 네트워크
: 임의의 노드가 다른 어떤 노드와
통신을 하든지 네트워크를 한 번만 통과하면 되는 네트워크
오메가 네트워크
완전 연결 네트워크
: 모든 노드들을 전용 통신 링크로
연결하는 네트워크