Việc song song hóa một chương trình nhằm làm cho chương trình đó chạy nhanh hơn, tuy nhiên chương trình đó sẽ chạy nhanh hơn bao nhiêu lần? Định luật Amdahl’s [] cho phép ta xác định điều này. Giả sử xét về khía cạnh thời gian chạy chương trình, một phần p của chương trình có thể song song hóa và phần 1-p còn lại buộc phải chạy
tuần tự. Trong trường hợp lý tưởng, nếu thực thi chương trình sử dụng n bộ xử lý, thời gian chạy chương trình sẽ là:
1-p + p/n
của thời gian chạy chương trình một cách tuần tự. Đây là hệ quả trực tiếp của định luật Amdahl áp dụng cho trường hợp thực thi lý tưởng. Ví dụ: nếu 80% chương trình có thể được song song hóa, và ta có 4 bộ xử lý, thời gian chạy song song sẽ là: 1 - 0.8 + 0.8/4 = 0.4 tức là bằng 40% thời gian chạy tuần tự.
Hình 3.6:Khả năng tăng tốc độ tính toán, trường hợp lý tưởng.
Đối với chương trình trên, thời gian chạy song song sẽ không thể nào nhỏ hơn 20% thời gian chạy tuần tự cho dù ta sử dụng số lượng vô cùng lớn các bộ xử lý. Định luật Amdahl đã nêu lên tầm quan trọng của việc xác định các thành phần của chương trình có thể được song song hóa để cực đại chúng. Hình xx thể hiện giới hạn trên của tỉ lệ tăng tốc độ chương trình (1/(1-p)) với các giá trị khác nhau của p.
Hình 3.7: Giới hạn trên của khả năng tăng tốc độ chạy chương trình.
Tuy nhiên ví dụ trên chỉ là trường hợp lý tưởng hóa. Trên thực tế, khi chạy một chương trình song song, thường xuất hiện các chi phí truyền thông và việc phân công công việc không cân bằng giữa các bộ xử lý. Do đó thời gian chạy chương trình sẽ là:
Hình 3.8:Khả năng tăng tốc độ: trường hợp thực tế.
- Tăng tỉ lệ (thành phần) được song song hóa của chương trình.
- Phân công công việc một cách công bằng cho các bộ xử lý.
- Giảm tới mức tối thiểu thời gian truyền thông.