Tentang Amdahl’s Law
Math
Aldimhr • 16-08-2025 • 4 min read
Amdahl’s Law — Seberapa cepat seluruh sistem bisa berjalan, dibatasi oleh bagian sistem yang tidak bisa kita percepat.
Gagasan utama dari amdahl’s law adalah ketika mempercepat satu bagian dari sistem, dampaknya terhadap kinerja sistem secara keseluruhan bergantung pada seberapa signifikan bagian tersebut dan seberapa besar percepatannya.
Konsep
Contoh kasus, dalam memasak Mie Instan kita memerlukan beberapa langkah dan setiap langkah memiliki waktu masing masing seperti pada table berikut
Action | Time (m) | Percentage (%) |
---|---|---|
Mendidihkan Air | 5 | 50 |
Memasak Mie | 3 | 30 |
Memakan Mie | 2 | 20 |
Total | 10 | 100 |
Lalu, kita melakukan percepatan pada langkah Memasak Mie, misalnya
Action | Time (m) | Percentage (%) |
---|---|---|
Mendidihkan Air | 5 (tetap) | 62.5 |
Memasak Mie | 1 (3x lebih cepat) | 12.5 |
Memakan Mie | 2 (tetap) | 25 |
Total | 8 | 100 |
Secara umum kita bisa mendapatkan speedup dengan rumus
$S = \frac{Waktu Lama}{Waktu Baru}$
Tapi, Amdahl’s Law punya model spesifik yang memecah total waktu lama menjadi dua, yaitu
- Bagian yang dipercepat → Proporsi α dari total waktu lama
- Bagian yang tidak dipercepat → Proporsi (1 - α) dari total waktu lama
Jika diketahui:
-
$T_{old}$ = Total waktu yang dibutuhkan sebelum percepatan
-
$T_{new}$ = Total waktu yang dibutuhkan setelah percepatan
-
$α$ = Proporsi dari waktu lama yang dipercepat
Contoh: 0.3, berarti 30% dari waktu lama akan dipercepat
-
$k$ = Faktor percepatan pada bagian yang kita improve
Contoh: $k$ = 4, artinya bagian itu berjalan 4x lebih cepat
-
Bagian yang dipercepat, bisa dihitung dengan
$αT_{old}$
Misalnya, dari contoh diatas, diketahui
α = 30% atau 0.3
$T_{old}$ = 10 Menit
Maka, bagian yang dipercepat adalah $0.3\ 10=3\ menit$
-
Bagian yang tidak dipercepat
$(1-α)T_{old}$
Misalnya, dari contoh diatas, diketahui
α = 30% atau 0.3
$T_{old}$ = 10 Menit
Maka, bagian yang tidak dipercepat adalah $(1-0.3)10=7\ menit$
-
Dengan definisi sebelumnya, kita bisa gabungkan keduanya, sehingga total waktu sebelum percepatan dapat kita hitung dengan menambahkan bagian yang tidak dipercepat dan bagian yang dipercepat
$T_{old} = αT_{old} + (1-α)T_{old}$
-
Sekarang, dengan asumsi kita melakukan percepatan $k$ kali dari waktu sebelumnya, kita bisa cari $T_{new}$
$T_{new} = (1-α)T_{old}+\frac{αT_{old}}{k}$
Misalnya, dari contoh diatas, diketahui
$αT_{old} = 3\ menit$ (Bagian yang dipercepat)
$(1-α)T_{old} = 7\ menit$ (Bagian yang tidak dipercepat)
$k = 3$ (Melakukan percepatan 3x dari waktu awal)
maka,
$T_{new} = 7 + \frac{3}{3} = 7 + 1=8\ menit$
Jadi, total waktu setelah percepatan adalah 8 menit
-
Kita kembali ke rumus umum
$S = \frac{T_{old}}{T_{new}}$
Setelah kita mengetahui $T_{old}$ dan $T_{new}$ kita bisa menuliskan
$S = \frac{T_{old}}{(1-α)T_{old}+\frac{αT_{old}}{k}}$
Jika disederhanakan akan menjadi
$S = \frac{1}{(1-α)+\frac{α}{k}}$
Ini adalah rumus Amdahl’s Law
Sekarang, kita coba hitung dari kasus diatas. Jika, diketahui
α = 30% atau 0.3
k = 3 (3x kali lebih cepat)
maka,
$S = \frac{1}{(1-0.3) + \frac{0.3}{3}}$
$S = \frac{1}{0.8} = 1.25$
Jadi, keseluruhan proses memasak mie berhasil dipercepat 1.25x
Practice Problem
-
Seorang supir truk mengangkut kentang dari Boise, Idaho ke Minnepolis, Minnesota, total jaraknya 2500 km. Rata-rata truk berjalan 100 km/hr dan membutuhkan waktu total 25 jam.
-
Jika 1500 km dari total perjalanan truk berjalan dengan kecepatan 150 km/hr, maka berapa speedup dari total perjalanan?
$α = \frac{1500}{2500} = 0.6$
$k = \frac{150}{100} = 1.5$
maka,
$S = \frac{1}{(1-α) + \frac{α}{k}}$
$S = \frac{1}{(1-0.6) + \frac{0.6}{1.5}} = \frac{1}{0.8} = 1.25$
Jadi, total percepatan yang dilakukan jika truk berjalan 150km/hr di 1500km dari total perjalanan sebesar 1.25x
-
Seberapa cepat truk harus berjalan di 1500km perjalanan, jika kita melakukan percepatan 1.67x?
α = 0.6, $S$ = 1.67
-
Cari tahu total waktu yang dibutuhkan setelah percepatan
$S = \frac{T_{old}}{T_{new}}$
$1.67 = \frac{25}{T_{new}}$
$T_{new} = \frac{25}{1.67}=14.97 =15\ jam$
-
Karena sisa perjalanan (2500 - 1500 = 1000 km) berjalan di 100km/jam, maka total waktu yang dibutuhkan adalah
$\frac{1000}{100}=10\ jam$
jadi total waktu untuk 1500 km adalah 15 -10 = 5 jam
-
Untuk mencari tahu kecepatan di 1500 km selama 5 jam adalah
$\frac{1500}{5} = 300\ km/jam$
Jadi, truk harus berjalan 300 km/jam di 1500 km agar mencapai percepatan 1.67x
-
-
-
Perusahaan menufaktor mobil telah berjanji kepada pelanggan untuk rilis mesin baru dengan 4x lebih cepat dari sebelumnya. Setelah dilakukan analisa, 90% bagian mesin dapat ditingkatkan. Berapa banyak percepatan (k) yang diperlukan agar memenuhi target performa mesin secara keseluruhan?
α = 0.9, $S$ = 4
$4 = \frac{1}{0.1 + \frac{0.9}{k}}$
$0.1+\frac{0.9}{k} = 0.25$
$\frac{0.9}{k} = 0.15$
$k = \frac{0.9}{0.15} = 6$
Jadi, 90% mesin harus ditingkatkan 6x agar mencapai 4x percepatan di seluruh performa mesin
Bryant, R. E., & O’Hallaron, D. R. (2021). Computer systems: A programmer’s perspective (4th ed.). Pearson.
- Math
- Amdahl's Law