Perancang sistem komputer mencari cara untuk meningkatkan
kinerja sistem dengan kemajuan teknologi atau perubahan desain. Contohnya yaitu penggunaan prosessor parallel, penggunaan hierarki chache memori, dan peningkatan waktu akses memori serta kecepatan transfer I / O karena peningkatan teknologi. Dalam semua kasus ini, penting untuk dicatat bahwa percepatan dalam satu aspek teknologi atau desain tidak menghasilkan peningkatan kinerja yang sesuai. Batasan ini secara ringkas diungkapkan oleh hukum Amdahl. Hukum Amdahl pertama kali diusulkan oleh Gene Amdahl pada tahun 1967 ([AMDA67],[AMDA13]) dan berkaitan dengan potensi percepatan suatu program menggunakan beberapa prosessor dibandingkan dengan satu prosessor. Pertimbangkan sebuah program yang berjalan pada prosessor tunggal sehingga sebagian kecil (1-f) dari waktu eksekusi melibatkan kode yang secara inheren berurutan, dan sebagian kecil f yang melibatkan kode yang secara parallel tak terbatas tanpa penjadwalan overhead. Biarkan T menjadi total waktu eksekusi program menggunakan prosessor tunggal. Kemudian speedup menggunakan prosessor parallel dengna prosessor N yang sepenuhnya memanfaatkan bagian parallel dari program waktu untuk menjalankan program dengan prosessor tunggal T ( 1−f ) +Tf 1 speedup= = = waktu untuk menjalankan program dengan prosessor∥N Tf f T ( 1−f )+ ( 1−f ) + N N Persamaan ini diilustrasikan dalam gambar dan dapat ditarik dua kesimpulan yaitu : 1. Ketika f kecil, pengunaan prosessor parallel memiliki efek yang kecil 2. Ketika N mendekati tak terhingga,speedup terikat oleh 1/ (1-f), sehingga ada pengembalian yang semakin berkurang karena menggunakan lebih banyak prosessor Kesimpulan tersebut terlalu pesimistis sebuah pernyataan pertama kali diajukan dalam [GUST88]. Misalnya, server dapat mempertahankan beberapa utas atau beberapa tugas untuk menangani beberapa klien dan menjalankan beberapa utas atau tugas secara parallel hingga batas jumlah prosessor. Banyak aplikasi database melibatkan perhitungan data dalam jumlah besar yang dapat dipecah menjadi beberapa tugas parallel Ilustrasi hukum amdahl Namun demikian hukum amdahl menggabarkan masalah yang dihadapi industri dalam pengembangan mesin multicore dengan jumlah inti yang terus bertambah: Software yang berjalan pada mesin tersebut harus disesuaikan dengan lingkungan eksekusi yang parallel untuk mengeksploitasi kekuatan pemprosesan parallel.
Hukum amdahl dapat digeneralisasi untuk mengevaluasi setiap
desain atau peningkatan teknis dalam sistem komputer. Pertimbangkan segala peningkatan pada fitur sistem yang menghasilkan peningkatan kecepatan. Speedup dapat dinyatakan sebagai berikut: kinerja setelah peningkatan waktu eksekusi sebelum peningkatan speedup= = kinerja sebelum peningkatan waktu eksekusi setelah peningkatan
Hukum amdahl untuk multiprosessor
Misalkan fitur sistem digunakan selama eksekusi, sebagian kecil
dari waktu f, sebelum peningkatan, dan speedup fitur tersebut setelah peningkatan adalah SUf , maka speedup keseluruhan system adalah 1 speedup= f ( 1−f ) + SUf