Çok çekirdekli işlemciler hakkındaki tüm gerçek. Hyper-Threading: Intel'in İkisi Bir Arada veya Xeon'un Gizli Yetenekleri

  • 28.06.2019

Çok çekirdekli ilk bilgisayar işlemcileri 2000'li yılların ortalarında tüketici pazarında ortaya çıktı, ancak birçok kullanıcı hala çok çekirdekli işlemcilerin ne olduğunu ve özelliklerini nasıl anlayacaklarını tam olarak anlamıyor.

"Çok Çekirdekli İşlemciler Hakkında Tüm Gerçek" makalesinin video formatı

"İşlemci nedir" sorusunun basit açıklaması

Mikroişlemci, bilgisayardaki ana cihazlardan biridir. Bu kuru resmi ad genellikle basitçe "işlemci" olarak kısaltılır. İşlemci - alanda bir kibrit kutusuyla karşılaştırılabilir bir mikro devre... İsterseniz işlemci arabadaki motor gibidir. En önemli kısım, ama tek değil. Arabanın ayrıca tekerlekleri, gövdesi ve farlı bir döner tablası var. Ancak "arabanın" gücünü belirleyen işlemcidir (arabanın motoru gibi).

Birçok kişi işlemciye sistem birimi adını verir - içinde bir bilgisayarın tüm bileşenlerinin bulunduğu bir "kutu", ancak bu temelde yanlıştır. Sistem birimi, tüm kurucu parçalarıyla birlikte bir bilgisayar kasasıdır - sabit sürücü, RAM ve diğer birçok ayrıntı.

İşlemci işlevi - bilgi işlem... Hangileri olduğu o kadar önemli değil. Gerçek şu ki, bir bilgisayarın tüm çalışmaları yalnızca aritmetik hesaplamalara bağlıdır. Toplama, çarpma, çıkarma ve diğer cebir - bunların hepsi işlemci adı verilen bir mikro devre tarafından yapılır. Ve bu tür hesaplamaların sonuçları ekranda bir oyun, bir Word dosyası veya sadece bir masaüstü şeklinde görüntülenir.

Bilgisayarın hesaplamalarla ilgilenen ana kısmı - burada, işlemci nedir.

İşlemci çekirdeği ve çok çekirdekli nedir

Çok eski işlemci "yaşlarından" beri bu mikro devreler tek çekirdekliydi. Çekirdek aslında işlemcinin kendisidir. Ana ve ana kısmı. İşlemcilerin başka parçaları da vardır - örneğin, "bacaklar" - kontaklar, mikroskobik "kablolama" - ancak hesaplamalardan sorumlu olan bloğa denir işlemci çekirdeği... İşlemciler oldukça küçüldüğünde, mühendisler birkaç çekirdeği aynı anda tek bir işlemci "kasasında" birleştirmeye karar verdiler.

Bir işlemciyi bir daire olarak hayal edersek, çekirdek böyle bir dairede büyük bir odadır. Tek odalı bir daire bir işlemci çekirdeğidir (geniş bir oda-salon), bir mutfak, bir banyo, bir koridor ... İki odalı bir daire, diğer odalarla birlikte iki işlemci çekirdeği gibidir. Üç, dört ve hatta 12 odalı daireler var. Ayrıca işlemciler söz konusu olduğunda: bir kristalin içinde - "daire" birkaç çekirdek - "oda" olabilir.

çok çekirdekli Bir işlemcinin birkaç özdeş işlevsel bloğa bölünmesidir. Blok sayısı, bir işlemci içindeki çekirdek sayısıdır.

Çok çekirdekli işlemci çeşitleri

Bir yanlış anlama var: "Bir işlemci ne kadar çok çekirdeğe sahipse o kadar iyidir." Bu tür kuruntular yaratmaları için para alan pazarlamacılar durumu bu şekilde sunmaya çalışırlar. Görevleri, dahası, ucuz işlemcileri daha yüksek bir fiyata ve büyük miktarlarda satmaktır. Ancak aslında, çekirdek sayısı işlemcilerin ana özelliğinden uzaktır.

İşlemciler ve daireler arasındaki analojiye geri dönelim. İki odalı bir daire, tek odalı bir daireye göre daha pahalı, daha kullanışlı ve daha prestijlidir. Ancak bu daireler aynı bölgedeyse, aynı şekilde donatılırlar ve benzer onarımları vardır. Çift çekirdekli olanlardan çok daha zayıf olan zayıf dört çekirdekli (hatta 6 çekirdekli) işlemciler vardır. Ama buna inanmak zor: yine de, "bazı" ikiye karşı 4 veya 6 büyük sayıların büyüsü. Ancak, bu tam olarak çok, çok sık olan şeydir. Aynı dört odalı daire gibi görünüyor, ancak ölü bir durumda, onarımsız, tamamen uzak bir bölgede - ve hatta tam merkezde lüks bir "kopek parçası" fiyatına.

Bir işlemcinin içinde kaç çekirdek var?

Kişisel bilgisayarlar ve dizüstü bilgisayarlar için, tek çekirdekli işlemciler birkaç yıldır üretilmiyor ve bunları satışta bulmak çok nadir. Çekirdek sayısı iki ile başlar. Dört çekirdek - kural olarak, bunlar daha pahalı işlemcilerdir, ancak bunların bir getirisi vardır. İnanılmaz derecede pahalı ve çok daha az pratik olan 6 çekirdekli işlemciler de var. Bu canavarca kristaller üzerinde çok az görev performans kazanma yeteneğine sahiptir.

AMD tarafından 3 çekirdekli işlemciler oluşturmak için bir deney yapıldı, ancak bu zaten geçmişte kaldı. Oldukça iyi çalıştı, ancak zamanları geçti.

Bu arada, AMD çok çekirdekli işlemciler de üretiyor, ancak kural olarak Intel'in rakiplerinden önemli ölçüde daha zayıflar. Doğru, fiyatları çok daha düşük. AMD'nin 4 çekirdeğinin, Intel'in aynı 4 çekirdeğinden neredeyse her zaman belirgin şekilde daha zayıf olacağını bilmeniz yeterlidir.

Artık işlemcilerin 1, 2, 3, 4, 6 ve 12 çekirdeğe sahip olduğunu biliyorsunuz. Tek çekirdekli ve 12 çekirdekli işlemciler nadirdir. Üç çekirdekli işlemciler geçmişte kaldı. Altı çekirdekli işlemciler ya çok pahalıdır (Intel) ya da o kadar güçlü değildir (AMD). 2 ve 4 çekirdek, en zayıftan en güçlüye kadar en yaygın ve pratik cihazlardır.

Çok çekirdekli işlemci frekansı

Bilgisayar işlemcilerinin özelliklerinden biri frekanslarıdır. Aynı megahertz (ve daha sık - gigahertz). Frekans önemli bir özelliktir, ancak tek özellikten uzaktır.... Evet, belki de henüz en önemlisi değil. Örneğin, 2GHz çift çekirdekli işlemci, 3GHz tek çekirdekli muadilinden daha güçlü bir tekliftir.

Bir işlemcinin frekansının, çekirdek sayısı ile çarpılan çekirdek frekansına eşit olduğunu varsaymak tamamen yanlıştır. Basitçe söylemek gerekirse, 2 GHz çekirdek frekansına sahip 2 çekirdekli bir işlemcinin toplam frekansı kesinlikle 4 gigahertz değildir! "Ortak frekans" kavramı bile mevcut değil. Bu durumda, CPU frekansı tam olarak 2 GHz'dir. Çarpma, toplama veya diğer işlemler yok.

Ve yine işlemcileri dairelere "dönüştüreceğiz". Her odadaki tavanların yüksekliği 3 metre ise, dairenin toplam yüksekliği aynı kalacaktır - hepsi aynı üç metre ve bir santimetre daha yüksek değil. Böyle bir dairede kaç oda olursa olsun, bu odaların yüksekliği değişmez. Ayrıca işlemci çekirdeklerinin saat frekansı... Eklemez veya çoğalmaz.

Sanal çok çekirdekli veya Hyper-Threading

Ayrıca orada sanal işlemci çekirdekleri... Intel'in Hyper-Threading Teknolojisi, bilgisayarın çift çekirdekli bir işlemcinin içinde aslında 4 çekirdek olduğunu “düşünmesini” sağlar. Tek bir sabit disk gibi birkaç mantıksal bölüme ayrılmıştır- yerel sürücüler C, D, E vb.

Aşırı-Diş açma, birçok görevde çok kullanışlı bir teknolojidir.... Bazen, işlemci çekirdeğinin yalnızca yarısı dahil olduğu ve bileşimindeki transistörlerin geri kalanının boşta kaldığı görülür. Mühendisler, her bir fiziksel işlemci çekirdeğini iki "sanal" parçaya bölerek bu avaraların da çalışmasını sağlamanın bir yolunu buldular. Sanki yeterince büyük bir oda bir bölmeyle ikiye ayrılmıştı.

Herhangi bir pratik anlamı var mı v-çekirdek hilesi? Çoğu zaman - evet, hepsi belirli görevlere bağlı olmasına rağmen. Görünüşe göre daha fazla oda var (ve en önemlisi, daha rasyonel kullanılıyorlar), ancak odanın alanı değişmedi. Ofislerde, bu tür bölmeler, bazı konut dairelerinde de inanılmaz derecede faydalıdır. Diğer durumlarda, odayı engellemenin hiçbir anlamı yoktur (işlemci çekirdeğini iki sanal olana bölmek).

Unutmayın, en pahalı ve üretken sınıf işlemcilerÇekirdeki7 ile donatılmış hatasızAşırı-diş açma... 4 fiziksel çekirdeğe ve 8 sanal çekirdeğe sahiptirler. 8 hesaplama iş parçacığının bir işlemcide aynı anda çalıştığı ortaya çıktı. Daha ucuz ama aynı zamanda güçlü Intel sınıfı işlemciler Çekirdeki5 dört çekirdekten oluşur, ancak Hyper Threading orada çalışmaz. Core i5'lerin 4 iş parçacığı ile çalıştığı ortaya çıktı.

işlemciler Çekirdeki3- hem fiyat hem de performans açısından tipik "orta köylüler". İki çekirdeğe sahipler ve Hyper-Threading ipucu yok. Toplamda, ortaya çıkıyor Çekirdeki3 sadece iki hesaplama iş parçacığı. Aynısı açıkçası bütçe kristalleri için de geçerlidir. Pentium veCeleron... İki çekirdek, hiper iş parçacığı yok = iki iş parçacığı.

Bir bilgisayarın çok fazla çekirdeğe ihtiyacı var mı? Bir işlemci kaç çekirdeğe ihtiyaç duyar?

Tüm modern işlemciler ortak görevler için yeterince güçlüdür... İnternette gezinme, sosyal ağlarda ve e-posta ile sohbet etme, ofis görevleri Word-PowerPoint-Excel: zayıf Atom, bütçe Celeron ve Pentium da bu iş için uygundur, daha güçlü Core i3'ten bahsetmiyorum bile. Normal çalışma için iki çekirdek fazlasıyla yeterli. Çok sayıda çekirdeğe sahip bir işlemci, hızda önemli bir artış sağlamayacaktır.

Oyunlar için işlemcilere dikkat etmelisiniz.Çekirdeki3 veyai5... Aksine, oyun performansı işlemciye değil, video kartına bağlı olacaktır. Nadiren bir oyun Core i7'nin tam gücünü gerektirir. Bu nedenle, oyunların dörtten fazla işlemci çekirdeği gerektirmediğine ve daha sık olarak iki çekirdeğin yapacağına inanılıyor.

Özel mühendislik programları, video kodlama ve diğer yoğun kaynak gerektiren görevler gibi ciddi işler için gerçekten üretken ekipman gerekli... Burada genellikle sadece fiziksel değil, aynı zamanda sanal işlemci çekirdekleri de söz konusudur. Daha fazla hesaplama iş parçacığı, daha iyi. Ve böyle bir işlemcinin maliyeti ne olursa olsun: profesyoneller için fiyat o kadar önemli değil.

Çok çekirdekli işlemcilerin faydaları var mı?

Tabii ki evet. Aynı zamanda, bilgisayar birkaç görevle uğraşıyor - en azından Windows'un çalışması (bu arada bunlar yüzlerce farklı görev) ve aynı zamanda bir film oynatıyor. Müzik çalmak ve internette gezinmek. Metin editörü ve müzik dahil. Aslında iki işlemci olan iki işlemci çekirdeği, farklı görevlerle birden daha hızlı başa çıkacaktır. İki çekirdek bunu biraz daha hızlı yapacak. Dört, ikiden bile daha hızlıdır.

Çok çekirdekli teknolojinin varlığının ilk yıllarında, tüm programlar iki işlemci çekirdeği ile bile çalışamıyordu. 2014 yılına kadar, uygulamaların büyük çoğunluğu çok sayıda çekirdeğin farkında ve bundan faydalanabiliyor. Çift çekirdekli bir işlemcideki görevlerin işlem hızı nadiren iki katına çıkar, ancak neredeyse her zaman bir performans artışı vardır.

Bu nedenle, sözde programların birden fazla çekirdek kullanamayacağına dair kökleşmiş efsane, güncelliğini yitirmiş bir bilgidir. Bir zamanlar gerçekten böyleydi, bugün durum çarpıcı biçimde iyileşti. Çoklu çekirdeğin faydaları yadsınamaz, bu bir gerçektir.

Bir işlemci daha az çekirdeğe sahip olduğunda daha iyidir

Yanlış "daha fazla çekirdek, daha iyi" formülüne sahip bir işlemci satın almamalısınız. Bu doğru değil. İlk olarak, 4, 6 ve 8 çekirdekli işlemciler, çift çekirdekli emsallerinden önemli ölçüde daha pahalıdır. Fiyatta önemli bir artış, performans açısından her zaman haklı değildir. Örneğin, 8 çekirdekli bir işlemci, daha az çekirdeğe sahip bir CPU'dan yalnızca %10 daha hızlıysa, ancak 2 kat daha pahalı olacaksa, böyle bir satın almanın haklı gösterilmesi zordur.

İkincisi, bir işlemci ne kadar çok çekirdeğe sahipse, o kadar güce aç olur. 4 çekirdekli (8 iş parçacıklı) Core i7 ile çok daha pahalı bir dizüstü bilgisayar satın almak, bu dizüstü bilgisayar yalnızca metin dosyalarını işleyecek, İnternet'te gezinecek vb. Çift çekirdekli (4 iş parçacığı) Core i5 ile hiçbir fark olmayacak ve yalnızca iki hesaplama iş parçacığına sahip klasik Core i3, daha seçkin "meslektaşına" teslim olmayacak. Ve pil gücüyle böylesine güçlü bir dizüstü bilgisayar, ekonomik ve iddiasız Core i3'ten çok daha az çalışır.

Cep telefonlarında ve tabletlerde çok çekirdekli işlemciler

