Latinoamérica
de.novatoanovato@gmail.com

Comando -nproc-

Dedicado al nuevo usuario de software libre

Comando -nproc-

Comando nproc

El comando nproc, es un comando del tipo UNIX, imprima la cantidad de unidades de procesamiento (cores o núcleos) disponibles para el proceso actual, estos puede ser menor que la cantidad de procesadores en línea. Si no se puede acceder a esta información, imprima el número de procesadores instalados.

Objetivo de éste artículo

El principal objetivo de éste artículo es aprender a utilizar el comando nproc y su sintaxis, entendiendo la diferencias entre núcleo fisicos, núcleos virtuales de un procesador y si estos se encuentran online o offline; para así interpretar la salida del comando de forma correcta.

Núcleos de un procesador

Me gustaría tocar en este tema divido a que la ejecución del comando nproc nos permite obtener justamente información respecto a los núcleos de un procesador.

¿Que son los núcleos físicos de un procesador?

El núcleo es parte del procesador, es quien o quienes (pueden ser mas de uno) realizan todos los cálculos, muchas veces definido como el cerebro que hace que nuestro dispositivo funcione. Cada uno de los núcleos puede manejar un hilo o thread de datos o sea, ejecutar un ciclo de instrucción a la vez.  4 cores, 4 instrucciones a la vez.

¿Qué son núcleos virtuales de un procesador?

Con el paso de los años apreció la tecnología HyperThreading que simplemente consiste en duplicar algunos elementos dentro del procesador tales como: registros, memorias caché de primer nivel, etc. Esto permite al núcleo (o core) del procesador poder manejar dos tareas a la vez (2 hilos o threads) y da lugar a la aparición de los núcleos lógicos.

Esta tecnología HyperThreading “engaña” al sistema operativo al hacerle creer que existen dos núcleos cuando en realidad solo existe uno, el que existe de verdad es el núcleo físico y el que aparece fruto de HyperThreading es el virtual. El núcleo virtual tiene mucha menos capacidad de procesamiento que el núcleo físico por lo que el rendimiento no es equivalente a tener dos núcleos físicos ni mucho menos, pero proporciona un buen extra.

Núcleos online

Son los núcleos del procesador que están activos ejecutando instrucciones o a la espera de una y por ende su hilo o hilos (en caso de poseer mas de uno) también lo estarán.

Núcleos offline

El núcleo fuera de línea significa literalmente que el núcleo está fuera de línea. Es decir, el núcleo no está encendido y, por lo tanto, el núcleo no puede ejecutar ninguna instrucción. Se sobre entiende que el estado también afecta a sus threads.

Sintaxis

El comando nproc se corresponde con la siguiente sintaxis:

nproc [Opciones]

Opciones del comando nproc

Este programa cuenta con una sintaxis muy simple y con apenas un par de opciones que serán desarrolladas a continuación.

Obtener el numero de cores en online

La ejecución del comando nproc a secas, no imprimara a la salida la cantidad de cores total (tanto físicos como virtuales) que se encuentren en linea o activos. Veamos.

El equipo donde estoy ejecutando el programa cuenta con un procesador de 8 núcleos físicos y 8 virtuales. Dicho de otra manera 8 núcleos y 2 hilos. Haciendo un total de 16 núcleos. otra de las cosas que notamos, es que nos esta mostrando el total, esto quiere decir que todos los cores están en online.

Obtener el numero total de cores

El comando nproc cuenta con la opción –all, por medio de esta obtendremos el numero total de núcleos (físico y virtuales) de nuestro procesador, teniendo en cuenta también, tanto los que están online como los que están offline.

Excluir unidades de procesamiento

Existe una opción de línea del comando en su sintaxis, —ignore,  que puede ser usada para decirle a nproc que, si es posible, excluya un número determinado de unidades de procesamiento. Veamos.

nproc --ignore = 2

Conclusión

Claramente, nproc no es el tipo de herramienta que un usuario promedio de línea de comandos utilizaría en su día a día, aunque nunca esta de mas saber que dispones de el si lo necesitas.

Espero sea de utilidad.
Saludos Cristian.

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

tres × 4 =