Daha yüksek çekirdek sayısı veya daha yüksek saat hızı bilgisayarın performansı için daha mı faydalıdır? [kapalı]


16

Silikon maliyetlerinin azalması ve artan tüketici ihtiyaçları ile üreticiler iki şeyden birini itiyor gibi görünüyor: saat hızı ve / veya çekirdek sayısı. İşlerin gidişatıyla, artık işlemcilerin saat hızının arttığı görülmüyor, ancak işlemci çekirdeği sayısı artıyor.

Sadece birkaç yıl önce hatırlıyorum, güzel hızlı tek çekirdekli Pentium 4 işlemcim vardı. Bugüne kadar ileri gidiyorum ve tek çekirdekli bir işlemci bile satın alabileceğinizi sanmıyorum ( cep telefonlarında bile çok çekirdekli işlemcilerdeki artıştan bahsetmiyorum ). İşlerin gidişatında, birkaç yıl içinde yüzlerce çekirdeğe sahip bilgisayarlar bulabiliriz (ve birçok işletim sisteminin zaten bunu desteklediğini biliyorum).

Saat hızını artırmak veya çekirdek sayısını artırmak bir sistemin genel performansında daha faydalı mıdır? Hep birlikte çalışan yüzlerce çekirdeğe girdiğimizi ya da bugün sahip olduğumuzdan on kat daha yüksek saat hızları aldığımızı varsayalım (fiziksel olarak mümkün olup olmadığına bakılmaksızın).

Birinden veya diğerinden en fazla fayda sağlayacak bazı yaygın işlem örnekleri (örneğin, şifreleme, dosya sıkıştırma, görüntü / video düzenleme) nelerdir? Bazı süreçler var mıdır olabilir onların paralellik artırarak hızlandırdı (teknik nedenlerle) şu anda değil, ama?


Varsayımsal işlemcinin tam olarak aynı çekirdek tasarımına (kelime boyutu, adres bit genişliği, bellek veri yolu boyutu, önbellek, vb ...) sahip olduğunu varsayalım, buradaki tek değişkenler saat hızı ve çekirdek sayısıdır. Ve yine, bir, iki, hatta dört çekirdekten bahsetmiyorum - onlarca ila yüzlerce düşünün.


9
Her şey o bilgisayarda ne yapmak istediğinize bağlı olacaktır. Birden fazla çekirdek bazı şeyler için iyidir, diğerleri için daha yüksek saat hızları.
ChrisF

@ChrisF Cevabı bizzat biliyorum, ama bunu iki nedenden dolayı soruyorum. Birincisi, bu bilgiyi web sitesinde bulundurmak (sadece çift veya dört çekirdekli işlemcilerle ilgili olarak sorulduğunu gördüm) ve ikincisi insanlara "gelecekte" neyin geleceği hakkında bir fikir vermeye çalışmak ve denklemin her iki tarafındaki uygulamaların ne olduğunu gösterir.
Atılım


3
Bir pint yaparken konuşmak için iyi bir soru olsa da, hemen hemen iyi bir yığın değişim sorusu olmadığını söyleyebilirim .
EBGreen

1
Çok fazla değişken vardır, eğer ifs ve diğer parametreler + devam eden teknoloji, belirli bir süreden daha uzun bir süre için geçerli olacak bir özlü cevap geliştirmek için değişir. Bu, bir forum veya blog için ilginç bir konudur, ancak 'cevap' olarak sabitlenecek bir şey değildir. Bu nedenle kapatmak için oy verdim, bu yüzden ateşleme başlasın !!!
Linker3000

Yanıtlar:


12

Dikkate alınması gereken iki temel durum vardır:

  1. İşlemci, yalnızca tek bir program için hesaplamalar yapan bir bilgisayarla birlikte kullanılır

  2. İşlemci, aynı anda çalışan birden çok program için kullanılır

İlk durum, işlemci hızlı ve verimli bir şekilde hesaplama yapabilmek istediği için işlemci hızının daha önemli olduğu yerdir. Bu durumlar tipik olarak yoğun hesaplama işlemleri içindir, yani şifreleme / şifre çözme için asal sayıları hesaplama

