PROTEUS está orientado al cómputo masivo de aplicaciones de una manera fiable, con tolerancia a fallos, robustez y seguridad, y sencilla para los usuarios.
1. Entorno de Software y Aplicaciones
Para garantizar la reproducibilidad y la limpieza del entorno, PROTEUS utiliza un sistema de gestión de módulos.
- Gestión de módulos: Se emplea un sistema de módulos que permite cargar y descargar versiones específicas de software (compiladores, libras, librerías de Python, etc.) según las necesidades de cada proyecto.
- Disponibilidad: El sistema incluye un amplio catálogo de herramientas científicas, optimizadas para las arquitecturas del clúster, incluyendo librerías para computación paralela (MPI) y aceleración por GPU.
2. Arquitectura de Hardware
La infraestructura de PROTEUS está compuesta por nodos de computación de alto rendimiento bajo una arquitectura x86_64, diseñados para minimizar la latencia en la comunicación entre nodos:
- Procesadores: Disponibilidad de diversas generaciones de procesadores de alto rendimiento.
- Memoria: Configuraciones de memoria RAM de gran capacidad para manejar conjuntos de datos masivos.
- Aceleración: El clúster integra nodos con aceleradores (GPU), ideales para tareas de aprendizaje profundo (Deep Learning) y computación intensiva.
- Interconectividad: Red de alta velocidad que garantiza una comunicación eficiente entre los nodos del clúster.
3. Gestión de Tareas y Asignación de Recursos (Workflow)
En PROTEUS, los usuarios no ejecutan procesos directamente sobre el nodo de login; en su lugar, se utiliza un gestor de trabajos (Scheduler) para la ejecución de tareas.
El proceso de envío de tareas:
Para que un trabajo sea procesado, el usuario debe definir un script de envío donde se especifiquen los recursos necesarios. El gestor analizará la solicitud basándose en los siguientes parámetros:
- CPUs: Número de núcleos requeridos.
- Memoria RAM: Cantidad de memoria necesaria.
- Aceleradores: Solicitud específica de nodos con GPU.
- Tiempo de ejecución: Duración estimada del proceso.
- Otros requisitos: Número de nodos, tipo de red de conexión, etc.
Funcionamiento de la cola de espera:
- Solicitud: El usuario envía el trabajo al sistema.
- Cola: El gestor coloca la tarea en una cola de espera según la disponibilidad de los recursos.
- Asignación: Una vez que el clúster tiene nodos libres que cumplen con los requisitos (CPU, RAM, GPU) y la prioridad del usuario, el trabajo se mueve al estado de «Running».
- Ejecución: El trabajo se ejecuta en los nodos de computación asignados, garantizando que la actividad de un usuario no interfiera con la de otros.