Windows bir sistemde 64'ten fazla iş parçacığı deneyimlediğinde, bu iş parçacıklarını işlemci gruplarına ayırır. Bunun yapılma şekli çok ilkeldir: sayılan çekirdek ve iş parçacıklarından ilk 64'ü ilk gruba, ikinci 64'ü bir sonraki gruba gider, vb. Bu, görev yöneticisine gidip belirli bir programın yakınlığını ayarlamaya çalışarak en kolay şekilde gözlemlenebilir:


64 çekirdekli işlemcimizle, eş zamanlı çoklu iş parçacığı etkinleştirildiğinde, 128 iş parçacığına sahip bir sistem elde ederiz. Bu, yukarıda gösterildiği gibi iki gruba ayrılır. Sistem bu moddayken, çoğu yazılımın düzgün çalışması çok zorlaşır. Bir program başlatıldığında, yüke bağlı olarak işlemci gruplarından birine itilir; bir grup meşgulse, program diğerinde oluşturulur. Program grup içinde çalışırken, işlemci grubu farkında olmadığı sürece, yalnızca aynı gruptaki diğer iş parçacıklarına erişebilir. Bu, çok iş parçacıklı bir program 128 iş parçacığı kullanabiliyorsa, işlemci grupları düşünülerek oluşturulmamışsa, yalnızca 64'e erişimle oluşturulabileceği anlamına gelir.
Bu size biraz tanıdık geliyorsa, NUMA veya tekdüze olmayan bellek mimarisini duymuş olabilirsiniz. Bu, sistemdeki CPU çekirdeklerinin ana belleğe göre farklı gecikmelere sahip olması durumunda meydana gelir, örneğin çift soketli bir sistemde: doğrudan kendi çekirdeğine bağlı belleğe erişmek hızlı olabilir, ancak bir çekirdeğin diğer fiziksel CPU'ya bağlı belleğe erişmesi gerekiyorsa çok daha yavaş olabilir. İşlemci grupları, iş parçacıklarının CPU'dan CPU'ya atlamasını önlemek için bunun bir yoludur. Buradaki tek sorun, 3990X'te 128 iş parçacığı olmasına rağmen, hepsinin tek bir CPU olmasıdır!
Windows 10 Pro'da bu bir sorun haline gelir. Görev Yöneticisi'ne doğrudan bakabiliriz:

Burada 64 çekirdeğin ve 128 iş parçacığının yapay bir yük ile yüklendiğini görüyoruz. Ancak buradaki önemli sayı soket sayısıdır. Sistem, sistemde çok sayıda iş parçacığı olduğu için iki soketimiz olduğunu düşünüyor. Bu büyük bir sıkıntı ve bazı kıyaslamalarda çok sayıda yavaşlamanın kaynağı.
(İlginçtir ki, Intel'in 72 hafif çekirdek ve 288 iş parçacığı için 4 yönlü HT'ye sahip en son Xeon Phi yongaları beş soket olarak görünüyor. Acıya ne dersiniz!)
Elbette, tüm bunlardan kaçınmak için basit bir çözüm var - eş zamanlı çoklu iş parçacığını devre dışı bırakmak. Bu, hala 64 çekirdeğimiz olduğu ancak artık yalnızca bir işlemci grubu olduğu anlamına geliyor.

Çipte hala performansın çoğu var (ve bunu daha sonra kıyaslamalarda göreceğiz). Ancak, performansın bir kısmı kaybedildi - 64 iş parçacığı isteseydim, biraz para biriktirir ve 32 çekirdekli olanı alırdım! Bunun kolay bir yolu yok gibi görünüyor.
Ancak daha sonra Windows 10'un farklı sürümlerinin olduğunu hatırlıyoruz.

