Amdahl yasası

Bilgisayar mimarı Gene Amdahl'ın ismini alan Amdahl Yasası, sistemin bir parçasının hızlandırılması sonucunda, sistemin bir bütün olarak ele alındığında toplam hızlanmasının ne olacağını hesaplamak için kullanılır. Sıklıkla, birden fazla işlemci kullanıldığında erişilebilecek azami hızlanmayı tahmin etmek için paralel hesaplamalarda da kullanılır.

Burada;Pk: Hızlandırılacak ya da yavaşlatılacak buyrukların, tüm buyruklara oranı.Sk: Hızlandırma çarpanı. Bu çarpan için, 1 temel kabul edilir. Çarpan 1 olduğunda, hızlanma ya da yavaşlama yoktur.

Bu formülün nasıl çıkarıldığını görmek için; eski işlem süreci süresinin 1 birim olduğunun varsayalım. Yeni işlem sürecinin alacağı zaman, hızlandırılmamış buyrukların işlenmesi için gerek süre (yani 1 - P) ile hızlandırılmış buyrukların işlenmesi için gereken sürenin toplanmasıyla elde edilir. Hızlandırılmış buyrukların işlenmesi için gereken süre, hızlandırılmış bölümün, hızlanmadan önce aldığı sürenin hızlanma katsayısına bölünmesi ile elde edilir. Yani P/S ile hesaplanır. Toplam hızlanma ise, hızlanmadan önce işlem için gereken sürenin, hızlanmadan sonra gereken süreye bölünmesi ile bulunur. Amdahl Yasası'nın gerektirdiği formül de tam olarak bunu yapmaktadır.

Başka bir örneği ele alacak olursak: Bize, dört bölüme ayrılmış bir işlem verilmiş olsun, ve bu bölümlerin toplam buyruk sayısına oranları şu şekilde olsun: P1 = 11%, P2 = 18%, P3 = 23%, P4 = 48%. Görüldüğü gibi, bu oranların toplamı 100%'e ulaşmaktadır. Verilere göre, P1'de hızlanma veya yavaşlama olmamaktadır, buna göre S1 = 1 alınır. P2 5 kat hızlanmaktadır, yani S2 = 5, P3 20 kat hızlanmaktadır, yani S3 = 20, P4 ise 1.6 kat hızlanmaktadır ve S4 = 1.6 alınmaktadır. formülünü kullanarak, çalışma zamanını olarak hesaplarız. Buna göre çalışma zamanı, hızlanmadan önceki zamanın yarısından biraz daha azdır. Eski çalışma zamanı, elbette ki 1 birim olarak kabul edilmiştir. Toplam hızlanmayı hesaplamak için, formülünü kullanırız, ve toplam hızlanmanın, 2 kattan biraz daha fazla olduğunu görürüz. 20 kat ve 5 kat hızlanan buyrukların, toplam işlem içindeki oranlarının az olması nedeniyle, toplam hızlanmaya fazla bir etkisi olmadığını görebiliyoruz.

B'yi 5 etmeniyle hızlandırmak ise, ki bu süreç A'yı hızlandırmaktan daha fazla efor gerektirecektir, toplam program hızında yalnızca +25%'lik bir artış sağlayacaktır.

Örneğin, F %10 ise problemin azami hızlanması 10’un çarpanları kadar olabilir. N’in büyüklüğünün bir önemi yoktur. Bunun için, paralel işlem sadece ya az sayıda işlemci için ya da F‘in çok küçük olduğu problemlerde kullanışlıdır. Paralel programlamanın büyük bir kısmı F değerini olabilecek en küçük değerde tutmayı amaçlar.

Amdahl’ın yasasına göre, kuramsal azami hızlanma, N işlemci ile N olur. Bu doğrusal (lineer) hızlanma olarak adlandırılır. Ancak uygulamada N işlemcisi olan bir makinede N’den fazla hızlanma olması görülmeyen bir durum değildir. Buna üstün doğrusal hızlanma denir. Bunun olası bir nedeni önbellek toplanmasıdır. Paralel bilgisayarlarda, sadece işlemci sayılarının değiştirilmesiyle değil, farklı işlemcilerin toplanan önbelleklerin büyüklüğü ile yapılır. Daha büyük toplanan önbellek boyutu ile daha fazla veri kümesi veya veri kümesinin tamamı önbelleklere sığabilir. Böylece bellek erişim zamanı düşer ve ek hızlanma sağlanır.

Amdahl’ın başparmak kuralı, bilgisayarın desteklediği her saniye başına buyruk için 1 bayt bellek ve 1 bit/saniye G/Ç gerektiğidir. Bu Amdahl’ın Diğer Kanunları' başlığı altında işlenmektedir.