MCP ile bağlan →

Hesaplamaya Girin

Formül

Reklam

Sonuç

Genel Hızlanma
4,706×
seri sürüme kıyasla bu kat daha hızlı
Azami teorik hızlanma (s → ∞) 10×
Paralel verimlilik 58,82%

Amdahl Yasası nedir?

Amdahl Yasası, bilgisayar mimarı Gene Amdahl tarafından 1967 yılında ortaya konmuştur ve 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 biri olan bu yasa, mühendislerin daha fazla işlemci, çekirdek veya iş parçacığı (thread) eklemenin gerçekten değip değmeyeceğine karar vermesine yardımcı olur. İşin püf noktası şudur: Bir programın paralelleştirilemeyen seri kısmı, paralel kısma ne kadar kaynak ayırırsanız ayırın, programın ne kadar hızlı çalışabileceğini nihai olarak sınırlar.

Bir programın paralelleştirmeden önce ve sonra seri ve paralel bölümlerini gösteren çubuk diyagram
Amdahl Yasası çalışma süresini sabit bir seri kısma \((1 - p)\) ve işlemci sayısı arttıkça küçülen paralel kısma \((p)\) ayırır.

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

İki değer girin: Programınızın paralel oranı (işlemcilere dağıtılabilen iş yüzdesi) ve paralel kısmın hızlanması; bu genellikle o kısmı çalıştıran işlemci ya da çekirdek sayısıdır. Hesaplayıcı; genel hızlanmayı, paralel hızlanma sonsuza giderse ulaşılabilecek azami teorik hızlanmayı ve paralel verimliliği döndürür.

Formülün açıklaması

Denklem şöyledir:

$$\text{Hızlanma} = \dfrac{1}{(1 - p) + \dfrac{p}{s}}$$

Burada p paralel oranı (0 ile 1 arasında), s ise bu orana uygulanan hızlanmadır. \((1 - p)\) terimi, hızlandırılamayan seri kısmı temsil eder. s sonsuza yaklaştıkça hızlanma \(\dfrac{1}{1 - p}\) değerine yakınsar; bu da seri kısmın dayattığı kesin tavandır.

Farklı paralel oranlar için işlemci sayısı arttıkça düzleşen hızlanma eğrileri
İşlemci sayısı arttıkça hızlanma sabitlenir — seri oran maksimum kazancı sınırlar.

Çözümlü örnek

Diyelim ki bir programın %90'ı paralelleştirilebilir (\(p = 0{,}9\)) ve onu 8 işlemcide çalıştırıyorsunuz (\(s = 8\)). Bu durumda payda

$$(1 - 0{,}9) + \dfrac{0{,}9}{8} = 0{,}1 + 0{,}1125 = 0{,}2125$$

olur; yani hızlanma \(\dfrac{1}{0{,}2125} \approx 4{,}71\times\) çıkar. Sonsuz sayıda işlemciyle bile azami hızlanma yalnızca \(\dfrac{1}{0{,}1} = 10\times\) olabilir. Bu da %10'luk seri kısmın performansı nasıl sınırladığını açıkça gösterir.

Sonucunuzu Yorumlama

Hızlanma değeri, programın \(s\) işlemciyle çalıştığında tek bir işlemciye kıyasla kaç kat daha hızlı çalıştığını söyler. 4× hızlanma, paralelleştirilmiş iş yükünün özgün zamanın dörtte birinde tamamlandığı anlamına gelir. Amdahl Yasası sabit bir problem boyutu kabul ettiği için, hızlanma seri kısım \(1-p\) ile sınırlıdır ve bu kısım hızlandırılamaz.

Sonsuz işlemci tavanı, \(1/(1-p)\), sınırsız donanımla elde edilebilecek maksimum hızlanmadır. Örneğin, işin %95'i paralelleştirilebilir ise, tavan \(1/(1-0.95) = 20\times\) olur; bir milyon çekirdek bile 20×'i geçemez. Bu, planlama için en önemli tek sayıdır: ek işlemcilere yapılan herhangi bir yatırımın üst sınırını belirler.

Paralel verim, işlemcilerin ne kadar iyi kullanıldığını ölçer ve hızlanmanın işlemci sayısına bölümü olarak tanımlanır, \(\text{verim} = \text{Hızlanma}/s\). %1,0 (100%) verim mükemmel doğrusal ölçeklemedir; pratikte çekirdek eklediğinizde düşer. Örneğin, 8 çekirdekte %90 paralelleştirilebilir kod 4,71× hızlanma verir, bu nedenle verim \(4.71/8 \approx 59\%\) olur — eklenen her çekirdek giderek daha az yararlı iş yapar.

İşlemci ekleme, ek çekirdek başına marjinal hızlanma maliyete göre küçük hale geldiğinde ve verim kabul edilebilir eşiğin altına düştüğünde (pratikte genellikle %50–70%) faydalı olmaktan çıkar. Hızlanma tavanına yaklaştıkça, ek donanım neredeyse hiçbir şey vermez. Tavanın kendisini yükseltmek için, algoritmayı daha fazla paralelleştirerek veya senkronizasyon ve G/Ç'yi azaltarak seri kısımı azaltmalısınız — daha fazla çekirdek satın almak yerine. Ayrıca Amdahl Yasası iletişim ve koordinasyon yükünü görmezden gelir, bu nedenle gerçek dünyada hızlanmalar bu teorik maksimumlardan genellikle daha düşüktür.

Sıkça sorulan sorular

İşlemci sayısını ikiye katlamak neden hızı ikiye katlamaz? Çünkü seri kısım, işlemci sayısından bağımsız olarak hep aynı hızda çalışır; bu nedenle onun süresi baskın darboğaz haline gelir.

Paralel verimlilik nedir? Hızlanmanın işlemci sayısına bölünmesiyle elde edilen, yüzde olarak ifade edilen bir değerdir; eklenen kaynakları ne kadar iyi kullandığınızın ölçüsüdür.

Gustafson Yasası'ndan farkı nedir? Gustafson Yasası, problem boyutunun işlemci sayısıyla birlikte ölçeklendiğini varsayar ve genellikle Amdahl'ın sabit iş yükü modeline göre daha iyimser bir tablo sunar.

Son güncelleme: