The increasing heterogeneity and complexity of modern High-Performance Computing (HPC) architectures have created fundamental challenges in developing programming models that balance productivity with performance. As a result of systems evolving toward distributed multi-GPU configurations with complex memory hierarchies and diverse interconnect topologies, the gap between high-level programming abstractions and efficient hardware utilization grows. This dissertation focuses on workload-agnostic programming approaches that enable developers to harness the potential of heterogeneous HPC systems without losing familiar programming paradigms or requiring extensive hardware expertise. We explore two complementary strategies to address these challenges. The first approach extends traditional C++ programming models by enhancing the SHAD library, introducing novel abstractions for distributed memory management, topology-aware execution, and transparent hardware acceleration while maintaining compatibility with Standard Template Library (STL) interfaces. The second approach democratizes access to GPU acceleration through polyglot runtime systems, developing frameworks that automatically manage multi-GPU execution and scale workloads across distributed systems without requiring specialized programming knowledge. The research contributes several key innovations to the field of HPC programming models. We develop topology-aware scheduling mechanisms that adapt to diverse hardware configurations, introduce flexible memory allocation abstractions that optimize data locality in distributed environments, and design runtime systems capable of transparently scaling GPU workloads beyond single-node limitations. Our extensive evaluation on production supercomputers demonstrates that carefully designed abstractions can effectively navigate the inherent trade-offs between programmability and performance. Through both practical implementations and theoretical analysis, we demonstrate how workload-agnostic systems can make HPC accessible to broader application domains while maintaining competitive performance.

L'aumento dell’eterogeneità e della complessità delle moderne architetture High-Performance Computing (HPC) ha creato sfide fondamentali nello sviluppo di modelli di programmazione che bilancino produttività e prestazioni. Con l’evoluzione dei sistemi verso configurazioni multi-GPU distribuite con gerarchie di memoria complesse e topologie di interconnessione variegate, il divario tra astrazioni di programmazione ad alto livello e utilizzo efficiente dell’hardware continua ad ampliarsi. In questa dissertazione investighiamo approcci di programmazione agnostici rispetto al carico di lavoro che consentono agli sviluppatori di sfruttare le capacità computazionali dei sistemi HPC eterogenei senza doversi allontanare dai familiari paradigmi di programmazione o richiedere competenze hardware specialistiche. Questa tesi presenta un’esplorazione completa di due strategie complementari per affrontare queste sfide. Il primo approccio si focalizza sul modello C++ tradizionale attraverso l’estensione della libreria SHAD, introducendo nuove astrazioni per la gestione della memoria in sistemi distribuiti, per esplorare la topologia del sistema e ottenere accelerazione hardware trasparente, mantenendo al contempo la compatibilità con le interfacce della libreria standard. Il secondo approccio democratizza l’accesso all’accelerazione GPU attraverso sistemi runtime poliglotti, sviluppando framework che gestiscono automaticamente l’esecuzione multi-GPU e scalano i carichi di lavoro su sistemi distribuiti senza richiedere conoscenze di programmazione specializzate. Questa ricerca contribuisce con diverse innovazioni chiave al campo dei modelli di programmazione HPC. Vengono introdotti meccanismi di topology-aware scheduling, astrazioni flessibili per l’allocazione della memoria in ambienti distribuiti e sistemi runtime capaci di scalare trasparentemente i carichi di lavoro GPU oltre le limitazioni del singolo nodo. Attraverso una valutazione estensiva su supercomputer, dimostriamo che astrazioni progettate accuratamente permettono di navigare efficientemente i compromessi intrinseci tra programmabilità e prestazioni. Attraverso implementazioni pratiche e analisi teoriche, dimostriamo come i sistemi che si adattano alle applicazioni utilizzate possano rendere il mondo HPC accessibile a domini applicativi più ampi mantenendo prestazioni competitive.

Workload-agnostic programming in HPC: a tale of challenges and trade-offs

DI DIO LAVORE, IAN
2025/2026

Abstract