Bir işlemci içinde birden fazla bilgi işlem çekirdeği modası, mobil cihazlar için de geçerlidir. Akıllı telefonlar, çok sayıda çekirdeğe sahip tabletlerle birlikte, mikroişlemcilerinin tüm özelliklerini neredeyse hiç kullanmazlar. Çift çekirdekli mobil bilgisayarlar bazen gerçekten biraz daha hızlı çalışır, ancak 4 ve hatta daha fazla 8 çekirdek, kesinlikle aşırıya kaçar. Pil tamamen tanrısızca tüketilir ve güçlü bilgi işlem cihazları boşta kalır. Sonuç olarak, telefonlarda, akıllı telefonlarda ve tabletlerde bulunan çok çekirdekli işlemciler mutlak bir zorunluluk değil, yalnızca bir pazarlama haraçlarıdır. Bilgisayarlar, telefonlardan daha zorlu cihazlardır. Gerçekten iki işlemci çekirdeğine ihtiyaçları var. Dört zarar vermez. 6 ve 8, ortak görevlerde ve hatta oyunlarda aşırıya kaçar.

Çok çekirdekli bir işlemci nasıl seçilir ve yanılmaz?

Bugünkü makalenin pratik kısmı 2014 ile ilgilidir. Önümüzdeki yıllarda bir şeylerin ciddi şekilde değişmesi olası değildir. Sadece Intel işlemcilerden bahsedeceğiz. Evet, AMD iyi çözümler sunuyor, ancak daha az popüler ve anlaşılması daha zor.

Tablonun 2012-2014 arasındaki işlemcilere dayandığını unutmayın. Eski tasarımların farklı özellikleri vardır. Ayrıca, örneğin tek çekirdekli bir Celeron gibi nadir CPU varyantlarından bahsetmedik (bugün bile bazıları var, ancak bu, piyasada neredeyse temsil edilmeyen atipik bir seçenektir). İşlemcileri yalnızca içlerindeki çekirdek sayısına göre seçmemelisiniz - daha önemli başka özellikler de var. Tablo yalnızca çok çekirdekli bir işlemci seçmeyi kolaylaştıracaktır, ancak belirli bir model satın almalısınız (ve her sınıfta düzinelerce var), ancak parametrelerini iyice tanıdıktan sonra: frekans, ısı dağılımı, üretim, önbellek boyut ve diğer özellikler.

İşlemci Çekirdek sayısı bilgi işlem akışları Tipik uygulama alanı
Atom 1-2 1-4 Düşük güçlü bilgisayarlar ve netbook'lar. Atom işlemciler, güç tüketimini mümkün olduğunca düşük tutacak şekilde tasarlanmıştır. Performansları minimumdur.
Celeron 2 2 Masaüstü ve dizüstü bilgisayarlar için en ucuz işlemciler. Performans, ofis görevleri için yeterlidir, ancak bunlar oyun CPU'ları değildir.
Pentium 2 2 Celeron kadar ucuz ve düşük performanslı Intel işlemciler. Ofis bilgisayarları için mükemmel bir seçim. Pentium'lar biraz daha büyük bir önbellekle ve bazen Celeron'a kıyasla biraz daha yüksek performansla donatılmıştır.
çekirdek i3 2 4 Yeterince güçlü iki çekirdek, her biri iki sanal "işlemciye" (Hyper-Threading) bölünmüştür. Bunlar zaten çok yüksek fiyatlara sahip olmayan oldukça güçlü CPU'lar. Performans konusunda özel talepleri olmayan bir ev veya güçlü bir ofis bilgisayarı için iyi bir seçim.
çekirdek i5 4 4 Full 4 çekirdekli Core i5 işlemciler oldukça pahalı işlemcilerdir. Performansları yalnızca en zorlu görevlerde eksiktir.
çekirdek i7 4-6 8-12 En güçlü ama özellikle pahalı Intel işlemciler. Kural olarak, nadiren Core i5'ten daha hızlı ve yalnızca bazı programlarda ortaya çıkıyorlar. Sadece onlara alternatif yok.

"Çok Çekirdekli İşlemciler Hakkında Tüm Gerçekler" makalesinin kısa bir özeti. Bir özet yerine

  • işlemci çekirdeği- kurucu kısmı. Aslında kasanın içinde bağımsız bir işlemci. Çift çekirdekli işlemci - tek işlemci içinde iki işlemci.
  • çok çekirdekli bir daire içindeki oda sayısıyla karşılaştırılabilir. İki odalı daireler, tek odalı dairelerden daha iyidir, ancak yalnızca diğer şeyler eşit olduğunda (dairenin konumu, durumu, alanı, tavan yüksekliği).
  • ifade bir işlemci ne kadar çok çekirdeğe sahipse o kadar iyidir Bir pazarlama hilesidir, tamamen yanlış bir kuraldır. Sonuçta, bir daire sadece oda sayısına göre değil, aynı zamanda konumu, onarımı ve diğer parametrelere göre de seçilir. Aynı şey, bir işlemci içindeki birden çok çekirdek için de geçerlidir.
  • var "Sanal" çok çekirdekli- Hyper-Threading teknolojisi. Bu teknoloji sayesinde, her bir "fiziksel" çekirdek, iki "sanal" olana bölünmüştür. Hyper-Threading'e sahip 2 çekirdekli bir işlemcinin yalnızca iki gerçek çekirdeğe sahip olduğu, ancak bu işlemcilerin aynı anda 4 hesaplama iş parçacığı işlediği ortaya çıktı. Bu gerçekten kullanışlı bir özellik, ancak 4 iş parçacıklı bir işlemci, dört çekirdekli olarak kabul edilemez.
  • Intel masaüstü işlemciler için: Celeron - 2 çekirdek ve 2 iş parçacığı. Pentium - 2 çekirdek, 2 iş parçacığı. Core i3 - 2 çekirdek, 4 iş parçacığı. Core i5 - 4 çekirdek, 4 iş parçacığı. Core i7 - 4 çekirdek, 8 iş parçacığı. Intel dizüstü bilgisayar (mobil) CPU'larında farklı sayıda çekirdek / iş parçacığı bulunur.
  • Mobil bilgisayarlar için enerji verimliliği (pratikte pil ömrü) genellikle çekirdek sayısından daha önemlidir.

Petersburg pazarında Hyper-Threading (HT) teknolojisine sahip 3.06 GHz saat frekansına sahip bir Intel Pentium 4 işlemci ortaya çıktı.
Üreticiler, daha önce yalnızca sunucu sistemlerinde kullanılan teknolojinin yeni bir yüksek performanslı masaüstü kişisel bilgisayar sınıfını piyasaya sürdüğünü söylüyor.
HT teknolojisi ile bir fiziksel işlemci, PC işletim sistemi ve uygulamaları tarafından iki mantıksal işlemci olarak algılanır. Intel'in Rusya ve BDT'deki temsilcilik ofisi başkanı Alexei Navolokin'e göre, ön veriler NT teknolojisine sahip yeni işlemcinin ortalama %25 performans artışı sağladığını gösteriyor.

sıra dışı
HT teknolojisi, kullanıcıların bilgisayar performansını iki şekilde geliştirmelerine olanak tanır: çok iş parçacıklı veri işleme kullanan yazılımlarla çalışırken ve çok görevli ortamlarda çalışırken. Yeni işlemcinin birkaç kod parçasıyla ("iş parçacığı" olarak adlandırılan - iş parçacığı) aynı anda çalışma yeteneği dikkate alınarak yazılan uygulamalar, HT teknolojisine sahip 3.06 GHz saat hızına sahip bir fiziksel Intel Pentium 4 işlemciyi "görecektir" iki mantıksal işlemci olarak. HT teknolojisi, işlemcinin iki bağımsız veri akışını sırayla değil, aynı anda işlemesine olanak tanır.

