es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo limitar el número de núcleos de la CPU utilizados?

Estoy tratando de usar solo un núcleo de la CPU. Mi sistema tiene 8 núcleos. Cuando ejecuto “htop” en la terminal, solo debería usar un solo núcleo, de lo contrario, todos deberían permanecer inactivos. Estoy utilizando el siguiente código pero todavía está utilizando todos mis núcleos, ¿qué estoy haciendo mal?

Código:

import tensorflow as tf

session_conf =  tf.ConfigProto(intra_op_parallelism_threads=1, 
                               inter_op_parallelism_threads=1,
                               device_count={'CPU': 1})

sess = tf.Session(config=session_conf)

Está utilizando todos los núcleos, pero con un bajo porcentaje, como 23 o 20, etc.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Se espera que una aplicación utilice múltiples núcleos incluso si solo se especifica un núcleo de forma explícita. Esto se debe a que el sistema operativo programa hilos en los núcleos disponibles para maximizar la utilización del sistema en general.

    En tu caso, aunque especificas device_count={'CPU': 1}, no significa que las operaciones de Tensorflow se limitarán a un solo núcleo. En cambio, solo limita la cantidad de dispositivos de CPU disponibles para Tensorflow a uno.

    Si deseas limitar el uso a un solo núcleo, puedes intentar ejecutar tu programa con el comando taskset en Linux. Por ejemplo:

    taskset -c 0 python tu_programa.py

    Esto establecerá la afinidad de la CPU del proceso para utilizar solo el núcleo 0.

    Alternativamente, puedes intentar utilizar la función os.sched_setaffinity en Python para establecer la afinidad de la CPU del proceso actual. Sin embargo, este método puede no funcionar en todos los sistemas operativos.

    Ten en cuenta que restringir el uso a un solo núcleo puede limitar el rendimiento, especialmente para tareas intensivas en cómputo que pueden beneficiarse de la paralelización.

Comments are closed.