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:
Sp = T1 / Tp
Linear speedup or ideal speedup is obtained when Sp = 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 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:
Sp = 1 / (F + (1 - F) / p)
If p tends to ∞, the maximum speedup tends to 1 / F.
Shameem Akhert and Jason Roberts.
Multi-Core Programming: Increasing Performance Through Software Multi-Threading.
Intel Press, 2006.