De Wikipedia, la enciclopedia libre
Ir a navegaciónSaltar a buscar

Un sistema operativo de núcleo ligero (LWK) es el que se utiliza en una computadora grande con muchos núcleos de procesador , denominada computadora paralela .

Un sistema de computación de alto rendimiento (HPC) masivamente paralelo es particularmente sensible a la sobrecarga del sistema operativo . Los sistemas operativos multiusos tradicionales están diseñados para admitir una amplia gama de modelos de uso y requisitos. Para respaldar la gama de necesidades, se proporciona una gran cantidad de procesos del sistema y, a menudo, son interdependientes entre sí. La sobrecarga informática de estos procesos conduce a una cantidad impredecible de tiempo de procesador disponible para una aplicación paralela. Un modelo de programación paralelo muy común se conoce como el modelo paralelo síncrono 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. Se aumenta el tiempo total de finalización. La sobrecarga impredecible del sistema operativo es una razón importante por la que un procesador puede tardar más en alcanzar el punto de sincronización que los demás.

Ejemplos

Los sistemas operativos de kernel livianos 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 granos livianos en sus sistemas HPC de alta gama. [3] Sandia y los investigadores de 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 LWKs con un nuevo esfuerzo de I + D, llamado gatito. [4]

Características

Aunque es sorprendentemente difícil definir exactamente qué es un kernel ligero, [5] existen algunos objetivos de diseño comunes:

  • Dirigido a entornos masivamente paralelos compuestos por miles de procesadores con memoria distribuida y una red estrechamente acoplada.
  • Proporcionar el soporte necesario para aplicaciones científicas escalables y orientadas al rendimiento.
  • Ofrezca un entorno de desarrollo adecuado para aplicaciones y bibliotecas paralelas.
  • Enfatice la eficiencia sobre la funcionalidad.
  • Maximice la cantidad de recursos (por ejemplo, CPU, memoria y ancho de banda de la red) asignados a la aplicación.
  • Busque minimizar el tiempo de finalización de la solicitud. [6]

Implementación

Las implementaciones de LWK varían, pero todas se esfuerzan por proporcionar aplicaciones con acceso predecible y máximo a la unidad central de procesamiento (CPU) y otros recursos del sistema. Para lograr esto, generalmente se incluyen algoritmos simplificados para la programación y la gestión de la memoria. Los servicios del sistema (por ejemplo, demonios) están limitados 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 red de Portals .

Los sistemas operativos de kernel livianos asumen 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 solo a aquellos que son absolutamente necesarios y al optimizar los que se brindan, se minimiza la sobrecarga (a veces llamada ruido) del sistema operativo liviano. Esto permite que se asigne una cantidad significativa y predecible de los ciclos del procesador a la aplicación en paralelo. Dado que la aplicación puede hacer un progreso 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.

Futuro

Las últimas supercomputadoras 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 muchos núcleos. Estos sistemas operativos multikernel ejecutan un kernel liviano en algunos de los núcleos de CPU de un nodo, mientras que otros núcleos brindan servicios que se omiten en kernels livianos. Al combinar los dos, los usuarios obtienen las características de Linux que necesitan, pero también el comportamiento determinista y la escalabilidad de los núcleos ligeros.

Referencias

  1. ^ Moreira, Jose; et al. (Noviembre de 2006). "Diseño de un sistema operativo altamente escalable: la historia de Blue Gene / L". Actas de la Conferencia Internacional ACM / IEEE de 2006 para Computación, Redes, Almacenamiento y Análisis de Alto Rendimiento (SC'06). Cite journal requiere |journal=( ayuda )
  2. ^ Wallace, D. (mayo de 2007). "Compute Node Linux: descripción general, progreso hasta la fecha y hoja de ruta". Actas de la Conferencia Técnica Anual 2007 del Grupo de Usuarios de Cray. Cite journal requiere |journal=( ayuda )
  3. ^ Riesen, Rolf; et al. (Abril de 2009). "Diseño e implementación de núcleos ligeros para la informática de capacidades". Concurrencia y Computación: Práctica y Experiencia. Cite journal requiere |journal=( ayuda )
  4. ^ "Núcleo ligero de gatito" .
  5. ^ Riesen, Rolf; et al. (Junio ​​de 2015). "¿Qué es un núcleo ligero?" . Actas del 5º Taller internacional sobre tiempo de ejecución y sistemas operativos para supercomputadoras : 1–8. doi : 10.1145 / 2768405.2768414 . ISBN 9781450336062. Consultado el 19 de octubre de 2019 .
  6. ^ Kelly, S .; Brightwell, R. (mayo de 2005). "Arquitectura de software del núcleo ligero, Catamount". Actas de la Conferencia Técnica Anual 2005 del Grupo de Usuarios de Cray. Cite journal requiere |journal=( ayuda )