Dört çekirdekli bir 3GHz işlemcinin hiçbir zaman 12GHz tek çekirdekli kadar hızlı olmamasının ana nedeni, bu işlemcide çalışan görevin nasıl çalıştığını, yani tek iş parçacıklı veya çok iş parçacıklığını yapmaktır. Amdahl Yasası , yürüttüğünüz görevlerin türleri dikkate alındığında önemlidir.
Eğer doğası gereği doğrusal olan ve tam olarak adım adım yapılması gereken bir göreviniz varsa (çok basit bir program)
10: a = a + 1
20: goto 10
Daha sonra görev, büyük ölçüde önceki geçişteki sonuca bağlıdır ve 'a'
her kopyanın değeri 'a'
farklı zamanlarda alacağından ve farklı şekilde geri yazdığından değerinin bozulmasına neden olmadan birden fazla kopyasını çalıştıramaz . Bu, görevi tek bir iş parçacığı ile sınırlandırır ve böylece, herhangi bir zamanda yalnızca tek bir çekirdekte çalışabilir, eğer birden fazla çekirdek üzerinde çalışacak olsaydı, senkronizasyon bozulmaları olur. Bu, onu çift çekirdekli bir sistemin cpu gücünün 1 / 2'si veya dört çekirdekli bir sistemde 1/4 ile sınırlar.
Şimdi şöyle bir görevi üstlen:
10: a = a + 1
20: b = b + 1
30: c = c + 1
40: d = d + 1
50: goto 10
Tüm bu satırlar bağımsızdır ve birincisi ve aynı anda çalıştırılacak olan 4 ayrı programa ayrılabilir, her biri herhangi bir senkronizasyon problemi olmadan çekirdeklerden birinin gücünden tam olarak yararlanabilecek, burası Amdahl Kanunu içine gelir.
Yani kaba kuvvet hesaplamaları yapan tek bir dişli uygulamanız varsa, tek bir 12 GHz işlemci, bir şekilde ayrı parçalara bölünmüş ve çoklu iş parçacıklı bir şekilde bölünmüş hale getirebilirseniz, 4 çekirdeğin birbirine yaklaşabileceğini ancak tam olarak erişemediğini düşünüyorsanız, Amdahl Yasasına göre aynı performans.
Çok işlemcili bir sistemin size sağladığı temel şey, duyarlılıktır. Sıkı çalışan tek bir çekirdekli makinede, sistem çoğu zaman bir görev tarafından kullanılabildiği için durgun görünebilir, diğer görevler ise sadece büyük görevler arasında kısa aralıklarla çalışır, bu da halsiz veya titiz görünen bir sistem ortaya çıkarır . Çok çekirdekli bir sistemde ağır görev bir çekirdek alır ve diğer tüm görevler diğer çekirdeklerde oynar, işlerini hızlı ve verimli bir şekilde yapar.
"6 çekirdek x 0.2GHz = 1.2Ghz" argümanı, görevlerin tamamen paralel ve bağımsız olduğu durumlar dışında her durumda çöptür. Son derece paralel olan çok sayıda görev var, ancak yine de bir çeşit senkronizasyon gerektiriyor. El freni , mevcut tüm CPU'ları kullanmada çok iyi bir video kodlayıcıdır, ancak diğer iş parçacıklarını verilerle dolu tutmak ve bunların yapıldığı verileri toplamak için bir çekirdek işlem gerektirir.
- Her bir çekirdek aslında saniyede x hesaplama yapıyor, bu nedenle toplam hesaplama sayısı x (çekirdek).
Her bir çekirdek, iş yükünün paralel olarak uygun olduğu varsayımıyla, saniyede x hesaplama yapabilir.
- Saat hızı, işlemcinin bir saniyelik boşlukta geçtiği döngü sayısının bir sayımıdır, böylece tüm çekirdekler aynı hızda çalıştığı sürece, her bir saat döngüsünün hızı kaç tane çekirdek olursa olsun aynı kalır . Başka bir deyişle, Hz = (core1Hz + core2Hz + ...) / çekirdekler.
4 x 3 GHz = 12 GHz, matematiğin işe yaradığını, ancak elmaları portakallarla karşılaştırdığınızı ve sadece toplamların doğru olmadığını, GHz'in her durum için bir araya getirilemediğini düşünmenin yanlış olduğunu düşünüyorum. 4 x 3GHz = 4 x 3GHz olarak değiştirirdim.