Bir işlemin işlemci afinitesini Linux'ta nasıl ayarlayabilirim?


Yanıtlar:


24

Bunun için görev setini kullandım. Yüklü görev kümeniz varsa aşağıdaki gibi bir şey yapın:

taskset -c 1,3 -p 45678

kimliği 45678 ile işlemi cpus 1 ve 3'e yakın olmak için kuracaktı.


1
Anonim bir düzenleme , komutun taskset -p -c 1,3 45678yerine taskset -c 1,3 -p 45678; yani, o -c 1,3a, maske özellikleri ve, örneğin, arasında yerleştirilmelidir -pve pid.
G-Man 'Yenilenmiş Monica'yı'

7

Sürecin içinde, çağrı sched_setaffinity()ya da pthreads işleri içinpthread_setaffinity_np()

İlgili bir notta, programınızın CPU benzeşimi hakkında endişeleniyorsanız, bellek tahsisinin nasıl yapıldığına dikkat etmek faydalı olabilir. Birden fazla denetleyiciye bağlı bellek bulunan daha büyük sistemler (yani her biri kendi başına olan çoklu CPU soketleri), farklı CPU-bellek çiftleri arasında değişken gecikme ve bant genişliğine sahip olacaktır. numactlKomutu veya çalıştığı sistem çağrılarını kullanarak da NUMA yakınlığına bakmak isteyeceksiniz . Çalıştığım bir program bundan% 10 oranında performans artışı sağladı.


3

Yüklemeniz gerekir schedutils(Linux zamanlayıcı yardımcı programları). Ubuntu Masaüstümde kullandım.

SF bağlantısı


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.