Prog. concurrente y paralela

Parallelism and Performance

Speedup

The speed of a program is the time it takes the program to execute. This could be measured in any increment of time. Speedup is defined as the time it takes a program to execute sequentially (with one processor) divided by the time it takes to execute in parallel (with many processors). The formula for speedup is:

$$ S_p = \frac{T_1}{T_p} $$

Where:

Linear Speedup

Linear speedup or ideal speedup is obtained when \( S_p = p \). When running an algorithm with linear speedup, doubling the number of processors doubles the speed. As this is ideal, it is considered very good scalability.

Amdahl's Law

Amdahl's law states that the speedup of a program using multiple processors in parallel computing is limited by the time needed for the sequential fraction of the program.

As a formula:

$$ S_p = \frac{1}{F+\frac{1 - F}{p}} $$

Where:

If \( p \) tends to \( \infty \), the maximum speedup tends to \( \frac{1}{F} \).

Reference:

[AKHTER] pp. 13-15.