İş için
HT teknolojisinin yardımıyla örneğin bir müzik albümü çalmaya başlayabilir ve aynı zamanda ses kalitesinden ödün vermeden sohbette mesaj alışverişi yapabilirsiniz. İnternetten müzik arşivinize bir MP3 dosyası indirerek, bilgisayarınızı dışarıdan istenmeyen programların sızmasına karşı koruyacak bir anti-virüs programını paralel olarak çalıştırabilirsiniz.
HT, iş dünyasında geniş fırsatlar sunar - işletmenin başkanı aynı anda hisse senedi raporlarını ve endeksleri görüntüleyebilir, otomatikleştirilmiş kurumsal yönetim sisteminin göstergelerini takip edebilir ve yüklenicilerle iletişim kurabilir. Hyper-Threading Teknolojili Intel Pentium 4 işlemciye dayalı bir bilgisayar kullanan mühendisler ve bilim adamları, İnternet'ten indirirken ve meslektaşlarından çeşitli biçimlerde dosyalar biçiminde alırken bilgi kaynaklarıyla en verimli şekilde çalışabilecekler - PDF'den XLS'ye.
Petersburg entegratör firmaları ("Svega +", "Computer Service 320-80-80", "Computer-Center KEY" ve "Computer World") Intel Pentium 4 3.06 işlemcili aylık GHz'e dayalı en az 15-20 bilgisayar satmayı planlıyor. HT teknolojisi.

Tek işlemcili Xeon sistemlerinin kullanımının anlamsız olduğunu yazdık, çünkü daha yüksek bir fiyata performansları aynı frekanstaki bir Pentium 4 ile aynı olacaktır. Şimdi, daha dikkatli bir çalışmadan sonra, bu ifade muhtemelen küçük bir değişiklik yapmak zorunda kalacak. Prestonia çekirdeği ile Intel Xeon'da uygulanan Hyper-Threading teknolojisi gerçekten işe yarıyor ve oldukça dikkat çekici bir etki sağlıyor. Kullanırken de çok fazla soru olmasına rağmen ...

performans ver

"Daha hızlı, daha da hızlı ...". Performans yarışı yıllardır devam ediyor ve bazen bilgisayarınızın hangi bileşeninin daha hızlı hızlandığını söylemek bile zor. Bunun için her geçen gün daha fazla yeni yollar icat edilmekte ve ayrıca bu çığ benzeri sürece daha yetenekli emek ve yüksek kaliteli beyinler yatırılmaktadır.

Performansta sürekli bir artış kesinlikle gereklidir. En azından bu karlı bir iştir ve kullanıcıları dünün "süper performanslı CPU'sunu" yarının "daha da süper..."ine yükseltmeye teşvik etmenin her zaman güzel bir yolu olacaktır. Örneğin, eşzamanlı konuşma tanıma ve başka bir dile simultane çeviri herkesin hayali değil mi? Veya neredeyse "sinematik" kalitede alışılmadık derecede gerçekçi oyunlar (tamamen dikkati çeken ve bazen ruhta ciddi değişikliklere yol açan) - bu, genç ve yaşlı birçok oyuncunun özlemi değil mi?

Ancak, bu durumda teknik konulara odaklanarak pazarlama yönlerini kutudan çıkaralım. Ayrıca, her şey o kadar da kasvetli değil: özellikle merkezi işlemcilerde daha yüksek performansın gerçekten gerekli olduğu acil görevler (sunucu uygulamaları, bilimsel hesaplamalar, modelleme vb.) var.

Peki performanslarını artırmanın yolları nelerdir?

hız aşırtma... Teknolojik süreci daha da "inceltmek" ve frekansı artırmak mümkündür. Ancak, bildiğiniz gibi, bu kolay değildir ve ısı dağılımı sorunları gibi her türlü yan etkiyle doludur.

İşlemci kaynaklarını artırma- örneğin, önbellek boyutunu artırmak, yeni bloklar eklemek (Yürütme Birimleri). Bütün bunlar, transistör sayısında bir artış, işlemcinin karmaşıklığı, kalıp alanında bir artış ve sonuç olarak maliyet gerektirir.

Ek olarak, önceki iki yöntem, kural olarak, verimlilikte doğrusal bir artış sağlamaz. Bu, Pentium 4 örneğinde iyi bilinmektedir: dal tahminindeki ve kesintilerdeki hatalar, genel performansı büyük ölçüde etkileyen uzun bir işlem hattının düşmesine neden olur.