The increasing heterogeneity and complexity of modern High-Performance Computing (HPC) architectures have created fundamental challenges in developing programming models that balance productivity with performance. As a result of systems evolving toward distributed multi-GPU configurations with complex memory hierarchies and diverse interconnect topologies, the gap between high-level programming abstractions and efficient hardware utilization grows. This dissertation focuses on workload-agnostic programming approaches that enable developers to harness the potential of heterogeneous HPC systems without losing familiar programming paradigms or requiring extensive hardware expertise. We explore two complementary strategies to address these challenges. The first approach extends traditional C++ programming models by enhancing the SHAD library, introducing novel abstractions for distributed memory management, topology-aware execution, and transparent hardware acceleration while maintaining compatibility with Standard Template Library (STL) interfaces. The second approach democratizes access to GPU acceleration through polyglot runtime systems, developing frameworks that automatically manage multi-GPU execution and scale workloads across distributed systems without requiring specialized programming knowledge. The research contributes several key innovations to the field of HPC programming models. We develop topology-aware scheduling mechanisms that adapt to diverse hardware configurations, introduce flexible memory allocation abstractions that optimize data locality in distributed environments, and design runtime systems capable of transparently scaling GPU workloads beyond single-node limitations. Our extensive evaluation on production supercomputers demonstrates that carefully designed abstractions can effectively navigate the inherent trade-offs between programmability and performance. Through both practical implementations and theoretical analysis, we demonstrate how workload-agnostic systems can make HPC accessible to broader application domains while maintaining competitive performance.
PIRODDI, LUIGI
MATERA, MARISTELLA
11-feb-2026
Workload-agnostic programming in HPC: a tale of challenges and trade-offs
L'aumento dell’eterogeneità e della complessità delle moderne architetture High-Performance Computing (HPC) ha creato sfide fondamentali nello sviluppo di modelli di programmazione che bilancino produttività e prestazioni. Con l’evoluzione dei sistemi verso configurazioni multi-GPU distribuite con gerarchie di memoria complesse e topologie di interconnessione variegate, il divario tra astrazioni di programmazione ad alto livello e utilizzo efficiente dell’hardware continua ad ampliarsi. In questa dissertazione investighiamo approcci di programmazione agnostici rispetto al carico di lavoro che consentono agli sviluppatori di sfruttare le capacità computazionali dei sistemi HPC eterogenei senza doversi allontanare dai familiari paradigmi di programmazione o richiedere competenze hardware specialistiche. Questa tesi presenta un’esplorazione completa di due strategie complementari per affrontare queste sfide. Il primo approccio si focalizza sul modello C++ tradizionale attraverso l’estensione della libreria SHAD, introducendo nuove astrazioni per la gestione della memoria in sistemi distribuiti, per esplorare la topologia del sistema e ottenere accelerazione hardware trasparente, mantenendo al contempo la compatibilità con le interfacce della libreria standard. Il secondo approccio democratizza l’accesso all’accelerazione GPU attraverso sistemi runtime poliglotti, sviluppando framework che gestiscono automaticamente l’esecuzione multi-GPU e scalano i carichi di lavoro su sistemi distribuiti senza richiedere conoscenze di programmazione specializzate. Questa ricerca contribuisce con diverse innovazioni chiave al campo dei modelli di programmazione HPC. Vengono introdotti meccanismi di topology-aware scheduling, astrazioni flessibili per l’allocazione della memoria in ambienti distribuiti e sistemi runtime capaci di scalare trasparentemente i carichi di lavoro GPU oltre le limitazioni del singolo nodo. Attraverso una valutazione estensiva su supercomputer, dimostriamo che astrazioni progettate accuratamente permettono di navigare efficientemente i compromessi intrinseci tra programmabilità e prestazioni. Attraverso implementazioni pratiche e analisi teoriche, dimostriamo come i sistemi che si adattano alle applicazioni utilizzate possano rendere il mondo HPC accessibile a domini applicativi più ampi mantenendo prestazioni competitive.
File allegati
File Dimensione Formato  
DiDioLavore_Ian_phdThesis_final.pdf

non accessibile

Dimensione 6.98 MB
Formato Adobe PDF
6.98 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/248837