Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Atomic
- 복사생성자
- c++
- 메모리관리
- C
- 멀티쓰레드
- 옵저버
- 프레임워크
- Multithread
- 게임공학과
- thread
- random access
- Unreal
- 유니크포인터
- vector
- multi-core
- 한국산업기술대학교
- 쓰레드
- 스마트포인터
- 멀티코어 프로그래밍
- stl
- material
- sequential
- MultiCore
- 옵저버 패턴
- 디자인패턴
- Design Pattern
- EFFECTIVE C++
- observer pattern
- 멀티코어
Archives
- Today
- Total
태크놀로지
멀티코어 하드웨어 소개 본문
한국산업기술대학교 게임공학부 정내훈 교수님 멀티코어 1주차 강의
멀티 쓰레드 프로그래밍
멀티 쓰레드의 사용목적
- 멀티코어 CPU(or 멀티 CPU)에서의 프로그램 성능향상 (O)
- 성능향상이 없다면 의미가 없다.
- 분산 컴퓨터에서의 프로그램 성능향상 (X)
- 멀티쓰레드는 하나의 프로세스에서 동작하기 때문에
- 분산 컴퓨터에서 성능향상을 위해선 멀티프로세스를 통해
- 싱글코어(CPU) 컴퓨터 환경에서의 프로그램 성능향상 (X)
- 오히려 더 느려짐
- 프로그램을 모듈화해서 알아보기 쉽게 (X)
- 디버깅이 매우 어려움
멀티코어 프로그래밍 => 병렬컴퓨터에서의 프로그램 성능향상
멀티코어 프로세서
Intel과 ARM에서 멀티 코어 프로세서를 만드는 이유
- CPU의 성능을 올려야 한다.
- 클럭 속도를 높일 수 없다. -> 발열문제
- 클럭 속도 말고 CPU의 속도를 올리는 법
- 아키텍쳐 개선 : 캐시, 파이프라인, 예측분기, 동적수행 -> 한계에 부딪힘
- 남은 방법 -> 멀티코어
코어?
- ALU + Register + CU + Cache
- 그냥 CPU와 똑같다.
멀티코어 CPU
- 하나의 칩에 여러개의 프로세서를 같이 포장해 넣은 것
- 프로그래머 입장에서는 멀티프로세서와 똑같다.
왜 이렇게 늦게 나왔는가?
- 프로그래머가 싫어하기 때문
- 프로그램을 다시 작성하지 않으면 성능향상 ZERO
- 전혀 다른 알고리즘들을 사용해야한다.
- 디버깅이 어렵다.
- 옛날부터 있었다.
- 과학 기술 계산용 (매우 비쌈)
게임콘솔
- 소음이 나면 안되기 때문에 CPU 클럭수를 줄이고, 코어를 늘림
- 컴퓨터: 3.2GHz / 4Core
- 콘솔: 1.6GHz / 8Core
멀티프로세서 지원
운영체제에서의 쓰레드 지원
Windows
- 프로세스의 하위 개념
- 모든 프로세스는 처음 시작 시 한 개의 쓰레드를 갖고 실행됨
- 운영체제가 쓰레드를 직접 스케쥴링
- 멀티 CPU라면 여러개의 쓰레드를 동시에 실행시켜줌
Linux
- 리눅스는 쓰레드라는 개념이없다.
- 모든 것은 프로세스
- Pthread라이브러리가 마치 쓰레드가 존재하는것처럼 보이게 해준다.
- 리눅스에서 쓰레드를 사용할 수 있다.
- 코드, 데이터, 힙을 공유하는 프로세스를 생성할 수 있다.
- 다른 운영체제의 쓰레드와 다른 것이 없다.
다음 포스팅은 덧셈을 하는 멀티쓰레드 프로그램을 실습해보겠습니다.
출처
한국산업기술대학교 게임공학부 정내훈 교수님 강의 - 멀티코어 프로그래밍
'멀티코어' 카테고리의 다른 글
멀티쓰레드 프로그래밍은 어디서 사용되고 있는가? (0) | 2020.09.13 |
---|---|
멀티쓰레드 프로그래밍으로 덧셈프로그램 만들기 (이외 방법) (0) | 2020.09.13 |
멀티쓰레드 프로그래밍으로 덧셈프로그램 만들기 (0) | 2020.09.08 |
멀티코어 프로그래밍에서의 쓰레드와 프로세스의 관계 (0) | 2020.09.02 |
멀티코어 프로그래밍 개요 & 병렬컴퓨터 (0) | 2020.09.02 |