Microsoft perakendede Windows 10 Home, Windows 10 Pro, Windows 10 Pro for Workstations satıyor ve ayrıca Windows 10 Enterprise için satış anahtarları da bulabiliyoruz. Bunların her biri, pazara dayalı olağan özellik sınırlamalarının yanı sıra işlemci sayısı ve soket sınırlamalarına da sahip. Yukarıdaki diyagramda, Windows 10 Home'un 64 çekirdekle (iş parçacığı) sınırlı olduğunu, Pro/Education sürümlerinin ise 128'e, Workstation/Enterprise sürümlerinin ise 256'ya kadar çıktığını görebiliyoruz. Ayrıca Windows Server da var.
Şimdi mesele şu ki, Workstation ve Enterprise, birden fazla işlemci grubu düşünülerek inşa edilmişken, Pro öyle değil. Bu, tasarımın daha ince unsurlarına derinlemesine inilmeden hemen fark edilmeyen zamanlayıcı ayarlamaları yoluyla ortaya çıktı. Performansta önemli farklılıklar gördük.
Farkları görebilmek için şu karşılaştırmaları yaptık:
64 C / 128 T (SMT Açık) ile 3990X, Win10 Pro ve Win10 Ent
3990X ile Win 10 Pro, SMT Açık ve SMT Kapalı

Karar Nedir?
Çok iş parçacıklı test verilerimizden yalnızca iki sonuç çıkarılabilir. Birincisi, çoğu kıyaslamada işlemci gruplarının ne olduğunu anlamadığı için SMT'yi devre dışı bırakmaktır, çünkü çoğu kıyaslamada performans artışı sağlıyor gibi görünüyor. Ancak, SMT'yi mutlaka etkinleştirmeniz gerekiyorsa, normal Windows 10 Pro kullanmayın: bunun yerine Pro for Workstations (veya Enterprise) kullanın. Günün sonunda, bu, kurumsal düzeyde olma çizgisini aşan donanım kullanmanın püf noktasıdır: aynı zamanda kurumsal yazılım lisanslamasını tetikleme çizgisini de aşar. Neyse ki, çekirdek başına açıkça lisanslanan iş istasyonu yazılımı, sunucu alanının aksine, hala neredeyse yok denecek kadar azdır .
Sonuç olarak bu, bizi sonraki sayfalardaki CPU-CPU karşılaştırmalarımız için biraz ikileme sokuyor. Normalde CPU'larımızı SMT etkinleştirilmiş W10 Pro'da çalıştırıyoruz, ancak bu kıyaslamalardan her çok iş parçacıklı senaryoda en iyi sonucu alamayacağımız açık. Gelecekte >16 çekirdekli işlemcileri nasıl test ettiğimize bakmamız ve bunları Windows 10 Enterprise'da çalıştırmamız gerekebilir. Sonraki sayfalarda, eksiksizlik için W10 Pro ve W10 Enterprise verilerini ekleyeceğiz.
Tarihsel olarak, 64'ten fazla CPU çekirdeği veya iş parçacığına sahip sistemlerde uygulamaları ve süreçleri yönetmek zorlu olmuştur. Mevcut yazılım çözümlerinin çoğu yalnızca ilk 64 sanal CPU ile sınırlı olan bir NUMA düğümünü destekler. Bu sınırlama donanım kaynaklarının yetersiz kullanılmasına neden olabilir ve sistem performansını etkileyebilir.

Ek olarak, Windows'un 64'ten fazla CPU'ya sahip sistemlerde iş parçacığı yakınlığını ve CPU çekirdek tahsisini yönetmek için yerleşik araçları yoktur. Windows Görev Yöneticisi'ni kullanarak CPU yakınlığını değiştirmeye çalışırken, başarılı sonuçlardan daha yaygın olan belirsiz hata mesajlarıdır.
Kurumsal düzeydeki Windows Server işletim sistemleri bile çoğu zaman bir uygulamayı veya işlemi başlangıçta atandığı CPU NUMA düğümünden farklı bir CPU NUMA düğümüne doğru şekilde atamakta başarısız olur.

The Windows and Multithreading Problem (A Must Read)Doğru işletim sistemini seçin![]()
buradaki multithreading, işlemci threadleriyle alakalı.
https://www.anandtech.com/show/15483/am ... x-review/3
CPU affinity with 64+ cores
https://www.febooti.com/products/automa ... cores.html