çoklu işlem... Birden fazla CPU kurmak ve aralarında iş dağıtmak genellikle oldukça verimlidir. Ancak bu yaklaşım çok ucuz değil - her ek işlemci sistemin maliyetini artırır ve ikili bir anakart normal bir anakarttan çok daha pahalıdır (dört veya daha fazla CPU'yu destekleyen anakartlardan bahsetmiyorum bile). Ayrıca, tüm uygulamalar maliyeti haklı çıkaracak kadar çok işlemcili performanstan yararlanmaz.

"Saf" çoklu işlemeye ek olarak, uygulamaların yürütülmesini hızlandırmak için birkaç "ara" seçenek vardır:

Çip Çoklu İşleme (CMP)- iki işlemci çekirdeği, paylaşılan veya ayrı bir önbellek kullanılarak fiziksel olarak bir kalıpta bulunur. Doğal olarak, kristalin boyutu oldukça büyük çıkıyor ve bu maliyeti etkileyemez. Bu "çift" CPU'ların birçoğunun çok işlemcili bir sistemde de çalışabileceğini unutmayın.

Zaman Dilimli Çoklu İş Parçacığı... İşlemci, program dizileri arasında sabit aralıklarla geçiş yapar. Genel gider, özellikle bir süreç beklemedeyse, zaman zaman oldukça etkileyici olabilir.

Anahtarlamalı Olay Çoklu İş Parçacığı... Çok sayıda sunucu uygulamaları için tipik olan "önbellek eksikleri" gibi uzun duraklamalar meydana geldiğinde görevleri değiştirme. Bu durumda, nispeten yavaş bellekten önbelleğe veri yüklemeyi bekleyen bir işlem askıya alınır ve diğer işlemler için CPU kaynaklarını serbest bırakır. Bununla birlikte, Zaman Dilimli Çoklu İş Parçacığı gibi Anahtarlamalı Olay Çoklu İş Parçacığı, özellikle dal tahminindeki hatalar, talimat bağımlılıkları vb. nedeniyle işlemci kaynaklarının en iyi şekilde kullanılmasına her zaman izin vermez.

Eşzamanlı Çoklu Kullanım... Bu durumda, program iş parçacıkları bir işlemcide "aynı anda", yani aralarında geçiş yapılmadan yürütülür. CPU kaynakları, "kullanmıyorsanız başkasına verin" ilkesine göre dinamik olarak tahsis edilir. Şimdi başvurduğumuz Intel Hyper-Threading teknolojisinin altında yatan bu yaklaşımdır.

Hyper-Threading Nasıl Çalışır?

Bildiğiniz gibi, mevcut "bilgi işlem paradigması" çok iş parçacıklı hesaplamayı varsayar. Bu, yalnızca başlangıçta böyle bir konseptin var olduğu sunucular için değil, aynı zamanda iş istasyonları ve masaüstü sistemleri için de geçerlidir. İş parçacıkları bir veya farklı uygulamalara atıfta bulunabilir, ancak hemen hemen her zaman birden fazla aktif iş parçacığı vardır (bundan emin olmak için Windows 2000 / XP'de Görev Yöneticisi'ni açmak ve iş parçacığı sayısının ekranını açmak yeterlidir) . Aynı zamanda, geleneksel bir işlemci aynı anda iş parçacıklarından yalnızca birini çalıştırabilir ve bunlar arasında sürekli geçiş yapmak zorunda kalır.

Hyper-Threading teknolojisi ilk kez test edildiği Intel Xeon MP (Foster MP) işlemciye uygulandı. IDF Spring 2002'de resmi olarak sunulan Xeon MP'nin Pentium 4 Willamette çekirdeğini kullandığını, 256 KB L2 önbellek ve 512 KB / 1 MB L3 önbellek içerdiğini ve 4 işlemcili konfigürasyonları desteklediğini hatırlayın. Ayrıca, iş istasyonları için işlemcide Hyper-Threading desteği mevcuttur - pazara Xeon MP'den biraz daha önce gelen Intel Xeon (Prestonia çekirdeği, 512 KB L2 önbellek). Okurlarımız Intel Xeon'daki çift işlemcili yapılandırmalara zaten aşinadır, bu nedenle bu CPU'ları kullanarak Hyper-Threading'in yeteneklerini hem teorik hem de pratik olarak örnek olarak ele alacağız. Her neyse, "basit" bir Xeon, 4 işlemcili sistemlerde Xeon MP'den daha sıradan ve sindirilebilir bir şeydir ...

Hyper-Threading ilkesi, herhangi bir zamanda, program kodu yürütülürken işlemci kaynaklarının yalnızca bir kısmının kullanılması gerçeğine dayanır. Kullanılmayan kaynaklar iş ile de yüklenebilir - örneğin, başka bir uygulamanın (veya aynı uygulamanın başka bir iş parçacığının) paralel yürütülmesi için kullanılabilirler. Bir fiziksel Intel Xeon işlemcide, CPU'nun bilgi işlem kaynaklarını paylaşan iki mantıksal işlemci (LP - Mantıksal İşlemci) oluşturulur. İşletim sistemi ve uygulamalar, tam olarak iki CPU'yu "görür" ve tam teşekküllü bir çift işlemcili sistemde olduğu gibi işi aralarında dağıtabilir.

Hyper-Threading'i uygulamanın hedeflerinden biri, yalnızca bir aktif iş parçacığı varsa, normal bir CPU ile aynı hızda çalışmasına izin vermektir. Bunun için işlemcinin iki ana çalışma modu vardır: Tek Görev (ST) ve Çoklu Görev (MT). ST modunda, kullanılabilir kaynakları tam olarak kullanan yalnızca bir mantıksal işlemci etkindir (ST0 ve ST1 modları); diğer LP HALT komutuyla durduruldu. İkinci program dizisi göründüğünde, boştaki mantıksal işlemci etkinleştirilir (bir kesme yoluyla) ve fiziksel CPU MT moduna yerleştirilir. Kullanılmayan LP'lerin HALT komutuyla durdurulması, Hyper-Threading'in olmadığı durumda olduğu gibi bir iş parçacığının aynı hızlı yürütülmesinden nihai olarak sorumlu olan işletim sistemine atanır.

İki LP'nin her biri için, çeşitli kayıt türlerinin durumunu (genel amaç, kontrol, APIC ve hizmet) içeren Mimari Durum (AS) olarak adlandırılır. Her LP'nin kendi APIC'si (kesme denetleyicisi) ve doğru çalışması için sekiz genel amaçlı IA-32 kaydı arasındaki yazışmayı izleyen Kayıt Takma Adı Tablosu (RAT) kavramının tanıtıldığı bir dizi kaydı vardır ve 128 fiziksel CPU kaydı (her LP için bir RAT).

İki akışla çalışırken, karşılık gelen iki Sonraki Yönerge İşaretçisi seti desteklenir. Talimatların çoğu, kodu çözülmüş biçimde saklandıkları İzleme Önbelleğinden (TC) alınır ve iki aktif LP, bir saat döngüsü aracılığıyla dönüşümlü olarak TC'ye erişir. Aynı zamanda, yalnızca bir LP aktif olduğunda, saate göre araya girmeden TC'ye özel erişim kazanır. Mikrokod ROM'a da aynı şekilde erişilir. Talimat önbelleğinde gerekli talimatların yokluğunda kullanılan ITLB (Yönerge Çevirisi Look-aside Buffer) blokları çoğaltılır ve her biri kendi akışı için talimat verir. IA-32 Komut Kod Çözme talimatı kod çözücü birimi paylaşılır ve her iki akış için talimatların kodunun çözülmesi gerektiğinde, bunları dönüşümlü olarak sunar (yine her saat döngüsünde). Uop Queue ve Allocator blokları, her LP için öğelerin yarısını ayırarak ikiye bölünür. 5 adet zamanlayıcı, LP0 / LP1'e ait olmasına rağmen kodu çözülmüş komutların (Uops) kuyruklarını işler ve ilkini yürütmeye hazır olup olmamasına ve ikincisinin kullanılabilirliğine bağlı olarak gerekli Yürütme Birimlerini yürütmek için komutlar gönderir. Tüm seviyelerdeki önbellekler (Xeon için L1 / L2 ve Xeon MP için L3) tamamen iki LP arasında paylaşılır, ancak veri bütünlüğünü sağlamak için DTLB'deki (Veri Çevirisi Look-aside Buffer) kayıtlar, mantıksal işlemcilerin kimlikleri biçimi.

Böylece, her iki mantıksal CPU'nun talimatları, dört sınıfa ayrılan bir fiziksel işlemcinin kaynakları üzerinde aynı anda yürütülebilir:

  • çoğaltılmış (Çoğaltılmış);
  • tamamen paylaşılan (Tamamen Paylaşılan);
  • eleman tanımlayıcıları ile (Giriş Etiketli);
  • ST0 / ST1 veya MT çalışma moduna bağlı olarak dinamik olarak bölümlenmiş (Bölünmüş).

Aynı zamanda, çok işlemcili sistemlerde hızlandırılan uygulamaların çoğu, herhangi bir değişiklik yapılmadan Hyper-Threading'in etkin olduğu bir CPU'da da hızlandırılabilir. Ancak sorunlar da vardır: örneğin, bir işlem bekleme döngüsündeyse, fiziksel CPU'nun tüm kaynaklarını alarak ikinci LP'nin çalışmasını engelleyebilir. Bu nedenle, Hyper-Threading kullanırken performans bazen düşebilir (%20'ye kadar). Bunu önlemek için Intel, boş bekleme döngüleri yerine PAUSE komutunu (Pentium 4'ten beri IA-32'de sunulmuştur) kullanmanızı önerir. Derleme sırasında otomatik ve yarı otomatik kod optimizasyonu konusunda da oldukça ciddi çalışmalar yapılıyor - örneğin, Intel OpenMP C ++ / Fortran Derleyicileri () serisinin derleyicileri bu konuda önemli ilerleme kaydetti.

Intel'e göre Hyper-Threading'in ilk uygulamasının bir başka amacı, performansta gözle görülür bir artışla transistör sayısı, kalıp alanı ve güç tüketimindeki artışı en aza indirmekti. Bu taahhüdün ilk kısmı zaten yerine getirildi: Xeon / Xeon MP'ye Hyper-Threading desteğinin eklenmesi, kalıp alanını ve güç tüketimini %5'ten daha az artırdı. İkinci bölümde (performans) ne oldu, yine de kontrol etmemiz gerekiyor.

pratik kısım

Açık nedenlerle, 4 işlemcili sunucu sistemlerini Hyper-Threading etkinleştirilmiş bir Xeon MP üzerinde test etmedik. İlk olarak, oldukça zaman alıcıdır. İkincisi, böyle bir başarıya karar verirsek - her neyse, şimdi, resmi duyurunun üzerinden bir aydan kısa bir süre sonra, bu pahalı ekipmanı almak kesinlikle gerçekçi değil. Bu nedenle, bu işlemcilerin ilk testlerinin yapıldığı iki Intel Xeon 2.2 GHz ile kendimizi aynı sistemle sınırlamaya karar verildi (makalenin başındaki bağlantıya bakın). Sistem, 512 MB RDRAM, GeForce3 yongasına (64 MB DDR, Detonator 21.85 sürücüleri) dayalı bir video kartı, bir Western Digital WD300BB sabit sürücüsü ve 6X DVD- içeren bir Supermicro P4DC6 + anakartına (Intel i860 yonga seti) dayanıyordu. ROM; İşletim sistemi olarak Windows 2000 Professional SP2 kullanıldı.

İlk olarak, birkaç genel izlenim. Prestonia çekirdeği ile bir Xeon kurarken, sistemin başlangıcında BIOS, iki CPU'nun varlığı hakkında bir mesaj görüntüler; iki işlemci takılıysa, kullanıcı dört işlemci hakkında bir mesaj görür. İşletim sistemi normalde "her iki işlemciyi" tanır, ancak yalnızca iki koşul karşılanırsa.

İlk olarak, Supermicro P4DCxx kartlarının en son BIOS sürümlerinin CMOS Kurulumunda, İşletim Sisteminin yalnızca fiziksel işlemciyi/işlemcileri tanıdığı Hyper-Threading'i Etkinleştir öğesi belirdi. İkincisi, işletim sistemini ek mantıksal işlemcilerin varlığı hakkında bilgilendirmek için ACPI yetenekleri kullanılır. Bu nedenle, Hyper-Threading'i etkinleştirmek için, CMOS Kurulumunda ACPI seçeneği etkinleştirilmelidir ve işletim sisteminin kendisi için ACPI destekli HAL (Donanım Soyutlama Katmanı) da yüklenmelidir. Neyse ki, Windows 2000'de, HAL'yi Standart PC'den (veya MPS Tek/Çok İşlemcili PC) ACPI Tek/Çok İşlemcili PC'ye değiştirmek, aygıt yöneticisindeki "bilgisayar sürücüsünü" değiştirerek kolaydır. Aynı zamanda, Windows XP için, ACPI HAL'e geçişin tek yasal yolu, sistemi mevcut kurulum üzerine yeniden yüklemektir.

Ancak şimdi tüm hazırlıklar yapıldı ve Windows 2000 Pro'muz çift işlemcili bir sistemde çalıştığına zaten inanıyor (aslında yalnızca bir işlemci kurulu olmasına rağmen). Şimdi, geleneksel olarak, testin hedeflerine karar verme zamanı. Yani istiyoruz:

  • Hyper-Threading'in çeşitli sınıfların uygulamalarının performansı üzerindeki etkisini değerlendirin.
  • Bu etkiyi ikinci bir işlemci takmanın etkisiyle karşılaştırın.
  • İkinci LP boştayken etkin mantıksal işlemciye ne kadar "adil" kaynakların verildiğini kontrol edin.

Performansı değerlendirmek için, okuyucularımızın zaten aşina olduğu ve iş istasyonu sistemlerinin test edilmesinde kullanılan bir dizi uygulamayı aldık. Sondan başlayalım ve mantıksal CPU'ların "adaletini" kontrol edelim. Her şey son derece basit: önce Hyper-Threading devre dışı bırakılmış bir işlemci üzerinde testler yapıyoruz ve ardından Hyper-Threading'i etkinleştirerek ve iki mantıksal CPU'dan yalnızca birini kullanarak (Görev Yöneticisini kullanarak) işlemi tekrarlıyoruz. Bu durumda sadece göreceli değerlerle ilgilendiğimiz için, tüm testlerin sonuçları "daha büyük daha iyidir" e indirgenir ve normalleştirilir (Hyper-Threading olmayan tek işlemcili bir sistemin göstergeleri bir birim olarak alınır).

Gördüğünüz gibi, Intel'in vaatleri burada yerine getirildi: yalnızca bir aktif iş parçacığıyla, iki LP'nin her birinin performansı, Hyper-Threading'siz fiziksel bir CPU'nun hızına tam olarak eşittir. Boşta kalan bir LP (hem LP0 hem LP1) fiilen askıya alınır ve elde edilen sonuçlardan değerlendirilebildiği kadarıyla paylaşılan kaynaklar, kullanım için tamamen aktif LP'ye aktarılır.

Bu nedenle, ilk sonucu çıkarıyoruz: iki mantıksal işlemci aslında eşittir ve Hyper-Threading'i etkinleştirmek bir iş parçacığının çalışmasına "müdahale etmez" (ki bu kendi içinde kötü değildir). Şimdi, bu katılımın "yardımcı olup olmadığını" ve eğer öyleyse, nerede ve nasıl olduğunu görelim.

oluşturma... 3D Studio MAX 4.26, Lightwave 7b ve A |W Maya 4.0.1, 3D modelleme paketlerindeki dört testin sonuçları, benzerliklerinden dolayı tek bir diyagramda birleştirilmiştir.

Dört durumda da (Lightwave için - iki farklı sahne), Hyper-Threading devre dışı bırakılmış bir işlemciyle CPU yükü neredeyse sürekli olarak %100'de tutulur. Bununla birlikte, Hyper-Threading etkinleştirildiğinde, sahne hesaplaması hızlanır (sonuç olarak, CPU yükünün %100'ün üzerinde olduğu konusunda bir şakamız bile oldu). Üç testte, Hyper-Threading'den performansta %14-18'lik bir artış görebiliriz - bir yandan ikinci CPU'ya kıyasla çok fazla değil, ancak diğer yandan "ücretsiz" etki göz önüne alındığında oldukça iyi bu etkinin. Lightwave ile yapılan iki testten birinde, performans kazancı neredeyse sıfırdır (görünüşe göre bu, tuhaflıklarla dolu bu uygulamanın özgünlüğünden kaynaklanmaktadır). Ancak hiçbir yerde olumsuz bir sonuç yok ve diğer üç vakada gözle görülür bir artış cesaret verici. Ve bu, paralel oluşturma işlemlerinin benzer bir iş yapmasına ve büyük olasılıkla en iyi şekilde olmamasına rağmen, aynı anda fiziksel CPU'nun kaynaklarını kullanamaz.

Photoshop ve MP3 kodlaması... GOGO-no-coda 2.39c codec bileşeni, SMP'yi destekleyen birkaç koddan biridir ve çift işlemci teknolojisinden %34'lük bir performans artışı gösterir. Aynı zamanda, bu durumda Hyper-Threading'in etkisi sıfırdır (%3'lük bir farkın önemli olduğunu düşünmüyoruz). Ancak Photoshop 6.0.1 (çok sayıda komut ve filtreden oluşan bir komut dosyası) ile yapılan testte, Hyper-Threading etkinleştirildiğinde bir yavaşlama görebilirsiniz, ancak bu durumda ikinci fiziksel CPU %12 performans ekler. Aslında bu, Hyper-Threading'in performans düşüşüne neden olduğu ilk durumdur ...

