Dissertation/ Thesis

On the interaction between the Linux kernel and runtime systems

Λεπτομέρειες βιβλιογραφικής εγγραφής
Τίτλος: On the interaction between the Linux kernel and runtime systems
Συγγραφείς: Roca Nonell, Aleix
Συνεισφορές: University/Department: Universitat Politècnica de Catalunya. Departament d'Arquitectura de Computadors
Thesis Advisors: Ayguadé Parra, Eduard, Beltran Querol, Vicenç
Πηγή: TDX (Tesis Doctorals en Xarxa)
Στοιχεία εκδότη: Universitat Politècnica de Catalunya, 2026.
Έτος έκδοσης: 2026
Φυσική περιγραφή: 159 p.
Θεματικοί όροι: Operating Systems, Runtime Systems, High Performance Computing, Programming Models, Scheduling, I/O, Memory, Tracing, Resource Management, Performance, System Throughput, Àrees temàtiques de la UPC::Informàtica, 004 - Informàtica
Περιγραφή: Tesi amb menció de Doctorat Internacional
Description (Translated): (English) High-Performance Computing (HPC) underpins scientific discovery and industrial innovation, yet its progress is tightly coupled to how effectively applications exploit modern supercomputers, which consist of thousands of nodes and hundreds of cores. Most supercomputing centers rely on the Linux Kernel at the core of their Operating System (OS). Linux provides applications with the foundation to interface with the capabilities of the underlying hardware, and while it excels in handling sequential and lightly parallel workloads, it might not suffice for highly parallel demands. To bridge the gap between application needs and the OS policy, developers increasingly rely on programming models to express parallelism through fork-join or data-flow dependencies that delegate work distribution to runtime systems. Runtimes simplify parallel programming by hiding Linux complexity and providing user-friendly alternatives that allow developers to focus on their algorithms instead of the underlying OS and hardware details. The coupling between Linux and runtime systems is essential to efficiently map the application's parallel workload to system resources with minimum OS interference and to maximize spatial and temporal locality. This is particularly important as the convergence of HPC, data analytics, and AI is transforming traditional HPC workloads that typically consisted of a single parallelized application into an ecosystem of services that interact with each other, opening new cooperation challenges. This thesis presents a broad exploration of opportunities to tighten the bond between Linux and runtime systems from the I/O, memory, scheduling, and tracing subsystems. We analyze bottlenecks found in real scenarios and design and implement software solutions at both kernel and user level with the aim of improving overall performance, throughput, and latency. On the I/O subsystem, we explore the challenge of integrating blocking operations in runtime systems. Blocking operations are oblivious from the runtime core management perspective and directly affect their capacity to keep cores busy with useful work. Better, seamless detection of such operations has the potential to enable I/O and computation overlapping. On the memory subsystem, we face the challenge of transitioning from traditional homogeneous to heterogeneous memory systems. Traditional systems and applications are designed for homogeneous memory; however, a transparent kernel- or runtime-level solution could enable these applications to exploit the new paradigm without modification. On the process scheduling subsystem, we extensively review the impact of context-switching for fine-grained suspendable tasks. Fine-grained parallel applications are characterized by exposing huge amounts of parallelism while consisting of small computational bursts. These pose a burden to the runtime, which needs to react quickly to keep cores busy with short-lived workloads, and to the kernel, which may need to swap threads on cores. In these cases, the context-switching latency becomes a bottleneck, and improving it can considerably raise performance. Additionally, we analyze the impact of oversubscription on multi-process and multi-runtime workloads. Although these scenarios are usually avoided, the new paradigm powered by the AI adoption makes them increasingly more common. By rethinking the current thread scheduling policies, we can transparently improve performance while maintaining compatibility. Lastly, On the tracing subsystem, we explore the availability of profiling tools for both runtime and kernel and elaborate on the benefits of having a conjoined solution to better understand their interactions, such as the detection of runtime imbalances caused by OS noise.
(Català) La Computació d'Alt Rendiment (HPC) sustenta el descobriment científic i la innovació industrial, però el seu progrés depèn de l'eficàcia amb què les aplicacions exploten els supercomputadors moderns, compostos per milers de nodes i centenars de CPUs. La majoria dels centres de supercomputació utilitzen el nucli Linux com a base del seu Sistema Operatiu (SO). Tot i que Linux destaca en càrregues de treball seqüencials i lleugerament paral·leles, pot no ser suficient per a demandes altament paral·leles. Per salvar aquesta bretxa, els desenvolupadors recorren a models de programació que expressen el paral·lelisme mitjançant dependències fork-join o de flux de dades, delegant la distribució del treball als runtimes. Aquests simplifiquen la programació paral·lela ocultant la complexitat de Linux i permetent als desenvolupadors centrar-se en els seus algorismes. L'acoblament entre Linux i els runtimes és essencial per mapejar eficientment la càrrega de treball sobre els recursos del sistema i maximitzar la localitat espacial i temporal. Això és especialment rellevant atès que la convergència de HPC, l'anàlisi de dades i la intel·ligència artificial està transformant les càrregues de treball HPC tradicionals en un ecosistema de serveis que interactuen entre si, obrint nous reptes de cooperació. Aquesta tesi explora les oportunitats per estretar el vincle entre Linux i els runtimes des dels subsistemes d'E/S, memòria, planificació i instrumentació. Analitzem colls d'ampolla en escenaris reals i dissenyem solucions tant a nivell de nucli com d'usuari per millorar el rendiment global, el cabal i la latència. En el subsistema d'E/S, explorem la integració d'operacions bloquejants en els runtimes. Aquestes operacions són invisibles per a la gestió de CPUs del runtime i afecten la seva capacitat per mantenir-les ocupades. Una detecció més precisa podria facilitar la superposició d'E/S i còmput. En el subsistema de memòria, abordem la transició dels sistemes homogenis cap a sistemes heterogenis. Una solució transparent a nivell de nucli o runtime podria permetre que les aplicacions existents aprofitin el nou paradigma sense modificacions. En el subsistema de planificació, analitzem l'impacte del canvi de context en tasques suspensibles de granularitat fina. Aquestes aplicacions exposen gran quantitat de paral·lelisme amb petites ràfegues computacionals, cosa que suposa una càrrega tant per al runtime com per al nucli. En aquests casos, la latència del canvi de context esdevé un coll d'ampolla, i la seva millora pot incrementar considerablement el rendiment. A més, analitzem l'impacte de la sobresuscripció en càrregues de treball multiprocés i multi-runtime. Tot i que s'acostumen a evitar, l'adopció de la intel·ligència artificial els fa cada vegada més freqüents. Replantejant les polítiques de planificació, és possible millorar el rendiment de forma transparent. Finalment, en el subsistema d'instrumentació, explorem eines de perfilat per al runtime i el nucli, i els beneficis d'una solució conjunta per comprendre millor les seves interaccions, com la detecció de desequilibris causats pel soroll del SO.
(Español) La Computación de Alto Rendimiento (HPC) sustenta el descubrimiento científico y la innovación industrial, pero su progreso depende de la eficacia con que las aplicaciones explotan los supercomputadores modernos, compuestos por miles de nodos y cientos de CPUs. La mayoría de los centros de supercomputación utilizan el núcleo Linux como base de su Sistema Operativo (SO). Aunque Linux destaca en cargas de trabajo secuenciales y ligeramente paralelas, puede no ser suficiente para demandas altamente paralelas. Para salvar esta brecha, los desarrolladores recurren a modelos de programación que expresan el paralelismo mediante dependencias fork-join o de flujo de datos, delegando la distribución del trabajo en los runtimes. Estos simplifican la programación paralela ocultando la complejidad de Linux y permitiendo a los desarrolladores centrarse en sus algoritmos. El acoplamiento entre Linux y los runtimes es esencial para mapear eficientemente la carga de trabajo sobre los recursos del sistema y maximizar la localidad espacial y temporal. Esto es especialmente relevante dado que la convergencia de HPC, el análisis de datos y la inteligencia artificial está transformando las cargas de trabajo HPC tradicionales en un ecosistema de servicios que interactúan entre sí, abriendo nuevos retos de cooperación. Esta tesis explora las oportunidades para estrechar el vínculo entre Linux y los runtimes desde los subsistemas de E/S, memoria, planificación e instrumentación. Analizamos cuellos de botella en escenarios reales y diseñamos soluciones tanto a nivel de núcleo como de usuario para mejorar el rendimiento global, el caudal y la latencia. En el subsistema de E/S, exploramos la integración de operaciones bloqueantes en los runtimes. Estas operaciones son invisibles para la gestión de CPUs del runtime y afectan a su capacidad para mantenerlas ocupadas. Una detección más precisa podría facilitar la superposición de E/S y cómputo. En el subsistema de memoria, abordamos la transición de los sistemas homogéneos hacia sistemas heterogéneos. Una solución transparente a nivel de núcleo o runtime podría permitir que las aplicaciones existentes aprovechen el nuevo paradigma sin modificaciones. En el subsistema de planificación, analizamos el impacto del cambio de contexto en tareas suspendibles de granularidad fina. Estas aplicaciones exponen gran cantidad de paralelismo con pequeñas ráfagas computacionales, lo que supone una carga tanto para el runtime como para el núcleo. En estos casos, la latencia del cambio de contexto se convierte en un cuello de botella, y su mejora puede incrementar considerablemente el rendimiento. Además, analizamos el impacto de la sobresuscripción en cargas de trabajo multiproceso y multi-runtime. Aunque suelen evitarse, la adopción de la inteligencia artificial los hace cada vez más frecuentes. Replanteando las políticas de planificación, es posible mejorar el rendimiento de forma transparente. Finalmente, en el subsistema de instrumentación, exploramos herramientas de perfilado para el runtime y el núcleo, y los beneficios de una solución conjunta para comprender mejor sus interacciones, como la detección de desequilibrios causados por el ruido del SO.
DOCTORAT EN ARQUITECTURA DE COMPUTADORS (Pla 2012)
Τύπος εγγράφου: Dissertation/Thesis
Περιγραφή αρχείου: application/pdf
Γλώσσα: English
DOI: 10.5821/dissertation-2117-468621
Σύνδεσμος πρόσβασης: https://hdl.handle.net/10803/697952
https://dx.doi.org/10.5821/dissertation-2117-468621
Rights: L'accés als continguts d'aquesta tesi queda condicionat a l'acceptació de les condicions d'ús establertes per la següent llicència Creative Commons: http://creativecommons.org/licenses/by/4.0/
Αριθμός Καταχώρησης: edstdx.10803.697952
Βάση Δεδομένων: TDX
Περιγραφή
DOI:10.5821/dissertation-2117-468621