GNU/Linux >> Tutoriels Linux >  >> Linux

Comment définir l'affinité processeur d'un processus sous Linux ?

J'ai utilisé l'ensemble de tâches pour cela. Si vous avez un ensemble de tâches installé, quelque chose comme :

taskset -cp 0,2 45678

définirait le processus avec l'id 45678 pour avoir une affinité avec les processeurs 1 et 3.


À l'intérieur du processus, l'appel serait sched_setaffinity() , ou pour les trucs pthreads, pthread_setaffinity_np()

Sur une note connexe, si vous vous inquiétez de l'affinité CPU de votre programme, il peut être utile de prêter également attention à la façon dont il fait l'allocation de mémoire. Les systèmes plus grands avec de la mémoire attachée à plus d'un contrôleur (c'est-à-dire plusieurs sockets CPU, chacun avec le leur) auront une latence et une bande passante variables entre différentes paires CPU-mémoire. Vous voudrez également examiner l'affinité NUMA, en utilisant le numactl commande ou les appels système avec lesquels il fonctionne. Un programme sur lequel j'ai travaillé a obtenu une amélioration de ses performances de 10 %.


Vous devez installer schedutils (Utilitaires du planificateur Linux). Je l'ai utilisé sur mon bureau Ubuntu.

Lien SF


Linux
  1. UNIX / Linux :Comment changer la gentillesse (priorité) d'un processus

  2. Comment définir l'affinité CPU pour un processus à partir de C ou C++ sous Linux ?

  3. Comment définir le nom d'un thread dans les pthreads Linux ?

  4. Comment définir le répertoire de travail du processus parent ?

  5. Comment puis-je obtenir l'état du clavier sous Linux?

Comment changer la priorité d'un processus sous Linux

Comment tuer ou terminer un processus Linux :Le guide ultime

Comment trouver le PID et le PPID d'un processus sous Linux

Comment configurer le cluster RabbitMQ sur Ubuntu/Debian Linux

Comment configurer le pare-feu UFW sous Linux

Comment envoyer des processus en arrière-plan sous Linux