Profesyonel OpenGL... SPEC ViewPerf ve diğer birçok OpenGL uygulamasının SMP sistemlerinde genellikle yavaşladığı uzun zamandır bilinmektedir.

OpenGL ve Çift İşlemci: Neden Arkadaş Değiller?

Makalelerimizde birçok kez, profesyonel OpenGL testleri yaparken çift işlemcili platformların tek işlemcili platformlara göre çok nadiren önemli bir avantaj gösterdiği gerçeğine okuyucuların dikkatini çektik. Ayrıca, genellikle ikinci bir işlemci takıldığında, aksine, dinamik üç boyutlu sahneler oluştururken sistem performansını düşürürken durumlar vardır.

Doğal olarak, bu tuhaflığı sadece biz fark etmedik. Bazı testçiler bu gerçeği sessizce atladılar - örneğin, SPEC ViewPerf kıyaslama sonuçlarını yalnızca çift işlemcili konfigürasyonlar için göstererek, böylece "çift işlemcili bir sistem neden daha yavaş?" açıklamasından kaçındı. Diğerleri, önbelleklerin tutarlılığı, onu koruma ihtiyacı, sonuçta ortaya çıkan ek yük vb. hakkında tüm olası fantastik varsayımları yaptı. Ve bazı nedenlerden dolayı, örneğin, işlemcilerin pencereli OpenGL oluşturma sırasında işlemcilerin tutarlılığını tam olarak izlemek için sabırsız olmalarına kimse şaşırmadı ("hesaplama" özü açısından, diğer herhangi bir hesaplama probleminden çok farklı değil) .

