Su larga scala, il throughput è limitato meno dal numero di CPU che dalla contesa, dagli effetti di cache e dalle code illimitate — aggiungere thread oltre un certo punto rallenta le cose. Sia la legge di Amdahl sia la Universal Scalability Law lo prevedono: il costo di coordinamento finisce per dominare.
Contesa
Quando molti thread si contendono un solo lock o una sola cache line, si serializzano e passano il tempo ad aspettare invece che a lavorare. Secondo la Universal Scalability Law, la contesa più il può far il throughput oltre un numero ottimale di thread.
