일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백트래킹
- BOJ
- end to end
- 파이싼
- 실버
- 15649
- 파이썬
- pyenv
- Python
- 그리디 알고리즘
- 손실함수
- 9020
- 1101
- 설정
- 개발환경
- n과 m
- 기계학습
- 가상환경
- 4948
- 1002
- 밑바닥부터 시작하는 딥러닝
- 경사하강법
- N-Queen
- streamlit
- 신경망 학습
- Mac
- 재귀
- 백준
- Today
- Total
파이톨치
[컴퓨터 구조] 컴퓨터의 성능은 어떻게 체크할까? 본문
# 성능
컴퓨터의 성능은 2가지 관점으로 체크할 수 있다.
하나는 "응답시간"인데, 하나의 작업을 수행하는데 얼마나 시간이 걸리는지를 체크하는 것이다.
다른 하나는 "처리량"인데, 단위시간당 수행한 작업의 양을 말한다.
응답시간에 초점을 맞추어 설명을 하자.
그렇게 되면 응답시간이 짧으면 짧을수록 성능이 좋아지는 것이다.
# CPU 시간
컴퓨터가 프로그램을 실행할 때 걸리는 시간을 경과 시간이라고 한다.
하지만 이 경과 시간에는 순수 프로그램 실행시간만 들어가는 것이 아니다.
디스크 접근하고 메모리 접근하고 입출력하고 하는 등의 모든 시간을 더한 것이다.
때문에 순수하게 프로세서가 프로그램을 실행하는 시간을 구분해서 CPU 시간이라고 말한다.
CPU 시간은 프로그램의 CPU 클럭 사이클 수 / 클럭 속도이다.
클럭 속도가 4GHz 이고 사이클 수가 8G개이면 CPU 시간은 2초이다.
CPU 시간에 대한 정의를 정확하게 쓰면 다음과 같다.
CPU time = 명령어 수 * 명령어당 평균 클럭 사이클 수 * 클럭 사이클 시간
명령어당 평균 클럭 사이클 수 (CPI)는 명령어마다 값이 달라진다고 한다.
CPI = CPU 클럭 사이클 수 / 명령어 개수
이런 식으로 변형할 수도 있다.
# Power
CPU와 전력은 밀접한 관련이 있다고 한다. 둘이 같이 증가하는 관계라고 한다.
Power = Capacitive Load * Voltage ^ 2 * Frequency
라고 한다.
성능이 좋아지면서 파워도 증가하기 때문에 발열심 점점 심해진다. 때문에 높은 파워 때문에 더이상 성능을 높히기 힘들다고 한다.
그래서 냉각 장치를 통해서 열을 빼고 성능을 높히는 방법을 사용한다고 한다.
# 멀티프로세서
최근 CPU들은 몇 코어인지 대결을 하고 있는 것 같다.
코어가 많으면 뭐가 좋냐면 병렬 프로그래밍을 할 수가 있다.
코어 단일의 성능을 더이상 높이기 힘들기 때문에 이러한 선택을 한 것이다.
하지만 이는 프로그래머 입장에서 어렵다. 프로세서 사이의 밸런스 조절을 해야하기 때문이라고 한다.
아직 아는게 없어서 정확히 왜 어려운지는 모르겠다.
'대학수업' 카테고리의 다른 글
[시스템 프로그래밍] Superscalar Processor (0) | 2022.10.03 |
---|---|
[시스템 프로그래밍] 최적화 (0) | 2022.10.03 |
[컴퓨터 구조] 컴퓨터는 어떻게 동작할까? (1) | 2022.09.23 |
[웹 프로그래밍] CSS (0) | 2022.09.15 |
[인공지능] 정보 이용 탐색 (휴리스틱 탐색) (1) | 2022.09.15 |