(English) The convergence of High Performance Computing (HPC), Big Data (BD), and Machine Learning (ML) in the computing continuum is being pursued in earnest across the academic and industry. We envision virtualization and containerization technologies can be the basis for the convergence, because they reside as bridges between applications and infrastructures and provide well-known advantages. However, challenges remain for this convergence at the containerization level due to the diversity of applications and hardware heterogeneity: in the infrastructure layer, virtualization/containerization must feature complete isolation of the applications in a multi-tenant environment, seamlessly and efficiently provide different resources, allow agile and fine-grain dynamic resource provisioning to orchestrate resource sharing in those environments, also integrate HPC and Cloud scheduling and resource management techniques, while providing fault tolerance, energy efficiency, and scalability. Moreover, in the platform layer, virtualization/containerization must fulfill applications requirements of portability and reproducibility by allowing the definition of encapsulated and customized diverse software stacks, and the efficient creation/termination of those software environments on demand. The general research question of this thesis is: How to leverage virtualization/containerization in both the infrastructure layer and the platform layer to support efficiently the convergence of HPC, BD, and ML applications while taking advantage of heterogeneous HPC and Cloud resources?
To answer that question, firstly, we enable deployments of HPC, BD, and ML applications using containers that allow the definition of encapsulated and customized software stacks for each application and provide seamless and efficient access to different resources through different configurations. This is the basis of the convergence.
Secondly, the challenge is to understand the performance impact of the various configurations and deployment options when using containers. Thus, we perform several detailed performance analyses of containerization deployment options for diverse containerized applications on different hardware. These performance analyses consider different containerization-level configurations, such as containerization technologies, granularities, affinities, and network interconnects. The obtained performance insights can be guidelines to derive placement policies when deploying applications to better utilize resources and achieve better application performance.
Thirdly, we enable DevOps for developing, building, and deploying these containerized applications and managing containers in multi-tenant, dynamic context circumstances by establishing a platform, Scanflow-K8s, to help the users to develop faster their containerized applications, to enable the deployment options analyzed before to feature efficient deployments, and to bring autonomic computing for continuously managing applications. Scanflow-K8s features a multi-agent multi-layered architecture that enables the online supervision of the end-to-end life-cycle of ML workflows on Kubernetes, as well as the deployment of containerized HPC workloads.
Finally, we leverage the knowledge learned from the performance analysis of the configuration and deployment of containerized HPC, BD, and ML workloads, and the availability of Scanflow-K8s, to conduct autonomic management policies to schedule or manage these applications. On the one hand, we implement policies in the agent to evaluate the autonomic management and online supervision of the end-to-end life-cycle of ML workflows. On the other hand, we propose fine-grained scheduling policies for containerized HPC workloads in Kubernetes clusters.
(Español) La convergencia de Computación de Alto Rendimiento (HPC), Grandes Datos (BD) y Aprendizaje Automático (ML) en el continuum informático se está persiguiendo con seriedad en el ámbito académico e industrial. Prevemos que las tecnologías de virtualización y contenerización pueden ser la base para la convergencia, porque residen como puentes entre las aplicaciones y las infraestructuras y proporcionan ventajas bien conocidas. Sin embargo, existen desafíos para esta convergencia a nivel de contenerización debido a la diversidad de aplicaciones y la heterogeneidad del hardware: en la capa de infraestructura, la virtualización/contenerización debe presentar un aislamiento completo de las aplicaciones en un entorno de múltiples inquilinos, proporcionar de manera fluida y eficiente recursos diferentes, permitir la asignación dinámica de recursos ágil y detallada para orquestar el uso compartido de recursos en esos entornos, también integrar HPC y Cloud planificación y técnicas de gestión de recursos, al mismo tiempo que proporciona tolerancia a fallos, eficiencia energética y escalabilidad. Además, en la capa de la plataforma, la virtualización/contenerización debe cumplir con los requisitos de portabilidad y reproducibilidad de las aplicaciones al permitir la definición de diversas pilas de software encapsuladas y personalizadas, y la creación/terminación eficiente de esos entornos de software bajo demanda. La pregunta de investigación general de esta tesis es: ¿Cómo aprovechar la virtualización/contenerización tanto en la capa de infraestructura como en la capa de plataforma para respaldar de manera eficiente la convergencia de aplicaciones de HPC, BD y ML mientras se aprovechan los recursos heterogéneos de HPC y Cloud?
Para responder a esa pregunta, en primer lugar, habilitamos implementaciones de aplicaciones HPC, BD y ML utilizando contenedores que permiten la definición de pilas de software encapsuladas y personalizadas para cada aplicación y proporcionan acceso fluido y eficiente a diferentes recursos a través de diferentes configuraciones. Esta es la base de la convergencia.
En segundo lugar, hay que comprender el impacto en el rendimiento de las diversas configuraciones al utilizar contenedores. Por lo tanto, realizamos análisis de rendimiento detallados de configuraciones de contenedores para diversas aplicaciones en diferentes hardware. Estos análisis consideran diferentes parámetros a nivel de contenedores, por ejemplo, tecnologías de contenedores, granularidades, afinidades e interconexiones de red. Los conocimientos obtenidos servirán como directrices para derivar políticas de ubicación al desplegar aplicaciones para utilizar mejor los recursos y lograr un mejor rendimiento.
En tercer lugar, habilitamos DevOps para desarrollar, construir y desplegar estas aplicaciones en contenedores y gestionar éstos en contextos dinámicos y de múltiples usuarios estableciendo una plataforma, Scanflow-K8s, que ayude a los usuarios a desarrollar sus aplicaciones en contenedores más rápidamente, habilite las configuraciones analizadas anteriormente para contar con despliegues eficientes, y proporcione computación autónoma para gestionar continuamente las aplicaciones.
Scanflow-K8s cuenta con una arquitectura multiagente y de múltiples capas para la supervisión en línea de los flujos de trabajo de ML en Kubernetes, así como la implementación de cargas de trabajo HPC en contenedores.
Finalmente, aprovechamos el conocimiento aprendido del análisis de desempeño del despliegue de cargas de trabajo de HPC, BD y ML contenedorizadas, y la disponibilidad de Scanflow-K8s, para conducir políticas de gestión autónomas para planificar y administrar estas aplicaciones. Por un lado, implementamos políticas en el agente para evaluar la gestión autónoma y la supervisión en línea de los flujos de trabajo de ML. Por otro lado, proponemos políticas detalladas de planificación para cargas de trabajo de HPC contenerizadas en clústeres de Kubernetes.