2009-11-16 12 views
7

Bir işletim sistemi (Windows, linux) Hyper iş parçacığı etkinleştirilmiş bir ortamda mantıksal cpus'a sayıları nasıl atadığını bulmaya çalışıyorum. ?Hyperthead özellikli bir sistemde CPU Numaralandırma

Her iki işletim sistemi de fiziksel olarak ilk önce Fiziksel İşlemciye numaralar atar ve ardından mantıksal cpus'u numaralandırmaya başlar mı yoksa takip eden başka bir kural var mıdır? Örneğin. Hyper threading ile 2 fiziksel cpu sisteminde, bir OS ilk fiziksel işlemci ve daha sonra 1,3 ila ikinci fiziksel işlemci için 0,2 numarası atadı ..?

Herhangi bir referans gerçekten takdir edilecektir.

Şimdiden teşekkürler.

Saygılarımızla, -Jay.

Düzenleme: Alan'ın sorusuna yanıt verme: Bunu bilmem gerek çünkü, Benim işimde, bağlam anahtarlarından kaçınmak için belirli iş parçacıklarına çeşitli iş parçacıklarını bağlama ihtiyacım var ve belirli Görevlerin (Konuları) 'a bağlı olduğundan emin olmak istiyorum ayrı fiziksel cpus. Teşekkürler

cevap

8

Bildiğim kadarıyla, CPU'nun çekirdeklerini nasıl sergilediğine bağlıdır. HT etkinleştirildiğinde, fiziksel CPU'lar açık değildir, fiziksel işlemci başına iki mantıksal CPU vardır, yani mantıksal CPU'larda bir iş parçacığı çalıştırırsanız fark yoktur. Önemli olan tek şey, mantıksal CPU'ların çiftlerinin her bir fiziksel CPU'ya ait olmasıdır.

Tek çekirdekli işlemcilerde (HT'li Pentium 4 gibi), yalnızca bir çiftiniz olduğu için oldukça basittir - yani (0, 1). Dört çekirdekli işlemcilerle (Nehalem gibi), mantıksal çekirdek çiftleri (0,4), (1,5), (2,6) ve (3,7) 'dir. Her bir çiftin tüm ilk yarısına sahip olma modeli, daha sonra tüm ikincil yarıya, daha fazla çekirdeğe sahip gelecekteki CPU'lar ile shuold ölçeğine sahiptir.

Asıl soru, ikili düzenlemeyi neden bilmeniz gerekiyor? İşletim Sisteminin zamanlayıcısının doğru konular için doğru çekirdekleri seçmesine izin verin - oldukça iyi bir iş çıkarır.

+1

Farklı görevleri (Konuları) farklı mantıksal cpus'lara bağlamak istediğim için bunu kullanmak istiyorum. –

+0

Ama neden? İplik programlayıcı, yükü çekirdekler arasında doğru şekilde dengelemekle ilgilenir. Bunu genellikle manuel olarak yapmaya gerek yoktur (hatta performansa zarar verebilir) ve kenar kutuları için beklenmedik yan etkilere neden olabilir. –

+0

Kullandığımız bazı Algoritmaların mikro saniyeler içinde zamanlama kısıtlamaları vardır. Bu algıları işleyen bu çoklu iş parçacıklarında CPU yakınlığını zorlamazsak, bağlam anahtarları bu zamanlama son tarihlerinin elde edilmesini imkansız hale getirir. . –

4

CPU'larla ilgili bilgileri bulmak için /sys/devices/system/cpu/'a bakabilirsiniz. Çekirdeklerin yerleşimi ve hiper iş parçacıklı çiftleri /sys/devices/system/cpu/cpuN/topology/thread_siblings_list'da bulunabilir.