어떤 기준으로 퍼포먼스가 제일 높다고 말할 수 있을까?
: The time between start and completion
: How many tasks are completed per unit time
상황에 따라, 산술평균,, 기하평균,, 구분해서 쓸 줄 알아야함.
: 프로그램을 실행시키는데 걸리는 시간
= CPU Clock Cycles X Clock Cycle Time
= CPU Clock Cycles/Clock Rate
: 어떤 일을 수행하는데 cpu가 몇개의 clock을 사용하는 지
= IC X CPI
= 명령어 수 X 명령어당 평균 클럭 사이클 수
: 한 clock 당 수행시간
= 1/ clock frequency(rate)
CPI = Total CPU clock cycle / Total Instruction count
CPI(명령어당 평균 클럭 사이클 수) = Σ (각 명령어당 CPI * 비율)
CPU Time 외에도 MIPS (Millions of Instruction Per Second) 라는 성능 측정 지표가 있다.
시간이 아닌 처리량을 기준으로 컴퓨터의 성능을 알 수 있는 수치
백만개의 명령을 1초에 몇번 수행할 수 있는지 -> 10^6 을 실행시간 곱해줌
MIPS = 명령어 개수 / (실행시간 * 10^6)
MIPS 가 크면 -> 실행시간 짧다 -> 즉, 컴퓨터의 성능이 우수하다고 할 수 있다.
단순히 명령어를 실행하는 속도를 나타낼 뿐이지 명령어 하나가 얼마나 많은 일을 수행하는지는 모른다는 단점이 있다. 직관적 이해는 가능해도 정확한건 아니라구 하넹..
MIPS = Clock Rate(=Clock frequency) / (CPI * 10^6)
추가로, MFLOPS = 부동 소수점 연산 개수 / (실행시간 * 10^6)
얘도 계산 문제 나온다고 했다..
MHz = 10^6
GHz = 10^9
기억해두기
컴퓨터 성능을 측정하기 위해 나온 개념!
✦ Mimic a particular type of "workload" on a component or system
✦ Acceptance : vendor and users embrace it
예시로 SPEC, TPC..가 있다고 한다..
결과표를 보면 "SPEC ratio" 를 볼 수 있는데,
이게 기준 컴퓨터보다 몇배가 뛰어난지 측정한 값이다.
// 산술평균 말고 기하평균을 쓴걸 볼 수 있음.
멀티 프로세스를 썼을 때 싱글 프로세스를 썼을 때보다 얼마만큼 speed up이 되는지를 보여주는 법칙
(1-f)는 병렬화가 안된 부분이기 때문에 T(1-f)는 단일 프로세서로 해야합니다. 밑에 분수에선 Tf 가 병렬화가 가능하기 때문에 프로세서의 개수만큼 나눠줄 수 있습니다.
결과적으로 코어의 개수가 아무리 많아져도 (N -> 무한) 이 되어도 속도는 1/(1-f) 에 의존합니다.
✦ 프로세서 개수를 계속 늘린다고 성능이 무한대로 좋아지는게 아니다!
즉, 뭐가 중요해?
- 속도향상은 얼마나 병렬화가 이루어졌냐(f가 얼마나 많은 비율을 차지하나)
- 반드시 연속적으로 의존성있게 그런 순서를 반드시 지켜야하는 부분(병렬화가 불가능)이 얼마나 많은가
-> 암달의 법칙이용해서 얼마만큼의 속도향상이 있는지 구하는 계산 문제도 나온다했다.
그럼 정리,
1. 성능 기준에 따라 다른 평균기법 (산술평균, 기하평균을 상황에 맞게 적용할 줄 알아야함)
2. CPU Time, CPI, MIPS, 암달의 법칙 등의 계산 문제 연습하자(이건! 주말에 미래의 나야 화이팅 -> 전공책 예제 다 풀어보기~~)
3. 상황에 맞는 매트릭 사용 -> 그 이유에 대한 설명도 할 줄 알아야함
4. 계산 부분점수 없단다.. -> 교수님 너무 하다!
5. 컴퓨터 성능을 평가하는데에는 다양한 고려 요소가 있지만, 컴퓨터 구조에선 "CPU 성능" 에 포커스를 둔다.
나중에 계산 문제 참고할 링크 ↓
공식 간단하게
계산 문제 예시
이건 계산 문제 해설해주는 동영상