Aslında açıklama bize göre çok daha basit. Bildiğiniz gibi, bir uygulama aşağıdaki durumlarda iki işlemcide birden daha hızlı çalışabilir:

  • aynı anda çalışan iki veya daha fazla iş parçacığı var;
  • bu iş parçacıkları birbirlerinin yürütülmesine müdahale etmez - örneğin, harici depolama aygıtı veya ağ arabirimi gibi paylaşılan bir kaynak için rekabet etmezler.

Şimdi iki iş parçacığı tarafından gerçekleştirildiğinde OpenGL oluşturmanın nasıl göründüğüne basit bir göz atalım. İki işlemciyi "gören" bir uygulama, iki OpenGL oluşturma iş parçacığı oluşturursa, her biri için OpenGL kurallarına göre kendi gl bağlamı oluşturulur. Buna göre, her iş parçacığı kendi gl-bağlamına göre işler. Ancak sorun şu ki, görüntünün görüntülendiği pencere için aynı anda yalnızca bir gl bağlamı geçerli olabilir. Buna göre, bu durumda iplikler basitçe "sırasıyla" oluşturulan görüntüyü pencereye çıkararak dönüşümlü olarak bağlamlarını güncel hale getirir. Söylemeye gerek yok, bu "bağlamların değişimi" ek yük açısından çok pahalı olabilir mi?

Ayrıca, örneğin, OpenGL sahnelerini gösteren çeşitli uygulamalarda iki CPU kullanımının grafiklerini vereceğiz. Tüm ölçümler aşağıdaki konfigürasyona sahip bir platformda yapılmıştır:

  • bir veya iki Intel Xeon 2.2 GHz (Hyper-Threading devre dışı);
  • 512 MB RDRAM bellek;
  • Supermicro P4DC6 + anakart;
  • ASUS V8200 Deluxe ekran kartı (NVidia GeForce3, 64 MB DDR SDRAM, Detonator 21.85 sürücüleri);
  • Windows 2000 Professional SP2
  • video modu 1280x1024x32 bpp, 85 Hz, Vsync devre dışı.

Mavi ve kırmızı, sırasıyla CPU 0 ve CPU 1 kullanımının grafiklerini gösterir. Ortadaki çizgi, son CPU Kullanım grafiğidir. Üç grafik, 3D Studio MAX 4.26'dan iki sahneye ve SPEC ViewPerf karşılaştırmasının (AWadvs-04) bir parçasına karşılık gelir.


CPU Kullanımı: Animasyon 3D Studio MAX 4.26 - Anibal (manipülatörlü) .max


CPU Kullanımı: Animasyon 3D Studio MAX 4.26 - Rabbit.max


CPU Kullanımı: SPEC ViewPerf 6.1.2 - AWadvs-04

Aynı model, OpenGL kullanan diğer birçok uygulamada tekrarlanır. İki işlemci hiç uğraşmıyor ve toplam CPU Kullanımı %50-60 çıkıyor. Aynı zamanda tek işlemcili bir sistem için tüm bu durumlarda CPU Kullanımı güvenle %100'de tutulur.

Bu nedenle, bu kadar çok OpenGL uygulamasının ikili sistemlerde çok fazla hızlanmaması şaşırtıcı değildir. Eh, bazen yavaşlamalarının bile bize göre tamamen mantıklı bir açıklaması var.

İki mantıksal CPU ile performans düşüşünün daha da önemli olduğunu söyleyebiliriz, bu oldukça anlaşılır: iki mantıksal işlemci, iki fiziksel işlemciyle aynı şekilde birbirine müdahale eder. Ancak genel performansları doğal olarak daha düşük çıkıyor, bu nedenle Hyper-Threading etkinleştirildiğinde, iki fiziksel CPU çalışırken olduğundan daha fazla düşüyor. Sonuç tahmin edilebilir ve sonuç basittir: Hyper-Threading, "gerçek" SMP gibi, bazen OpenGL için kontrendikedir.

CAD uygulamaları... Önceki sonuç, SolidEdge V10 için SPECapc ve SolidWorks için SPECapc olmak üzere iki CAD testinin sonuçlarıyla doğrulanır. Hyper-Threading için bu testlerin grafik performansı benzerdir (ancak SolidEdge V10 için SMP sistemi durumunda sonuç biraz daha yüksektir). Ancak işlemciyi yükleyen CPU_Score testlerinin sonuçları şunu düşündürüyor: SMP'den %5-10 kazanç ve Hyper-Threading'den %14-19 yavaşlama.

Ancak nihayetinde Intel, bazı durumlarda Hyper-Threading sırasında - örneğin boş bekleme döngüleri kullanırken - performans düşüşü olasılığını dürüstçe kabul ediyor. Sadece sebebin bu olduğunu varsayabiliriz (SolidEdge ve SolidWorks kodunun ayrıntılı bir incelemesi bu makalenin kapsamı dışındadır). Sonuçta herkes, kanıtlanmış güvenilirliği tercih eden ve özellikle programlamadaki yeni eğilimleri dikkate alarak kodu yeniden yazmak için acele etmeyen CAD geliştiricilerinin muhafazakarlığını bilir.

Özetleme veya "Dikkat, doğru soru"

Hyper-Threading çalışıyor, buna hiç şüphe yok. Tabii ki, teknoloji evrensel değil: Hyper-Threading'den "daha kötü" olan uygulamalar var ve bu teknoloji yayılırsa, bunların değiştirilmesi arzu edilir. Ama aynı şey zamanında MMX ve SSE'de de olmadı ve SSE2'de de olmaya devam etmiyor mu? ..

Ancak bu, bu teknolojinin gerçeklerimize uygulanabilirliği sorusunu gündeme getiriyor. Hyper-Threading'li Xeon tabanlı tek işlemcili bir sistem sürümünü hemen kaldıracağız (veya ikinci bir işlemci satın alınana kadar yalnızca geçici olmasına izin vereceğiz): performansta %30'luk bir artış bile fiyatı haklı çıkarmaz. herhangi bir şekilde - o zaman normal bir Pentium 4 satın almak daha iyidir. CPU sayısı iki veya daha fazla kalır.

Şimdi çift işlemcili bir Xeon sistemi (örneğin, Windows 2000 / XP Professional) satın aldığımızı düşünelim. İki CPU kurulu, Hyper-Threading açık, BIOS dört mantıksal işlemci buluyor, şimdi nasıl çıkarabiliriz ... Dur. Peki işletim sistemimiz kaç işlemci görecek? Doğru, iki. Sadece iki, çünkü daha büyük bir sayı için tasarlanmamıştır. Bunlar iki fiziksel işlemci olacak, yani her şey tamamen devre dışı bırakılmış Hyper-Threading ile aynı şekilde çalışacak - daha yavaş değil (iki "ek" mantıksal CPU duracak), ancak daha hızlı değil (ek testlerle doğrulandı, sonuçlar değil tam delilleri nedeniyle verilmiştir). Hmmm, biraz hoş...

