Un sistema operativo de núcleo ligero (LWK) es aquel que se utiliza en una computadora grande con muchos núcleos de procesador , denominada computadora paralela .
Un sistema informático de alto rendimiento (HPC) masivamente paralelo es particularmente sensible a la sobrecarga del sistema operativo . Los sistemas operativos multipropósito tradicionales están diseñados para admitir una amplia gama de modelos y requisitos de uso. Para satisfacer la variedad de necesidades, se proporciona una gran cantidad de procesos del sistema y, a menudo, son interdependientes entre sí. La sobrecarga computacional de estos procesos conduce a una cantidad impredecible de tiempo de procesador disponible para una aplicación paralela. Un modelo de programación paralela muy común se conoce como el modelo paralelo sincrónico masivo , que a menudo emplea la interfaz de paso de mensajes (MPI) para la comunicación. Los eventos de sincronización se realizan en puntos específicos del código de la aplicación . Si un procesador tarda más en llegar a ese punto que todos los demás procesadores, todos deben esperar. El tiempo de finalización general aumenta. La sobrecarga impredecible del sistema operativo es una razón importante por la que un procesador puede tardar más en llegar al punto de sincronización que los demás.
Los sistemas operativos de núcleo ligero personalizados, utilizados en algunas de las computadoras más rápidas del mundo, ayudan a aliviar este problema. La línea de supercomputadoras IBM Blue Gene ejecuta varias versiones del sistema operativo CNK . [1] Las supercomputadoras Cray XT4 y Cray XT5 ejecutan Compute Node Linux [2] mientras que la anterior XT3 ejecutaba el núcleo ligero Catamount que se basaba en SUNMOS . Sandia National Laboratories tiene un compromiso de casi dos décadas con los núcleos ligeros en sus sistemas HPC de alta gama. [3] Los investigadores de Sandia y la Universidad de Nuevo México comenzaron a trabajar en SUNMOS para Intel Paragon a principios de la década de 1990. Este sistema operativo evolucionó hasta convertirse en Puma, Cougar, que logró el primer teraflop en ASCI Red , y Catamount en Red Storm . Sandia continúa su trabajo en LWK con un nuevo esfuerzo de I+D, llamado kitten. [4]
Aunque es sorprendentemente difícil definir exactamente qué es un kernel ligero, [5] existen algunos objetivos de diseño comunes:
Las implementaciones de LWK varían, pero todas buscan proporcionar a las aplicaciones un acceso máximo y predecible a la unidad central de procesamiento (CPU) y a otros recursos del sistema. Para lograrlo, se suelen incluir algoritmos simplificados para la programación y la gestión de la memoria. Los servicios del sistema (por ejemplo, los daemons) se limitan al mínimo absoluto. Los servicios disponibles, como el lanzamiento de trabajos, se construyen de forma jerárquica para garantizar la escalabilidad a miles de nodos. Los protocolos de red para la comunicación entre los nodos del sistema también se seleccionan e implementan cuidadosamente para garantizar la escalabilidad. Un ejemplo de ello es la interfaz de programación de aplicaciones (API) de programación de redes de Portals.
Los sistemas operativos de kernel livianos suponen el acceso a un pequeño conjunto de nodos que ejecutan sistemas operativos de servicio completo para descargar algunos de los servicios necesarios: acceso de inicio de sesión, entornos de compilación, envío de trabajos por lotes y E/S de archivos.
Al restringir los servicios a aquellos que son absolutamente necesarios y optimizar los que se proporcionan, se minimiza la sobrecarga (a veces llamada ruido) del sistema operativo liviano. Esto permite que una cantidad significativa y predecible de los ciclos del procesador se destinen a la aplicación paralela. Dado que la aplicación puede avanzar de manera constante en cada procesador, alcanzarán sus puntos de sincronización más rápido, idealmente al mismo tiempo. Se reduce el tiempo de espera perdido.
Los últimos superordenadores que ejecutan núcleos ligeros son los sistemas IBM Bluegene restantes que ejecutan CNK . Una nueva dirección para los núcleos ligeros es combinarlos con un sistema operativo con todas las funciones, como Linux, en un nodo de múltiples núcleos. Estos sistemas operativos de múltiples núcleos ejecutan un núcleo ligero en algunos de los núcleos de CPU de un nodo, mientras que otros núcleos proporcionan servicios que se omiten en los núcleos ligeros. Al combinar los dos, los usuarios obtienen las funciones de Linux que necesitan, pero también el comportamiento determinista y la escalabilidad de los núcleos ligeros.
{{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda ){{cite journal}}
: Requiere citar revista |journal=
( ayuda )