response time & throughput

정리된 공식 모음

상황 공식
기본 성능 ET = IC × CPI / CR
IPS IPS = CR / CPI
평균 CPI CPI_avg = Σ(CPI_i × %_i)
특정 성능 비율 ET_A / ET_B = (IC_A × CPI_A) / (IC_B × CPI_B)
Amdahl 개선 ET_new = ET_affected / X + ET_unaffected
MIPS MIPS = CR / (CPI × 10^6)
멀티프로세서 ET = ET_base/p + ET_overhead

핵심: 항상 세 가지를 다 봐야 한다 - IC, CPI, CR

response time (= execution time = latency)

The total time required for the computer to complete a single task, including disk accesses, memory accesses, I/O activities, operating system overhead, CPU execution time, and so on

$Q.$ Does adding additional processors to the system enhance the performance in the respect to response time or not?

$A.$ When you add more processors, you’re improving the system’s throughput. That means even running multiple tasks in parallel can end up with increased output but not necessarily the response time of an individual task.

throughput

measures how many tasks finish in a given total time.

image.png

As you can see in the pic, throughput is affected by the execution time of each single tasks(length of width) but also how parallely they can be processed (with multiple processors) (length of height).

However response time only cares how fast a single program can be executed faster(length of width)

Image below explains this visually:

image.png

image.png

$Q.$ How do we evaluate response time in general? In most cases, a program will have heterogeneous instructions, which all has different response time. What if we made one module of the program much faster but others much slower? How can we compare it with the prior performance?