Please enable JavaScript.
Coggle requires JavaScript to display documents.
시구-컴퓨터구조_병렬컴퓨터 - Coggle Diagram
시구-컴퓨터구조_병렬컴퓨터
MIMD
여러 개의 프로세서가 서로 다른 명령어(Multiple Instruction)를 실행하면서, 서로 다른 데이터(Multiple Data)를 처리하는 방식
밀결합 시스템: 공유-기억장치 구조, 다중프로세서 시스템
소결합 시스템: 지역 기억장치를 가진 독립적 컴퓨터, 메시지 전송 방식, 다중컴퓨터 시스템
SMP: 여러 개의 프로세서가 하나의 메모리를 공유하여 사용하는 방식입니다. 모든 프로세서는 동등한 권한을 가지며 동일한 운영체제(OS) 하에서 동작, 밀결합 시스템
MPP(대량병렬처리): 각 프로세서가 독립적인 메모리와 운영체제를 가지고, 고속의 네트워크(상호연결망)로 연결된 방식, 소결합
클러스터 컴퓨터
여러 대의 독립된 컴퓨터(노드)를 고속 네트워크로 연결하여, 외부에서는 마치 하나의 거대한 컴퓨터 시스템처럼 보이게 하는 기술
구조: 노드, 미들웨어(여러 노드를 하나의 시스템처럼 보이게 관리하는 소프트웨어 계층, 단일 시스템 이미지(SSI) 구현, 부하 분산, 장애 복구), 네트워크 인터페이스 하드웨어, 통신 소프트웨어
동일형/혼합형(하드웨어 구조와 OS), 개방형/폐쇄형, 전용/비전용(소유권, 사이클 스틸링 방식 사용)
공유 기억장치 모델의 상호연결망: 버스형, 크로스바 스위치(완전 연결성, 고비용, HW복잡), 오메가 네트워크(다단계 상호연결망, 중간 정도 HW 복잡성)
분산 기억장치 모델의 상호연결망: 선형배열 구조, 링/코달 링, 매시 구조, 트리 구조, 토러스 네트워크(원형과 메시 혼합, 확장 용이), 하이퍼큐브 네트워크(프로세서=2의 n(연결점)승)
GPU
NVIDIA 주요 기술
통합된 그래픽 및 계산구조: 그래픽 응용 뿐 아니라 일반적 목적 사용
CUDA: 일반 프로그램밍 언어 이용 GPU 프로그램, 병렬컴퓨팅 플랫폼
구성요소: 호스트, 디바이스(GPU와 같은 병렬 프로세서), SM (Streaming Multiprocessor, SP, 데이터 캐시와 공유기억장치), 스케줄러와 디스패치 유니트
단일 SM 구성요소: 코어(오퍼랜드 레지스터, FPU, ALU), 왑(Wrap, SM이 한번에 수행할 수 있는 쓰레드 묶음, 왑스케줄러는 쓰레드에게 코어 할당)
CUDA 프로그램은 호스트 코드와 디바이스 코드로 이루어진 통합 소스 코드, 호스트 코드(ANSI C 기반 순차적 프로그램), 디바이스 코드(ANSI C 코드와 커널 함수로 구성), 커널함수(병렬함수 및 데이터 구조 명시 키워드들 확장한 형태, 디바이스가 실행하는 부분), 스레드(커널함수의 한 인스턴스, SP에 의해 실행), 그리드(하나의 병렬 커널 코드에 존재하는 스레드 전체), 블록(그리드 내의 스레드 분할한 단위, SM에게 할당)
CUDA 프로그램 실행 과정: 호스트가 순차적 코드 실행-커널 함수 호출 시 병렬 커널 코드가 디바이스로 보내짐-디바이스에서 커널이 그리드를 생성하여 SM들에 할당, SP들이 한 스레드씩 담당하여 실행-모든 스레드 실행 완료 시 그리드 종료, 결과값 호스트로 전송-호스트는 다음 순차적 코드 실행, 또 다른 커널 만나면 반복
GPU 기억장치
지역 기억장치: 각 스레드 사용, 레지스터 세트로 구현
공유 기억장치: 같은 블록에 포함된 스레드 공동 사용
전역 기억장치: 모든 응용프로그램들이 생성한 그리드들이 공유, 호스트와 GPU 간의 데이터 교환에도 사용
GPU는 수천 개의 작고 단순한 코어로 구성되어, 대량의 데이터를 동시에 처리하는 초병렬 프로세서