Hangi çekirdekler aşağıdaki "CPU" değerlerine karşılık gelir?
Çekirdek 1, 2, 3 ve 4'e sahip olduğumuzu varsayarak, CPU4 ve CPU5, çekirdek 3'ü temsil eder.
Aşağıdaki (CPU) ve CPU 7 aşağıdaki gibi bir çekirdeği temsil ediyor mu; HT ve gerçek çekirdek?
İkisi arasında bir fark yoktur - her ikisi de CPU'ya fiziksel donanım arayüzlerine sahiptir, mantıksal arayüz donanımda uygulanır ( daha fazla bilgi için bkz. Intel Core İşlemci Veri Sayfası, Cilt 1 ). Temel olarak, her bir çekirdeğin iki ayrı yürütme birimi vardır, ancak aralarında bazı ortak kaynakları paylaşır. Bu yüzden bazı durumlarda hiper-diş çekme gerçekten performansı düşürebilir.
Örneğin, CPU 6 gerçek bir çekirdeği ve CPU 7 bir HT çekirdeğini temsil ediyorsa, sadece CPU7'ye atanmış bir iş parçacığı yalnızca gerçek bir çekirdeğin kalan kaynaklarını alır mı? (çekirdeğin diğer görevleri yerine getirdiğini varsayarsak)
Yukarıyı görmek. SADECE CPU6 veya SADECE CPU7'ye atanan bir iplik tam olarak aynı hızda çalışacaktır (ipliğin aynı işi yaptığı ve işlemcideki diğer çekirdeklerin boşta olduğu varsayılarak). Windows, HT etkin işlemcileri bilir ve işlem zamanlayıcısı bunları dikkate alır.
Hiper iş parçacığı tamamen işlemcinin içinde yönetiliyor mu, öyle ki dişler içten takılıyor? Öyleyse, CPU kapsamı mı yoksa çekirdek kapsamı mı? Örnek: Eğer CPU 6 ve 7 bir çekirdeği temsil ediyorsa, hangi işlemin atandığı önemli değil, çünkü CPU çalışan bir iş parçacığına uygun kaynakları atayacaktır.
Her ikisi de. Kendisi vermez gerçek donanım değil işletim sisteminin iş programları çalıştırmak için göbekler neyi planlamak. Bununla birlikte, CPU'nun kendisi gerçek yürütme birimleri arasında kaynakları paylaşmaktan sorumludur ve Intel bunu mümkün olduğu kadar verimli hale getirmek için nasıl kod yazabileceğinizi belirler.
Uzun süredir devam eden tek iş parçacıklı işlemlerin en azından görev yöneticisine göre çekirdeklerin etrafında biraz durduğunu fark ettim. Bu, tek bir çekirdeğe bir işlem atamanın performansı biraz artıracağı anlamına mı geliyor (bağlam anahtarları ve önbellek geçersiz kılmalarını önleyerek vb.)? Öyleyse, "sadece sanal bir çekirdeğe" atanmadığımı bilebilir miyim?
Bu normal davranış ve bir, tek bir çekirdek atamadan olacak değil performansını artırmak. Bir nedenden ötürü, tek bir işlemin sadece tek bir fiziksel çekirdekte yürütülmesini sağlamak istiyorsanız, bunu herhangi bir mantıksal işlemciye atayın.
Sürecin “etrafında dönmesinin” nedeni, işlem zamanlayıcısından kaynaklanmaktadır. Bu normal bir davranıştır ve büyük olasılıkla, işlemin hangi çekirdeklere sahip olacağına bakılmaksızın) işlemin hangi çekirdeklerde gerçekleştirilebileceğini sınırlayarak sınırlı performans elde edersiniz, çünkü işlem zamanlayıcısının şimdi her şeyin sizin getirdiğiniz kısıtlamalarla çalışmasını sağlamak için daha fazla çalışması gerekir. Evet, bu ceza çoğu durumda önemsiz olabilir, ancak sonuçta, bunu yapmak için bir nedeniniz olmadıkça, sonuç yok !