2.1 병렬 컴퓨팅 (Parallel Computing)
병렬 컴퓨팅과 hpc 클러스터
병렬 컴퓨팅
연산하는 컴퓨터가 여러 대 협력해서 진행함으로써 연산 능력을 높이는 하이 퍼포먼스 컴퓨팅
대규모 데이터 처리, 고속연산을 필요로 하는 분야 출현
이학, 공학의 모델링, 시뮬레이션 실험
대기 한계치("reasonable time") 내에 실행 환료해야 하는 문제/분야의 해결방안
이전엔느 불가능한 것으로 다루지 않던(포기한) 영역에서 계산/도전 욕구
빠른 CPU 개발의 3가지 장벽
Frequency Wall
파이프라인 방식의 속도향상을 얻기 위한 분할 실행의 극값에 도달하여 주파수가 높아져도 향상되지 않게 된다.
- 빠르게 동작시키려면 클락을 빠르게 해야함 현재는 ic 내부에 있는 게이트가 속도를 따라가지 못함
- 주파수를 늘려서 동작시키는 방식은 한계점에 도달함
Power Wall
단위면적당 방열의 최대치에 도달하여 집적도를 향상시크는 한계에 도달
- 반도체 소자의 물리적 크기를 줄이면서 빨리 동작 시켰는데 작아지면서 단위면적당 열 발생량이 커짐
Memory Wall
프로세서의 빠른 동작에 비해 D-RAM의 속도차가 너무 커 연산력이 더 이상 늘어나지 않는다.
- 성능을 높이기 위해서 프로세서 속도를 올려놓으면 메모리도 같은 속도로 올라가야 하는데 그렇지 못함
이러한 이유로 한계의 프로세서의 속도를 높일수 있는 방법 모색
여러개의 프로세서로 작업을 분할해서 하는 방법을 찾게 됨
병렬 컴퓨팅이 작업처리 속도를 향상시키는데 유일한 수단이 될 수 있음
병렬 연산의 동기
- 속도향상
- 안정성(고장 감내)
- 대규모 주 메모리
- 복합기능 등
속도 향상
이를 사용한 예제
날씨 예보
- 지구상의 공간을 컴퓨터에 넣어서 공간 하나하나의 위치의 기상조건을 찾아야함
- 지상부분을 아주작게 분할하여 나눔
- 또한 시간이 지남에 따라 변수가 계속 변함
- 때문에 연산량이 기하급수적으로 늘어남
- 이는 컴퓨터의 연산 처리 능력에 따라 결과가 달라짐
2.2 HPC 클러스터(Cluster) 제작
무어의 법칙에 의해서 능력이 늘어남
10의 제곱수 단위로 늘어남
20년간 컴퓨터 성능의 변화 추이
미래의 발전 방향을 예측할 수 있음
기술이 바뀌어 가면서 컴퓨터 성능 개선의 추세가 반영됨
HPC cluster 제작 방식 (계층구조)
오래된 기술 BLUE GENE/L을 만들 때 사용 되었던 기술
슈퍼 컴퓨터 제작방식에도 사용되고 있음
Parallel Computer 유형
공유 메모리 기반 병렬 컴퓨터
분산 메모리 기반 병렬 컴퓨터
클러스터의 경우에는 분산 메모리 기반이다.
클러스터 연결구조
독자적 실행가능한 개개 컴퓨터를 고속 연결망으로 결합한 체계
클러스터 연결 종류
버스형, LAN 연결형, 고속망
특수연결망 : INFINIBAND
Beowulf Clusters
다수의 상용화된 동일한 고성능 CPU를 고속스위치로 연결하여 가성비를 높임
LINUX OS 계열
소규모 클러스터 제작-하드웨어
복수의 PC
Gigabit Ethernet Switch
GPUboard
Linux OS
MPI - 통신 소프트웨어
제작절차
- Bare machine 구비
- Linux operating system 설치
- MPI library download, 컴파일 및 초기 설정 (machine file등)
- 테스트 프로그램 실행
- 사용자 설정
한대의 멀티코어 컴퓨터도 리눅스 체제를 사용해 병렬 환경을 만들어 클러스터를 제작 가능함
MPI library
message passing interface
프로세서간 자료교환 수단으로 통신이 필요함
MPI 집합 통신과 같은 다양한 통식방식을 함수를 통해 구현 가능
집합통신
병렬 수행 프로그램 설계
- 순차실행
- 작업 분할 프로그램 제작
- 각각의 컴퓨터 실행 코드/데이터 준비
- 작업실행
병렬화 전략/알고리즘
병렬 작업 과정을 위해 추가한 오버헤드로 인해 손실이 발생함 (2대라고 2배로 빨라지지는 않음)
손실의 정도를 예상할 필요가 있음
다양한 기술과 요소를 포함하는 복잡한 과정을 거침
병렬실행 테스트 프로그램
Hello.c 단순한 "Hello 문장 출력"
혼자하면 하나 찍히겠지만 병렬 이면 여러개 찍힘
CPI(computing ) 적분법에 의한 π계산
Matmul.c
난수로 생성된 행렬 A, B에 대한 곱셈 실행후 결과 확인
Quiz 2.
1번
다음 중 빠른 CPU 개발의 3가지 장벽이 아닌것을 고르시오?
Frequency Wall
Speedup Wall
Memory Wall
Power Wall
2번
병렬컴퓨터와 클러스터는 동일한 개념인가?
Yes
No
3번
MPI란 운영체제의 일종인가?
Yes
No
4번
병렬컴퓨팅으로 잇점 중 핵심적인 것은?
신뢰성
확장성
연속성
계산 성능 향상
5번
클러스터 제작에 필요한 내용과 거리가 먼 것은?
다수의 컴퓨터
리눅스 운영체제
MPI 라이브러리
데이터베이스
'공부 > 클라우드 컴퓨팅과 인공지능 (K-MOOC)' 카테고리의 다른 글
06. 데이터 기반의 기계학습의 기초 (0) | 2021.05.22 |
---|---|
05. 인공지능 구현법 (0) | 2021.05.22 |
04. 사물인터넷과 클라우드/ 엣지 컴퓨팅 (0) | 2021.05.22 |
03. 클라우드 컴퓨팅 (0) | 2021.05.21 |
01. 클라우드 컴퓨팅과 인공지능 개요 (0) | 2021.05.20 |