[CS] #1. Performance

<div>elop·2022년 1월 11일
0
post-custom-banner


↑컴퓨터의 대략적인 구성도 이다.


computer language는 크게 3가지로 나눌 수 있는데,

1.High-level language
-흔히 아는 프로그래밍 언어
-추상화가 잘되어있고 생산성이 좋음

2.Assembly language
-High-level language와 machine language의 중간 단계
-Assembler가 Assembly language를 Machine language로 변환시켜줌
-MIPS, Sun Sparc, HP PA-RISC등

3.Machine language
-binary digit
-01010101010111101111....


Performace

performace = 1 / execution time


용어정리!

CPU time?
-프로그램을 실행시키는데 걸리는 시간. 앞으로 cpu time으로 성능을 비교!

clock cycle?
-명령어 실행주기. 하나 이상의 instruction을 가져오고, 해석하고, 수행하는 과정이 하나의 cycle.
-단위는 Hz(헤르츠)로, 1Hz는 1초에 1개의 명령어를 실행 할 수 있음을 의미한다.
Ex) 4GHz의 성능을 가진 processsor는 초당 4,000,000,000 clock cycle을 수행!

clock rate?
-clock cycle time(한 사이클을 수행하는데 걸리는 시간)의 역수
clock cycle time = 1 / clock rate




이제 CPU time을 계산해보자!



CPU time = instruction의 수 * instruction당 clock cycle * clock cycle time
당연하지만 instruction 수가 적을수록, clock cycle이 작을수록, clock cycle time이 작을수록 수행시간은 줄어들 것이다.

이 식은 앞으로 존나게 많이 튀어 나올 예정이니 기억하도록 하자!



Ex) which computer is faster?(Instruction 수는 같음)
A : clock cycle time:250ps, CPI=2.0
B : clock cycle time:500ps, CPI=1.2
clock cycle time * CPI가 작은 A가 빠르다!




++ CPI에 영향을 끼치는 요소들

  • Algorithm
    -알고리즘은 instruction이 수행되는 프로세서 수를 결정하고, CPI에도 영향을 미친다.
    -예를 들어, devide를 많이 수행할수록 더 높은 CPI를 가진다.

  • Programming language

    -명령어들이 processor의 instruction으로 변환될 것이고, 이는 instruction의 갯수와 CPI에 영향을 미친다.
    -추상화가 잘 되어있는 언어일수록 더 많은 메모리 간접호출을 발생 시키고, 그럴수록 높은 CPI가 사용된다.

    Amdahl's Law

    암달의 법칙.
    performance의 향상은 주어진 향상된 feature의 양에 의해 제한된다!
    쉽게 말해서 processor 수를 100배로 늘렸다고 해서 100배의 performance 향상이 일어나는게 아니라, 늘어난 processor에 영향받은 feature들에 의해서 향상정도가 결정된다는 뜻이다.


Execution time after improvement

Ex) 수행하는데 100초가 걸리는 program이 있는데, 여기서 곱셈을 수행하는데 80초가 걸린다. program을 5배 빠르게 하기 위해서 곱셈을 얼마나 더 빨리 해야할까?
-위 식에 대입해보면, Execution time affected=80s, Execution time unaffected=20s이므로,
20 = (80/Amount of improvement)+20
Amount of improvement가 무한대여야 하므로, 불가능

profile
기록장
post-custom-banner

0개의 댓글