İkincisi, her program ayrı bir çekirdeğe atanabildiğinden, her bir programı 'şişe boynundan' kurtarabileceğinden, birden fazla çekirdeğin kullanışlı olduğu yerdir. Günümüz dünyasında, ortalama bir kullanıcı bilgisayarlarını bir seferde birden fazla program için kullanacak ve böylece çok çekirdekli işlemeyi istenen bir şey haline getirecektir.

Ancak, çok çekirdekli ! = Her durumda daha yüksek hızlar veya daha yüksek performans. Çoğu program tek çekirdekli işlem * için yazıldığından , saat hızına bakmak hala önemlidir. Her ikisinin bir kombinasyonu dikkate alınmalıdır (diğer birçok faktörle birlikte) .


* Bazı programlar vardır ve umarım yakında aynı anda birden fazla çekirdeğin kullanılabileceği daha fazlası oluşturulur. Yazılımın geleceği bu " Paralel Programlama " ile bulunur:

Yazılım geliştiricileri artık tek iş parçacıklı uygulamaları hızlandırmak için tek başına saat hızlarını artıramaz; bunun yerine, rekabet avantajı elde etmek için, geliştiricilerin uygulamalarını dişli bir ortamda çalışacak şekilde nasıl doğru şekilde tasarlayacaklarını öğrenmeleri gerekir. Çok çekirdekli mimariler, iki veya daha fazla işlemci "yürütme çekirdeği" veya hesaplama motoru içeren ve uygun yazılımla birden çok yazılım iş parçacığının tamamen paralel yürütmesini sağlayan tek bir işlemci paketine sahiptir.

- Intel


Şimdiye kadar gördüğüm en iyi cevap +1. Bir çeşit paralel algoritma ile şifrelemeyi / şifre çözmeyi hızlandırmanın mümkün olup olmadığını biliyor musunuz (ya da böyle bir şey var mı)?
Atılım

2

Ben şahsen çekirdek sayısının gidilecek yol olduğunu düşünüyorum. Yazılım geliştirme, ağa bağlı sistemlere kaymıştır, bu nedenle artık yerel kaynaklar sizin için mevcut olan tek kaynak değildir. Şu anda nasıl çalıştığınızdaki en önemli faktör hangi ağın parçası olduğunuzdur.

Mobil geniş banda, sürekli bağlantıya, uzaktan erişime vb. Kaymaya dikkat edin. Bununla birlikte, sürekli bağlantı pil ömrünü gerektirir. Hangi CPU faktörlerinin pil ömrü için daha uygun olduğu tartışmalı olsa da (iş değerinin zamana göre klasik bir optimizasyon denklemine sahipsiniz), kişisel olarak düşünüyorum, eğer bir tane seçmek zorunda kalırsanız, daha fazla çekirdek seçerdim.

Intel artık talep üzerine çekirdekleri güçlendirmenize izin veriyor. Uyku çekirdeği olmadığı kadar optimal olmasa da, daha fazla çekirdek kullanma seçeneğine sahip olmak, aynı donanım platformundan daha fazla uygulama çalıştırma esnekliği sağlar.


2

ChrisF'in bir yorumda belirttiği gibi, duruma göre değişir. Ancak bunun gibi cevaplar gerçekten cevaplamadığı için, birinin diğerinden daha faydalı olacağı bazı senaryolar yapmaya çalışacağım:

Bahsettiğiniz ortak işlemlerin çoğunda, çekirdeklerin sayısı çok önemli olmayacaktır, çünkü işin çoğu tek bir iş parçacığında (bir seferde) gerçekleştirilebilen tek bir iş parçacığında yapılır. Bu tür işlemler için, tek ama çok güçlü bir çekirdek birkaç yavaş çekirdekten daha iyi performans gösterecektir. Hem şifreleme hem de dosya sıkıştırması bunun istisnası olabilir, ancak hangi algoritmaların kullanıldığına ve paralel olarak yürütülüp yürütülemeyeceğine çok bağlıdır.

