6

Bir HyperThreading CPU üzerinde OpenMP kodunu kullanıyorum.Hiper iş parçacığı paraziti nasıl etkiler?

Diğer tüm değerler eşitse, , HyperTreaded olmayan bir işlemcinin performansı nasıl değiştirir?

olursa olsun ben koşmak kaç ipler,% 100 işlemci kullanımını fark, ancak iş parçacığı sayısını değiştirerek artış performansı yok. Bu nasıl olabilir? Hikaye olmayan INTEL parçacıklı CPU'lar için aynı

mi?

cevap

3

Hiper-iş parçacığındaki performans iyileştirmesinin (varsa) tahmin edilmesi zordur.

Hyperthreading tek iplik tezgahları (neredeyse) herhangi bir nedenle, işlemci için başka bir iş parçacığı talimatların bir havuzu var eğer (denemesi için) çalıştırmak anlamına gelir. Örneğin, kod ana bellek gecikmesine büyük ölçüde bağımlıysa (örneğin, önceden almayan tahmin edilemeyen okuma modelleri), hiper-yayılma performansı önemli ölçüde artırabilir. Kod dikkatle vb dikkatli önbellek kullanımı, ön yüklemesi yoluyla gecikme kapsayacak şekilde yazılmışsa

Diğer yönde ise, bu hiper iş parçacığı gelen az veya hiçbir şey elde edilebilir. Özellikle, iş parçacığı programlamasında hiper iş parçacığını hesaba katmayan eski işletim sistemlerinde, fazladan iş parçacıklarının aslında daha fazla bağlam anahtarlamasıyla sonuçlanabilir ve böylece genel yürütmeyi yavaşlatabilir.

Tamamen tek iş parçacıklı kodla başladığınızı ve bazı OpenMP yönergelerini eklediğinizi varsayalım, kendi deneyimim Hyperthreading'in normalde siparişte veya% 10'unda bir şey tarafından performansı iyileştirmek için iyi olduğudur. Eğer kod, valilik veya benzer bir şey için hemen hemen herhangi bir girişimde bulunursa, bu avantajın çoğu (hemen olmasa bile) hemen hemen derhal buharlaşır.

+0

BIOS'ta hiper iş parçacığını devre dışı bırakabileceğinizi öğrendim. Bu gelişmeyi nasıl belirliyorsunuz? – roro

+0

@roro: BIOS'ta hiper iş parçacığını devre dışı bırakarak ve iş parçacığı sayımını elimdeki fiziksel çekirdek sayısına elle sınırlayarak ve iş parçacığı benzeşimini elle ayarlayarak testler yaptım. –

+0

HT'nin performansının iyileştirilmesinin zor olduğunu kabul ediyorum. Ancak, tüm yürütme kaynakları duraklamadan kullanılmaz. Bunun yerine, yürütme kaynakları (bağlantı noktaları, önbellek, ...) hiper-iş parçacıkları arasında paylaşılır. Bu nedenle HT 1 için bir eklenti Haswell portu 0 üzerinde çalışabilirken HT 2 için bir lea μop aynı saat döngüsünde port 5 üzerinde çalışır. Intel'den alıntı yaparak, "Mikro mimariden bakıldığında, bu hem mantıksal işlemcilerin talimatlarının aynı anda hem de yürütme kaynakları üzerinde yürütülmesini ve yürütülmesini ifade eder." http://www.cs.virginia.edu/~mc2zk/cs451/vol6iss1_art01.pdf – Olsonist

İlgili konular