Si encuentras algún detalle que no comprendes puedes dejarlo en los comentarios y te responderemos tan rápido como podamos.
Solución:
Sí, Ubuntu está optimizado para CPU multinúcleo y lo ha sido durante muchos años.
Algunos antecedentes:
“La versión 2.0 (del kernel de Linux) se lanzó el 9 de junio de 1996. Hubo 41 lanzamientos en la serie. La característica principal de 2.0 fue SMP apoyo (es decir, procesamiento múltiple simétrico en un solo sistema) y soporte para más tipos de procesadores”.
Ubuntu es un sistema operativo, una distribución de Linux. Un sistema operativo consta de varios componentes de software, como un núcleo, bibliotecas, servicios/demonios, aplicaciones, etc.
Ubuntu usa el kernel de Linux que hace uso de multiprocesamiento simétrico (SMP) y múltiples núcleos. Se escala muy bien desde sistemas de un solo núcleo de una sola CPU de gama baja hasta clústeres de supercomputadoras de alta gama con miles de CPU de varios núcleos.
Ubuntu se envía con cientos de bibliotecas, algunas de las cuales son multiproceso y seguras para subprocesos, otras no. En algunos casos tiene sentido que sean multiproceso, en otros no es aplicable, generalmente es posible o no tiene mucho sentido.
Ubuntu viene con cientos de aplicaciones, algunas están codificadas para hacer uso de CPU multinúcleo, otras no. En algunos casos tiene sentido codificar la aplicación como tal, en otros casos no es posible. No todas las aplicaciones que podrían o deberían hacer uso de múltiples núcleos lo hacen.
Por ejemplo, tiene sentido que un juego use multinúcleo para gráficos, audio, red, física, etc. Pero no tiene sentido que una calculadora, una herramienta de captura de pantalla, un suduko o un editor de menús sean compatibles con multinúcleo.
El kernel de Ubuntu admite múltiples CPU desde hace mucho tiempo, realmente no importa si se trata de múltiples núcleos o múltiples CPU en un sistema, se manejarán perfectamente.
Sin embargo, debe tener en cuenta una cosa: el hecho de que un sistema sea compatible con varias CPU/núcleos y estén presentes en un sistema no significa que sus aplicaciones se ejecutarán automáticamente más rápido. Hoy en día te dicen mucho lo contrario, es una cuestión de marketing.
Para que una aplicación aproveche varias CPU/núcleos al mismo tiempo, debe construirse para compartir la carga del proceso entre esas CPU/núcleos.
Es decir: digamos que está ejecutando algo tan simple como wordpad
en Windows y está abriendo un enorme archivo de texto con él, el tiempo de carga será el mismo, ya sea que tenga 1 CPU o 1 millón de CPU (para CPU con la misma velocidad de bus y arquitectura similar ofc).
Lo mismo ocurre con el kernel de Linux y la distribución de Ubuntu, si una aplicación se crea para un solo subproceso, entonces no hay nada más que las CPU puedan hacer.
Una cosa que los sistemas operativos están haciendo hoy en día para optimizar la carga de aplicaciones en varias CPU/núcleos es la capacidad de ejecutar un proceso en un núcleo que no está tan cargado como los otros, equilibrando así la carga y asegurándose de que sus múltiples núcleos la utilización es óptima. Difícil en la práctica, la utilización de esa técnica solo trae pequeñas mejoras de velocidad.
Si realmente desea que sus núcleos brillen, debe hacer un uso intensivo de la CPU con programas que admitan el multiprocesamiento simétrico, como la edición de video, etc.
Valoraciones y comentarios
Al final de todo puedes encontrar las notas de otros programadores, tú también tienes el poder mostrar el tuyo si te apetece.