Ne kaldı? Peki, gerçekten bizim iş istasyonumuza Advanced Server veya .NET Server koymayın? Hayır, sistem kendini kuracak, dört mantıksal işlemciyi tanıyacak ve çalışacaktır. Ancak sunucu işletim sistemi, hafifçe söylemek gerekirse (finansal yönlerinden bahsetmiyorum bile) bir iş istasyonunda biraz garip görünüyor. Tek makul durum, çift işlemcili Xeon sistemimizin bir sunucu gibi davranacağı zamandır (en azından bazı koleksiyoncular, Xeon iş istasyonu işlemcilerinde tereddüt etmeden sunucu üretimine başlamıştır). Ancak karşılık gelen işletim sistemlerine sahip ikili iş istasyonları için Hyper-Threading'in uygulanabilirliği sorgulanabilir. Intel, artık mantıksal olmayan ancak fiziksel CPU'ların sayısına dayalı olarak işletim sistemi lisanslamasını aktif olarak savunuyor. Tartışmalar hala devam ediyor ve genel olarak, çoğu, dört işlemciyi destekleyen iş istasyonları için bir işletim sistemi görüp görmeyeceğimize bağlı.

Peki, sunucularla her şey oldukça basit bir şekilde ortaya çıkıyor. Örneğin, Hyper-Threading'in etkin olduğu çift işlemcili bir Xeon sistemine kurulan Windows 2000 Advanced Server, dört mantıksal işlemciyi "görecek" ve üzerinde sorunsuzca çalışacaktır. Sunucu sistemlerinde Hyper-Threading'in faydalarını değerlendirmek için, çift işlemcili Xeon MP sistemleri ve çeşitli Microsoft sunucu uygulamaları için Intel Mikroişlemci Yazılım Laboratuvarlarından alınan sonuçları sunuyoruz.

"Ücretsiz" iki işlemcili bir sunucu için %20-30'luk bir performans artışı cazip olmaktan da ötedir (özellikle "gerçek" 4 işlemcili bir sistem satın almakla karşılaştırıldığında).

Dolayısıyla, şu anda Hyper-Threading'in pratik uygulanabilirliğinin yalnızca sunucularda mümkün olduğu ortaya çıktı. İş istasyonlarıyla ilgili sorun, işletim sistemi lisanslama çözümüne bağlıdır. Bir tane daha Hyper-Threading uygulaması oldukça gerçekçi olsa da - eğer masaüstü işlemciler bu teknoloji için destek alacaksa. Örneğin (hayal edelim), neden Hyper-Threading destekli Pentium 4 ve SMP destekli Windows 2000 / XP Professional yüklü bir sistem? - sunuculardan masaüstü ve mobil sistemlere.

s makinede ve birkaç gönderi buldum, ancak bazılarının mantıksal çekirdekler ve fiziksel çekirdekler vb. Aldığınızdan bahsettiği için kafam karıştı.
Peki mantıksal ve fiziksel çekirdekler arasındaki fark nedir ve fiziksel çekirdek almanın bir yolu var mı? Yoksa mantıksal çekirdekleri hesabımıza dahil etmek mantıklı mı?

4 Solutions, “Peki, mantıksal işlemci çekirdekleri (fiziksel işlemci çekirdeklerinin aksine) nelerdir?” için form web'i toplar.

Fiziksel çekirdekler, bir işlemcideki basitçe fiziksel çekirdeklerdir. Mantık çekirdekleri, bir çekirdeğin aynı anda iki veya daha fazla şeyi yapabilme yeteneğidir. Hyper Threading (HTT) denilen şeyi yapabilen erken Pentium 4 işlemcilerinden doğdu.

Bazı komut türleri için yardımcı çekirdek bileşenleri kullanılmadığında ve diğer uzun işler yapılabildiğinde oynanan bir oyundu. Böylece merkezi işlem birimi aynı anda iki şey üzerinde çalışabilir.

Yeni çekirdekler daha tam işlevsel işlemcilerdir, bu nedenle aynı anda birden çok şey üzerinde çalışırlar, ancak fiziksel çekirdekler kadar gerçek işlemciler değildirler. Intel Core i5 ve Core i7: Intel Mainstream Magnum Opus başlıklı bu makalede, hiper iş parçacığı özelliğinin sınırlamaları ve çekirdeğin fiziksel yetenekleri hakkında tomshardware'de daha fazla bilgi edinebilirsiniz.

lscpu komutunu kullanarak pencerenizin dökümünü görebilirsiniz:

$ lscpu Mimari: x86_64 CPU işlem modu (lar): 32 bit, 64 bit CPU (lar): Çekirdek başına 4 İş parçacığı (s): Soket başına 2 Çekirdek (s): 2 CPU soketi (s): 1 NUMA düğüm(ler): 1 Satıcı Kimliği: OrijinalIntel CPU ailesi: 6 Model: 37 Adımlama: 5 CPU MHz: 2667.000 Sanallaştırma: VT-x L1d önbellek: 32K L1i önbellek: 32K L2 önbellek: 256K L3 önbellek: 3072K NUMA düğüm0 CPU (s ): 0-3

Yukarıdaki Intel i5 dizüstü bilgisayarımda toplam 4 "işlemci" var

İşlemci (ler): 4

2 fiziksel çekirdek var

Soket başına çekirdek (ler): 2

her biri 2 iş parçacığı çalıştırabilir

Çekirdek başına konu (lar): 2

aynı zamanda. Bu iş parçacıkları, çekirdeğin mantıksal yetenekleridir.

Fiziksel çekirdekler, gerçek donanım bileşenleri olan fiziksel çekirdeklerin sayısıdır.

Mantıksal çekirdekler, hiper iş parçacığı kullanarak her bir çekirdekte çalışabilen iş parçacığı sayısıyla çarpılan fiziksel çekirdek sayısıdır.

örneğin, 4 çekirdekli işlemcim çekirdek başına iki iş parçacığı çalıştırıyor, bu nedenle 8 mantıksal işlemcim var.

$ sudo dmidecode | egrep "Soket Tanımlaması: Proc | ((İş parçacığı | Çekirdek) Sayısı)" Soket Tanımı: Proc 1 Çekirdek Sayısı: 14 Parça Sayısı: 28 Yuva Tanımı: Proc 2 Çekirdek Sayısı: 14 Parça Sayısı: 28

İki yuva. Her konektörün 14 fiziksel çekirdeği vardır. Her çekirdeğin iki dişi vardır (28/14). "cpus" veya mantık işleme mantıksal bloklarının toplam sayısı 56'dır ("top" ve diğer bazı komutların size "cpus" sayısı olarak gösterdiği şey budur).

Hyperthreading teknolojisi, bir fiziksel işlemci çekirdeğinin iki mantıksal işlemci gibi davranmasını sağlar.

Böylece, bir işlemci çekirdeği aynı anda iki bağımsız iş parçacığı yürütebilir.

Intel, fiziksel bir işlemciye soket olarak atıfta bulunur.

Hyperthreading, fiziksel bir işlemcinin mantıksal işlemciler adı verilen iki fiziksel işlemciye sahipmiş gibi davranmasını sağlar. Ne için?

Hyperthreading sistem performansını iki katına çıkarmasa da, boşta kalan kaynaklardan yararlanarak performansı iyileştirebilir ve bu da belirli önemli iş yükü türleri için daha fazla verim sağlar. Meşgul bir çekirdekte tek bir mantıksal işlemcide çalışan bir uygulama, hiper iş parçacığı olmayan bir işlemcide tek modda çalışırken aldığı bant genişliğinin yarısından biraz fazlasını bekleyebilir.

Özet

Fiziksel işlemci, görebildiğimiz ve düşebildiğimiz bir şeydir.

Mantıksal işlemci şuna benzer: Fiziksel Çekirdek, iki fiziksel çekirdek görevi görür