MCP ile bağlan →

Hesaplamaya Girin

Formül

Reklam

Sonuç

Genel Hızlanma
3,077×
kat daha hızlı (orijinaline kıyasla)
Theoretical maximum speedup (s → ∞) 10×
Paralel verimlilik 76,92%

Amdahl Yasası nedir?

Amdahl Yasası, bilgisayar mimarı Gene Amdahl tarafından 1967'de ortaya konmuş olup, bir görevin yalnızca bir kısmı paralelleştirilebildiğinde elde edilebilecek azami teorik hızlanmayı öngörür. Paralel hesaplamanın temel taşlarından biridir ve mühendislerin daha fazla işlemci, çekirdek ya da iş parçacığına yatırım yapmadan önce gerçekçi beklentiler belirlemesine yardımcı olur.

Bir görevin sıralı kısma ve birden çok işlemcide işlenen paralel kısma bölündüğünü gösteren diyagram
Amdahl Yasası, bir programı sıralı bir kısım ile işlemcilere dağıtılabilen paralel bir kısma böler.

Bu hesaplayıcı nasıl kullanılır?

İki değer girin: paralel oran (p) — programın paralel çalıştırılabilen kısmının oranı (0 ile 1 arasında) — ve hızlanma faktörü (s), yani genellikle bu paralel kısma uygulanan işlemci veya çekirdek sayısı. Hesaplayıcı; genel hızlanmayı, teorik azami hızlanmayı ve paralel verimliliği döndürür.

Formülün açıklaması

Denklem şöyledir:

$$S = \dfrac{1}{(1 - p) + \dfrac{p}{s}}$$

Buradaki \((1 - p)\) terimi, hiçbir şekilde hızlandırılamayan seri (sıralı) orandır. \(s\) çok büyüdükçe \(p/s\) sıfıra yaklaşır ve böylece hızlanma \(\dfrac{1}{1 - p}\) değeriyle sınırlanır. İşte bu yüzden %90'ı paralel olan bir program, ne kadar işlemci eklerseniz ekleyin, asla 10 kattan daha hızlı çalışamaz.

İşlemci sayısına karşı hızlanma eğrisinin bir üst sınırda düzleşmesi
Hızlanma işlemci sayısıyla artar ancak sıralı oranın belirlediği bir üst sınıra doğru düzleşir.

Çözümlü örnek

Bir programın %90'ının paralelleştirilebilir olduğunu (\(p = 0{,}9\)) ve 4 işlemci kullandığınızı (\(s = 4\)) varsayalım. Bu durumda payda \((1 - 0{,}9) + 0{,}9/4 = 0{,}1 + 0{,}225 = 0{,}325\) olur.

$$S = \dfrac{1}{0{,}325} \approx 3{,}08 \text{ kat}$$

Mümkün olan azami hızlanma \(\dfrac{1}{0{,}1} = 10\) kat, verimlilik ise \(3{,}08 / 4 \approx \%76{,}9\)'dur.

Sonucunuzu Yorumlama

Genel hızlanma, girdiğiniz işlemci sayısı \(s\) ile gerçekten elde ettiğiniz şeydir — örneğin, 4,71× sonucu, paralelleştirilmiş programın tek işlemcili sürümden yaklaşık 4,71 kat daha hızlı çalıştığı anlamına gelir. Maksimum hızlanma, \(1/(1-p)\), sınırsız sayıda işlemciye yaklaşırken ulaşabileceğiniz mutlak sınırdır. İkisi arasındaki fark, ne kadar yer kaldığını söyler: eğer genel hızlanmanız zaten maksimuma yakınsa, donanım eklenmesi pek yardımcı olmayacaktır.

Verimlilik şu soruyu yanıtlar: "Ödediğim işlemcileri ne kadar iyi kullanıyorum?" %100'e yakın verimlilik, her işlemcinin neredeyse tam bir hızlanma birimini katkı sağladığı anlamına gelir — kaynakların mükemmel kullanımı. Düşük verimlilik (örneğin %30'un altında), çoğu işlemcinin seri bölümde boş beklediği veya beklemede olduğu anlamına gelir, bu nedenle çok az işe yarayan donanım için ödeme yapıyorsunuz.

Seri kesir \(1-p\) belirleyici sınırdır. Küçük bir seri kesir bile performansı sıkı şekilde sınırlar: \(p=0,95\) olduğunda tavan sadece 20× dir, bu nedenle kabaca 16–32 işlemcinin ötesinde her yeni işlemci neredeyse hiçbir şey eklemez. Pratik bir deneme yanılma kuralı, verimlilik kabul edilebilir eşiğinizin altına düştüğünde (uygun maliyetli iş için sıklıkla %50–70%) işlemci eklemeyi durdurmaktır, çünkü bu noktadan sonra ortadan kaybolan kazanımlar için para harcıyorsunuz. Tavanı daha yükseltmek için, seri kesri azaltmanız gerekir — \(p\) artıran algoritmik değişiklikler, sadece çekirdek eklemenin çok ötesinde ödeme sağlar.

Temel Terimler & Değişkenler

  • Paralel kesir (\(p\)) — 0 ile 1 arasında ondalık olarak ifade edilen programın işlemciler arasında paralel olarak yürütülebilen iş oranı. 0,9 değeri, işyükünün %90'ının işlemciler arasında bölünebileceği anlamına gelir.
  • Seri kesir (\(1-p\)) — tek bir işlemci üzerinde sırayla çalışması gereken ve paralelleştirme tarafından hızlandırılamayan kısım. Bu kesir genel hızlanmanın sert üst sınırını belirler.
  • Paralel bölümün hızlanması (\(s\)) — paralelleştirilebilir bölümün hızlandırıldığı faktör, tipik olarak ona uygulanan işlemci veya çekirdek sayısına eşittir.
  • Genel hızlanma — tek işlemcili yürütme süresinin paralel yürütme süresine oranı, \(1/\big((1-p)+p/s\big)\). Bu, gerçek dünya performans kazanımıdır.
  • Maksimum hızlanma — \(s\) sınırdan bağımsız olarak büyüdükçe ulaşılan teorik limit \(1/(1-p)\), sadece seri kesir tarafından belirlenir.
  • Paralel verimlilik — genel hızlanmanın işlemci sayısına bölünmesi, \(\text{Hızlanma}/s\), yüzde olarak ifade edilir; her işlemcinin ne kadar etkili kullanıldığını ölçer.

Sıkça Sorulan Sorular

İşlemci eklemek neden giderek azalan kazanç sağlar? Çünkü seri kısım bir darboğaza dönüşür. Bu kısım baskın hâle geldiğinde, eklenen işlemcilerin neredeyse hiçbir faydası kalmaz.

Paralel verimlilik nedir? Hızlanmanın işlemci sayısına bölünmesiyle elde edilen ve yüzde olarak ifade edilen değerdir; her bir işlemcinin ne kadar verimli kullanıldığını gösterir.

Gustafson Yasası'ndan farkı nedir? Amdahl Yasası sabit bir problem boyutu varsayar; Gustafson Yasası ise problemin işlemci sayısıyla birlikte ölçeklendiğini varsayarak daha iyimser sonuçlar verir.

Son güncelleme: