GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo puedo configurar la afinidad del procesador de un proceso en Linux?

He usado taskset para esto. Si tiene un conjunto de tareas instalado, algo como:

taskset -cp 0,2 45678

establecería el proceso con id 45678 para tener una afinidad con cpus 1 y 3.


Dentro del proceso, la llamada sería sched_setaffinity() , o para cosas de pthreads, pthread_setaffinity_np()

En una nota relacionada, si le preocupa la afinidad de la CPU de su programa, puede valer la pena prestar atención a cómo está haciendo la asignación de memoria también. Los sistemas más grandes con memoria conectada a más de un controlador (es decir, varios zócalos de CPU, cada uno con su propio) tendrán una latencia y un ancho de banda variables entre los diferentes pares de CPU y memoria. También querrá ver la afinidad NUMA, usando el numactl comando o las llamadas del sistema con las que trabaja. Un programa en el que trabajé obtuvo una mejora del rendimiento del 10 % gracias a esto.


Necesitas instalar schedutils (Utilidades del programador de Linux). Lo he usado en mi escritorio de Ubuntu.

Enlace de San Francisco


Linux
  1. UNIX / Linux:Cómo cambiar la amabilidad (prioridad) de un proceso

  2. ¿Cómo configurar la afinidad de la CPU para un proceso de C o C++ en Linux?

  3. ¿Cómo establecer el nombre de un hilo en Linux pthreads?

  4. ¿Cómo configuro el directorio de trabajo del proceso principal?

  5. Cómo configurar la dirección IP desde C en Linux

Cómo cambiar la prioridad de un proceso en Linux

Cómo matar o terminar un proceso de Linux:la guía definitiva

Cómo encontrar el PID y PPID de un proceso en Linux

Cómo configurar el clúster RabbitMQ en Ubuntu/Debian Linux

Cómo configurar el cortafuegos UFW en Linux

Cómo enviar procesos a segundo plano en Linux