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.
Amdahl Yasası'nın genelleştirilmiş hali:
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.
Her bir oran ve hızlandırma için bir etiket görevi görür.
Sistem değişikliğinden kaynaklanan hızlanma veya yavaşlamaların sayısı.
Tanım
Amdahl Yasası, bir algoritmanın paralel gerçeklemelerinin, seri gerçeklemesi ile arasındaki beklenen hızlanma değerlerinin ilişkisi için bir modeldir. Örneğin, eğer bir algoritmanın paralel gerçeklemeleri, algoritmanın işlemlerinin 12%'sini keyfi olarak hızlı çalıştırabiliyorsa ve işlemlerin geri kalan 88%'i paralelleştirilebilir değilse, Amdahl Yasası'na göre, paralelleştirilmiş versiyonun azami hızlanması, paralelleştirilmemiş gerçeklenmelerden
kadar hızlıdır.
Daha teknik olmak gerekirse bu yasa, işlemlerin Plik bir oranının etkilenerek S kadar hızlandırıldığı bir noktada erişilebilecek hızlanmayı hesaplamada kullanılır. Örneğin, eğer bir iyileştirme süreci, işlemlerin 30%'unu hızlandırabiliyorsa, P 0,3; ve eğer bu süreç, etkilenen bölümü eskisine göre iki kat daha hızlı çalıştırabiliyorsa, S 2 olacaktır. Amdahl Yasası'na göre, bu iyileştirmenin toplam hızlandırması;
olacaktır.
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.
Ardışık Bir Programda Hızlanma
Bir bölümü kat kadar hızlandırılmış bir ardışık programın azami hızlanması,
Azami Hızlanma olarak bulunur. Burada (), hızlandırmadan önce, hızlandırılmamış bölümün tuttuğu süredir. Örneğin:
Eğer B bölümü (mavi) 5 kat hızlandırılırsa, p = 5 (kırmızı) = 3 saniye, (mavi) = 1 saniye ve

Azami hızlanma
Eğer A bölümü (kırmızı) 2 kat hızlandırılrsa, p = 2, (mavi) = 1 saniye, (kırmızı) = 3 saniye ve

Azami hızlanma (Daha iyi!)
Buna göre, A'yı 2 kat hızlandırmak, B'yi 5 kat hızlandırmaktan daha iyi sonuç vermektedir.
A'yı 2 etmeniyle hızlandırmak, toplam program hızında +60% 'lık bir artış sağlamaktadır.
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.
Paralellik
Paralelliğin özel bir durumunda Amdahl yasası der ki; eğer F ardışık (paralel değil) bir işlemin bir parçasıysa ve (1 - F) paralelleştirilebilir kısımsa, N işlemcili kullanarak azami hızlanma:
dır. Limitini aldığımızda N sonsuza yönelir, azami hızlanma 1/Fe yönelir. Uygulamada maliyet/başarım oranı, (1-F)/N, Ften küçük olduktan sonra N arttıkça düşer.
Örneğin, F %10 ise problemin azami hızlanması 10un çarpanları kadar olabilir. Nin 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 Fin ç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.
Sınırlamalar
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 Nden 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ı
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.