2016-04-12 16 views
2

olduğunu ben bir cevap bulmaya çalıştım ama bulunan tüm bilgilerden daha karıştı bir sorum var - ne yazık ki, Yani net bir yanıtOptimal sayısı hyperthreading kapalı

alamamış, hyperthreading'in kapalı olduğu bir kondomarım var.

Yazdığım bir programda kullanmam gereken en uygun konu sayısı nedir?

Programım% 100 CPU bağlı değilse (IO ile ilgilenir), yani en iyi iş parçacığı çekirdek başına bir iş parçacığından daha fazla olacaktır, çünkü bekliyorum çok iş parçacığı olacak ve daha fazla sahip Bu tür programlar için (içerik değişiminin fazla olması nedeniyle değil) daha iyi olacaktır.

AMA, Programım% 100 CPU bağlı ise - çekirdek başına bir iplik en uygunudur? Daha fazla iş parçacığı olduğu için kafam karıştı, yani her iş parçacığı için belki daha büyük bir dilim zaman elde ediliyor - bu da performansı artırabilir.

Teşekkürler!

+1

Kesin bir yanıt alamıyorum ancak programınızı her zaman kıyaslayabilirsiniz. –

+0

İş yükünü bilerek cevaplamak imkansız. Daha fazla iş parçacığı, hepsi çalışıyorsa bir * daha küçük * dilim ve daha fazla yük anlamına gelir. –

cevap

0

Hiper-iş parçacığı olmadan yalnızca CPU'ya bağlı yüklerle, yanıt her zaman çekirdek başına 1 iş parçacığıdır.

HT açıldığında, HT-çekirdeği başına bir iplikten daha az olabilir, çünkü iş parçacıkları aynı önbellek üzerinde savaşır. Ama genellikle, burada bile HT çekirdeği başına bir iplik en iyisidir.

IO iş yükleriyle çok daha karmaşıktır, ancak bu burada geçerli değildir.

, daha konuları içeren ben muhakeme izleyin

Değil emin her iş parçacığı için daha büyük bir dilim zaman alıyor belki anlam beri. OS, zaman dilimlerini yaklaşık olarak yuvarlak bir robin şeklinde iş parçacıklarına dağıtacaktır. Zaman dilimleri 4-40 ms'dir ve boyutları iplik sayısına bağlı olarak değişmez.

İdeal olarak, iş parçacığı sayısı tam olarak doğru olduğunda, konuşmak için bir bağlam anahtarı yoktur. Daha fazla konu eklediğiniz daha fazla iş parçacığı olacaktır.

+0

Tamam teşekkürler! Daha büyük dilim zamanı hakkında, benim yanlış anlaşılma oldu. HT'in çekirdek başına 1 iplik üzerinde olması durumunda genellikle en iyisi olduğunu söylüyorsunuz? Aslında 2 olmasını beklerim (2 iş parçacığı birlikte çalıştığında) .Aksi takdirde, paylaşılan önbellek problemi çok büyükse, neden HT kullanmak zorunda kalırsın? –

+0

4x2 çekirdeğiniz varsa, 8 iş parçacığını (genellikle) çalıştırın. Paylaşılan önbellek iyi çalışıyor, sadece iki iş parçacığının verilerini barındırması gerekiyor. Bu hiç bir soruna neden olmaz veya bozulmaya yol açabilir. Bence bozulma nadir görülen bir durumdur. Elbette en güvenli yol, hem yaklaşımları hem de ölçütleri denemek. Müşteri makinelerinde otomatik 5 saniyelik bir referans noktası bile çalıştırabilirsiniz. – usr