Ancak, bugün bilgisayarlarda en sık yapılan görevlerden birini unuttunuz: tarama. Birkaç popüler tarayıcı, her sekmeyi ayrı bir işlemde açar (Chrome, bunu kullandığımdan eminim. (teorik olarak) bir çekirdek "kendisine" (işletim sistemi iş parçacıklarını ve şeylerini göz ardı ederek) ve başka bir tarayıcı sekmesi / penceresi açılmadığı kadar hızlı olmalısınız. Aynı anda çok sayıda sekmeye göz atan kişiler için, bu son derece hızlı CPU çekirdeği oluşturmak zorunda kalmadan ciddi bir performans iyileştirmesi olabilir.

Yavaş çekirdekli çok çekirdekli bir sistemin hızlı çekirdekli tek çekirdekli bir sistemden daha hızlı olup olmayacağını bilmenin anahtarı, aynı anda mı yoksa birkaç, ama ağır, çok şey mi yapacağınızı bilmektir . Bu, kullanıcıdan kullanıcıya çok farklı olacağından sorunuzun cevabı da değişecektir.


Diğer cevaplar da birkaç önemli noktaya dikkat çekiyor:

  • işlemci performansı artık saat hızı veya çekirdek sayısı ile ilgili değildir - işlemcinin diğer parçaları saat hızı ve çekirdek sayısı arttıkça şişe boyunlarına dönüşmektedir.
  • çoğu kullanıcı için, işlemci performansı başlangıçta şişe boynu bile değildir. Zamanınızı Google Dokümanlar gibi barındırılan uygulamalarda harcıyorsanız, ağ kartınızın hızı, işlemci çekirdeğiniz çekirdeklerinin hızından daha önemli olacaktır. Yüksek çözünürlüklü film malzemelerini izliyorsanız veya düzenliyorsanız, sabit disk performansı daha önemli olacaktır. Vb...

Bazı düşünceleri koymak ve aslında açıklamaları getirmek için +1, ama bir şeye dikkat çekmek istiyorum: evet, bazı tarayıcılar her sekmeyi ayrı bir işleme koydu , ancak bu işlem çökmesi durumunda yapılır. Tarayıcıların çoğu en azından her sekmeyi ayrı bir iş parçacığında çalıştırır ve işletim sistemleri farklı çekirdeklerde birden fazla iş parçacığı (aynı işlemden) çalıştırabilir.
Atılım

IE 9 çoklu işlem yöntemini uygular. Ancak, belirli sayıda işlem kullandıklarına ve bu işlemler arasındaki tüm sekmeleri paylaştıklarına inanıyorum. Bu, Chrome'un yapabileceğinden çok daha az işlemle sonuçlanırken, yine de, hepsi bir Redmond tingli yığınında gelirse yalnızca birkaç sekmeyi kaybedeceğiniz anlamına gelir.
music2my

Oh, ve aynı zamanda yazılıma da bağlı. İşletim sistemi genellikle trafik yönetimini idare edebilir ve mevcut çekirdeklere (grotty silikonumun içinde devam eden match.com'un zihinsel resmi) kendi kendine iş parçacıklı programlar (Adobe Creative Suite ürünlerinin çoğu ve diğer iyi desteklenen) gönderebilir , modern multimedya geliştirme araçları) çok çekirdekli bir sistemin yeteneklerinden çok daha iyi faydalanacaktır.
music2my

2

Her şeyden önce, tek çekirdekli hızlar bu kadar düşmedi. Intel'in mevcut Sandy Bridge serisinin megahertz açısından tek çekirdekli Pentium 4s'i üstlenmemesinin tek nedeni, Intel'in rekabetten yoksun olması, bu yüzden bunu zorlamak zorunda olmamaları.

İkincisi, saat hızı tek bir çekirdek üzerinde bile her şey değildir. Uygulama performansına bakıldığında, yine Pentium 4'e karşı, mevcut Intel serisi saat döngüsü başına yaklaşık% 50 daha hızlıdır . Sandy Bridge'in saat döngüsü başına Pentium 4'ten (Prescott'un en son enkarnasyonu olduğu) daha hızlı olmasının nedenleri çok boyutludur, ancak akıllı bellek denetleyicisine önceden getirme, CPU ile aynı kalıpta bellek denetleyicisine sahip olma ve daha yüksek Komut Seviyesi Paralellik (ILP) buna katkıda bulunun.

Komut seviyesi paralellik temel olarak işlemcinin talimatlara ve bağımlılıklarına baktığı anlamına gelir ve eğer iki talimat birbirine bağlı değilse, CPU her ikisi için aynı anda veri yüklemeye başlayabilir ve muhtemelen talimatlardan birini yeniden düzenleyebilir. diğerinden önce gelirler.

Üçüncüsü, bazı uygulamalar gerçekten birden fazla çekirdekten çok iyi yararlanmaktadır. Örneğin Photoshop neredeyse her zaman çalışma frekansından daha fazla çekirdeği tercih eder. Yani. yavaş bir dört çekirdekli bile neredeyse her zaman herhangi bir çift çekirdekli yongayı yener ve herhangi bir çift çekirdekli herhangi bir tek çekirdekli yongayı yener. Üç çekirdekler karışık bir çantadır, genellikle çift ​​çekirdekli olarak kazanırlar, ancak her zaman değil.

Genellikle birçok farklı veri seti için aynı tür işlemleri yapan uygulamalar en çok paralellikten yararlanır. Örneğin, video sıkıştırma veya fotoğraf düzenleme genellikle oldukça kolay bir şekilde paralelleştirilebilir. Öte yandan, bilgisayar oyunlarının paralel hale getirilmesinin zor olduğu kanıtlanmıştır. Elbette üzerlerindeki grafikler çok iyi paralellik gösteriyor, ancak bu bölüm CPU'da değil, GPU'da yürütülüyor. Kalan fizik, oyun dünyası defter tutma ve yapay zeka daha az paralellik gösterir.


1

Aslında bugün en önemli faktör işlemcinin saat hızı değil, bu "karşılaştırma faktörü" kullanımdan kaldırıldığı için birçok yeni özellik kullanıma sunuldu.

Bugün, işlemcilerin performansı hakkında çıkarım yapmak için birçok faktöre bir göz atmalısınız. Gibi şeyler:

  • Çekirdek sayısı
  • paralel çalışma diş sayısı
  • işlemci ailesi (Çift çekirdekli, Pentium, Core i / Calpella, Sandy Bridge, vb.)
  • işlemci üretimi (2., 6. vb.) ve ardından
  • işlemcinin saat hızı.

Ben işlemci hızlarını karşılaştırmak istediğinizde Aslında danışmak Passmark ait Notebookcheck'te kriter tabloları. Benchmarklar, işlemci hızını ve performansını ölçmek ve karşılaştırmak için en iyi faktördür.


Evet, ancak işleri basitleştirmek için, diğer her şeyin eşit olduğunu varsayalım (çekirdek başına aynı miktarda önbellek, aynı adres veri yolu genişliği, aynı kelime boyutu, vb ...). Çekirdeklerin kendileri tamamen aynıdır, sadece a) kaç tane veya b) ne kadar hızlı.
Atılım

İşlemci ailesinin ve neslinin işlemci hızıyla doğal bir ilgisi yok. Sonuçta, Atom süreçleri P4'lerden veya Core ve Core2 işlemlerinden çok daha yenidir, ancak kimse daha hızlı olduklarını iddia edemez. CPU hızı üzerinde daha doğrudan etkisi olan diğer şeyler kalıpta önbellek, kayıt sayısı, çip mimarisi, iletken yolların boyutu (nm üretim süreci), kayan nokta çalışma yetenekleri, vb.
music2myear

@ music2myear - Nesile referans verirken aile hakkında konuşuyorum ( superuser.com/questions/314757/… ). Aslında Atom D525, Çekirdek 2'den çok daha iyi ( cpubenchmark.net/cpu_lookup.php?cpu=Intel+Atom+D525+%40+1.80GHz )
Diogo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.