Windows 7'deki programlarda belirli CPU çekirdeği kullanımını zorla


4

En az iki çekirdekli olduğunu bildiğimden cpu0 yerine cpu1 üzerinde çalışmaya zorlayacak bir yol var mı?

C ++ kodunu Windows 7 x64'te kodla derliyorum:


1
Bunun bir SO sorusu olduğunu söylemeye eğildim.
rob

Yanıtlar:


8

Görev yöneticisini açabileceğinizi ve çalışan uygulamanızı arayabileceğinizi biliyorum. Görev yöneticisindeki uygulamaya sağ tıklayın ve Affinity öğesini seçin.

görüntü tanımını buraya girin

Ardından kullanmak istediğiniz işlemcileri seçebilirsiniz.

görüntü tanımını buraya girin


1
Bunun yalnızca seçilen çekirdeklerde, yalnızca kelimenin tam anlamıyla bir yakınlıkta çalışacağını GARANTİ olarak düşünmüyorum. Windows'un kendisini hissettirdiği bir konu varsa: A: Hareket edebilir ve B: Hareket etmeli, C: Hareket edecek. Bu aynı zamanda başka şeylerin de bu çekirdeğe koşmasını engellemiyor (ki bu, uzun zamandır sorduğum bir sorunun konusu: /)
Shinrai

5

Evet, Windows API'sında var: SetProcessAffinityMask () . Ayrıca burada gösterildiği gibi görev yöneticisini kullanarak bir işlem benzeşimi ayarlayabilirsiniz .

Bunu yapmak istemenin pek geçerli bir nedeni yok. İşletim sistemi genellikle doğru CPU üzerinde zamanlama programlarının iyi bir iş çıkarır.


Belirli bir çekirdekte iş parçacığı çalıştırmanın bir yolu olup olmadığını biliyor musunuz? GSC Game World, bir güncellemede STALKER'e ayrıntılı nesnelerin hesaplanmasını ikinci işlemci çekirdeğine taşıdıklarını iddia etti ve bunun için tam kapsamlı bir işlem kullandıklarını düşünemiyorum, bunun için basit bir iş parçacığı daha mantıklı olur. ( stalker.filefront.com/file/… )
Felix Dombek

2
Orada SetThreadAffinityMask (), ancak büyük olasılıkla STALKER o kullanmıyordu. Onlar sadece hesaplamayı ana oyun mantığı iş parçacığından taşıdılar ve kendi özel iş parçacığına yerleştirdiler ve işletim sisteminin iş parçacığını farklı bir CPU'da programlamayı ele almasına izin verdiler.
shf301
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.