Apa itu Hukum Amdahl?
Hukum Amdahl — juga dikenal sebagai argumen Amdahl — adalah sebuah observasi intuitif yang disertai dengan rumus matematis. Dinamai berdasarkan ilmuwan komputer Gene Amdahl, observasi ini menyatakan bahwa peningkatan kinerja yang dapat diperoleh melalui pemrosesan paralel terbatas oleh bagian dari sistem yang secara inheren bersifat sekuensial, yaitu serangkaian operasi yang harus dijalankan secara berurutan.
Rumus yang memprediksi peningkatan kinerja maksimum yang dapat diperoleh dari komputasi paralel adalah sebagai berikut:
Smax = 1 / ((1-p) + p/s)
Di mana:
- Smax adalah peningkatan kinerja teoritis maksimum dalam waktu eksekusi keseluruhan tugas. Jika Smax adalah 2, itu berarti tugas dapat diselesaikan dua kali lebih cepat.
- p adalah proporsi waktu eksekusi keseluruhan yang dihabiskan oleh bagian tugas yang mendapat manfaat dari pemrosesan paralel.
- 1-p adalah bagian dari waktu eksekusi keseluruhan yang harus dijalankan secara sekuensial.
- s adalah peningkatan kinerja, atau percepatan, dari bagian tugas yang mendapat manfaat dari pemrosesan paralel.
Hukum Amdahl dikaitkan dengan Amdahl, seorang ilmuwan komputer Amerika dan pengusaha teknologi tinggi, yang pertama kali bekerja pada komputer mainframe di IBM sebelum mendirikan perusahaannya sendiri, termasuk Amdahl Corp. Sebagian besar pekerjaannya berfokus pada peningkatan kinerja komputer menggunakan berbagai teknik, termasuk pemrosesan paralel.
Pada tahun 1967, Amdahl memberikan presentasi di American Federation of Information Processing Societies (AFIPS) Spring Joint Computer Conference yang menjelaskan cara memprediksi batasan pemrosesan paralel. Ide-ide yang diuraikan dalam presentasinya kemudian dikenal sebagai Hukum Amdahl.
Rumus ini dapat diterapkan dalam arti yang lebih luas pada teknik lain yang meningkatkan latensi, bukan hanya dalam komputasi paralel. Jika suatu tugas terdiri dari bagian yang mendapat manfaat dari peningkatan dan bagian lain yang tidak mendapat manfaat dari peningkatan yang sama, Hukum Amdahl dapat memprediksi penghematan maksimum dalam waktu eksekusi keseluruhan tugas.
Contoh penerapan Hukum Amdahl
Hukum Amdahl dapat diilustrasikan dengan contoh sederhana. Jika sebuah program terdiri dari sekumpulan instruksi yang memerlukan 10 jam untuk dijalankan secara berurutan, dan ada bagian program berdurasi satu jam yang tidak dapat diparalelkan, maka batas maksimum peningkatan kinerja yang dapat diharapkan adalah mendekati 10 kali lebih cepat. Ini karena tidak peduli seberapa banyak Anda memparalelkan sembilan jam yang bisa dijalankan secara paralel, Anda tetap harus menjalankan satu jam yang bersifat sekuensial.
Perbedaan antara Hukum Amdahl dan Hukum Gustafson
Hukum Gustafson — juga disebut sebagai Hukum Gustafson-Barsis — tidak membantah Hukum Amdahl, melainkan menambahkan prediksi tentang peningkatan waktu eksekusi seiring dengan bertambahnya jumlah inti pemrosesan yang digunakan dalam tugas yang mendapat manfaat dari komputasi paralel. Rumus ini dimulai dengan kinerja teoritis tugas pada satu prosesor sebagai dasar dan kemudian membuat prediksi tentang kinerja sistem saat lebih banyak prosesor ditambahkan.
Rumus dan ide terkait pertama kali dijelaskan oleh John L. Gustafson dan rekannya Edwin H. Barsis dalam artikel mereka yang berjudul “Reevaluating Amdahl’s Law,” yang diterbitkan pada Mei 1988 dalam jurnal Communications of the ACM.
Hukum Amdahl mengasumsikan bahwa ukuran masalah tetap. Namun, dalam praktiknya, ketika lebih banyak sumber daya tersedia, programmer cenderung menyelesaikan masalah yang lebih kompleks untuk memanfaatkan peningkatan daya komputasi sepenuhnya. Jadi, dalam kenyataannya, waktu yang dihabiskan pada bagian tugas yang mendapat manfaat dari komputasi paralel sering kali tumbuh lebih cepat dibandingkan waktu yang dihabiskan pada bagian tugas yang harus dijalankan secara sekuensial.
Sebaliknya, Hukum Gustafson mengasumsikan bahwa meskipun waktu eksekusi keseluruhan terbatas — sebagaimana diprediksi oleh Amdahl — masalah yang lebih besar dapat diselesaikan dalam waktu yang sama dengan meningkatkan jumlah prosesor.