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
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.
measures how many tasks finish in a given total time.

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:


$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?