1.3 Performance

이태곤·2022년 10월 18일
0

Computer Architecture

목록 보기
3/13

How to measure performance

  • Need to know which system is better
  1. Time : The time from start to completion

    CPU Execution time

  2. Rate : How many tasks are completed per unit time

    MIPS, MFOPS

  3. Ratio : Relative Performance

    Arithmetic mean, Harmonic mean, Geometric mean


1. CPU(Execution) time

  • Spent actual CPU time from start to completion on a given program

    • 낮을 수록 좋음
    • Unpredictable because it includes everything
  • Clock Cycle (Hz) : Program을 처리하는데 CPU가 몇개의 Clock을 사용하는지를 나타낸다.

    • IC x CPI
    • 낮을 수록 좋음
  • Clock Cycle Time(Clock Period) : 하나의 Clock Cycle에 대한 수행시간을 의미한다.

    • 낮을 수록 좋음
  • Clock Rate(Clock Frequency) : 초당 Cycle

    • Reciprocal Relation with Clock Cycle Time
    • Clock Cycle Time = 1 / Clock
    • 높을 수록 좋음
    • ex) 100Hz
      -> 1초에 100개 싸이클 실행
      -> 1개 싸이클에 대해서 수행시간은 1/100초
  • CPU Time = IC x CPI x Clock Cycle Time OR IC x CPI / Clock Rate

    • IC : the number of instructions per program
    • CPI : clock cycles per instruction
      • AVG CPI : total CPU clock cycle / total instruction count
  • 결론 : Performance 향상을 위해서 IC를 줄이고, 명령어 하나 당 필요한 cycle을 줄이고, clock cycle time을 줄여야한다!


2. Rate(MIPS)

  • Million Instructions Per Seconds 의 약어로 단위시간당 처리량을 기준으로 Performance 를 측정한다.

    MIPS = IC / CPU Time x 10^6 or Clock Rate / CPI x 10^6

  • MIPS가 클수록 Performance가 우수하다고 볼 수 있으므로 직관적으로 이해하기 쉽다.

  • 명령어의 처리 속도를 나타내고 있지만 명령어가 얼마나 많은 일을 수행하는지 알 수 없기 때문에 정확한 측정 방법은 아니다.


3. Benchmarks

  • Mimic a particular type of workload or application on a computer system to measure performance
    • SPEC : to measure CPU performance
    • TPC : server benchmark for measuring trasaction performance

4. Amdahl's Law

  • 코드에서 병렬처리가 가능한 부분과 순차처리를 해야하는 부분으로 나누어 생각해볼 수 있다.
  • 따라서, 아무리 프로세스의 갯수를 늘리더라도 성능개선의 한계가 있다.
  • 또한, 일부성능의 개선이 전체성능의 개선으로 이어지는데에 한계가 있다.
    • 직접적인 해결방안 : 가장 빈번하게 사용되는 부분을 공략

  • n : the number of processors
  • f : Fraction of code
    • 1 - f : code that should be executed serially
    • f / n : code that can be executed parallelly
      • if n goes to infinity -> 1 / (1 - f)

0개의 댓글