Saltar al contenido

Rendimiento de CPU lógico vs. físico

Traemos la mejor información que hallamos en internet. Nosotros deseamos que te sirva de ayuda y si deseas comentarnos algún detalle que nos pueda ayudar a crecer hazlo con total libertad.

Solución:

El concepto de núcleos no es tan simple Núcleos lógicos son el numero de Núcleos físicos veces el número de hilos que puede ejecutarse en cada núcleo. Esto se conoce como HyperThreading. Si tengo una computadora que tiene un procesador de 4 núcleos, ejecuta dos subprocesos por núcleo, entonces tengo 8 procesadores lógicos. Puede ver las capacidades básicas de su computadora ejecutando lscpu dominio.

Si un procesador tiene 4 núcleos, pero puede ejecutar 8 subprocesos en paralelo, significa que solo tiene 4 núcleos físicos (unidades de procesamiento). Pero su hardware puede admitir hasta 8 subprocesos en paralela. Claramente, se pueden ejecutar un máximo de 4 trabajos en los núcleos. Un trabajo que se ejecuta en el núcleo, si de alguna manera se detiene memoria o operación de E/S entonces otro hilo puede usar ese núcleo libre.

Ahora debe comprender que si su computadora tiene 2 núcleos físicos y puede ejecutar 2 subprocesos por núcleo, entonces tiene 4 procesadores lógicos. Por lo tanto, puede ejecutar solo 2 instancias ya que tiene 2 núcleos físicos, lo que significa que está utilizando todas las capacidades de los núcleos físicos únicos (2 subprocesos a la vez). Entonces el rendimiento será del 50%. Pero si en algún momento un subproceso queda inactivo, entonces el núcleo puede cargar un subproceso en ese núcleo.

Puedes apagar el HyperThreading en BIOS(algo como “tecnología intel ht“) y vea la diferencia entre las capacidades normales y de HyperThreading, ya que ahora el rendimiento será del 100 %.

Incluso con muchos más núcleos que tareas, no se escalarán perfectamente. Eso es porque algún estado casi siempre se comparte. No necesariamente en la tarea, sino en el núcleo, por ejemplo. O pueden acceder al mismo recurso, como la red o un disco o lo que sea.

SMT (es decir, Hyper-Threading) puede basarse en el hecho de que diferentes tareas usan diferentes unidades de ejecución de CPU. Como tal, el llamado “paralelismo a nivel de instrucción” se puede lograr en CPU superescalares. Prácticamente cualquier procesador x86 moderno es superescalar.

Suponiendo que tiene dos tareas que solo consisten en agregar números sin otras instrucciones de la CPU, entonces sí, entrarán en conflicto cuando se ejecuten en el mismo núcleo físico, lo que puede provocar una degradación significativa del rendimiento.

Sin embargo, la mayoría de las veces, este no es el caso y sucede una variedad de cosas. Siempre que el mismo comando no aparezca en ambos flujos de instrucciones (aproximadamente) al mismo tiempo, se puede mejorar la utilización de la unidad de ejecución de la CPU.

Acuérdate de que tienes la capacidad de añadir una estimación certera si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *