Due to Moore's law stalling single core performance because of power density and thermal limits, scaling up applications has become more difficult. In light of rapidly increasing network and memory bandwidth, it is time to revisit scaling out threads with support from Distributed Shared Memory systems. This thesis introduces CRIU-DSM, a userspace DSM system that scales out live POSIX threads across multiple physical machines. The proposed approach extends Checkpoint/Restore In Userspace (CRIU) to distribute an arbitrary subgroup of threads across physical nodes and leverages recent Linux kernel APIs to maintain coherence among them. We develop a centralized page level MSI write invalidation protocol using userfaultfd to intercept missing and write protection faults in user space, process_vm_readv to read pages across processes, and process_madvise to invalidate them. Our solution preserves standard POSIX pthread semantics. CRIU-DSM can operate in a fully transparent mode for unmodified applications, or in an optional manual mode requiring minimal source level modifications to selectively register shared mmap regions and improve performance by mitigating false sharing. The system is evaluated on CloudLab using Stanford's Phoenix MapReduce suite over both TCP and RDMA transports. Results show that performance improves when write sharing is limited and the computation to page fault ratio is high. Matrix Multiply achieves up to 3.39x execution speedup and PCA up to 2.1x, whereas workloads that generate excessive invalidations, such as Kmeans due to fine grained centroid updates, perform worse than native execution because frequent low computation updates prevent amortization of DSM overheads. Overall, the results indicate that a CRIU based live thread redistribution combined with userspace fault handling provides a practical and deployable foundation for transparent DSM.

A causa del rallentamento della legge di Moore nelle prestazioni a singolo core, dovuto a limiti di potenza e vincoli termici, scalare verticalmente le applicazioni è diventato più difficile. A seguito del rapido aumento della larghezza di banda di rete e memoria, è possibile riesaminare la scalabilità orizzontale dei thread con il supporto di sistemi di memoria condivisa distribuita (DSM). Questa tesi introduce CRIU-DSM, un sistema DSM in user space che distribuisce live thread POSIX su più macchine fisiche. L’approccio proposto estende Checkpoint Restore In Userspace, CRIU, per distribuire un sottogruppo arbitrario di thread su nodi fisici e sfrutta API del kernel Linux per mantenerne la coerenza. Abbiamo sviluppato un protocollo centralizzato stile MSI con granularità di pagina in write invalidation, utilizzando userfaultfd per intercettare in user space le fault di pagine mancanti e di protezione in scrittura, process_vm_readv per leggere pagine tra processi, e process_madvise per invalidarle. La soluzione preserva la semantica standard POSIX pthread. CRIU-DSM può essere distribuito in modalità completamente trasparente per applicazioni non modificate oppure in modalità manuale basata su regioni condivise personalizzate tramite mmap, per migliorare le prestazioni mitigando il false sharing. Il sistema è valutato su CloudLab utilizzando la suite Phoenix MapReduce di Stanford su trasporti TCP e RDMA. I risultati mostrano che le prestazioni migliorano quando la condivisione in scrittura è limitata e è elevato il rapporto tra computazione e page fault. Matrix Multiply raggiunge un’accelerazione fino a 3.39x e PCA fino a 2.1x, mentre applicazioni che causano invalidazioni eccessive, come Kmeans per gli aggiornamenti dei centroidi, risultano più lenti dell’esecuzione nativa perché frequenti aggiornamenti e una bassa intensità computazionale impediscono l’ammortizzazione degli overhead del DSM. Complessivamente, i risultati indicano che una ridistribuzione live dei thread basata su CRIU combinata con la gestione delle page faults in user space fornisce una base pratica e impiegabile per un DSM trasparente.

CRIU-DSM: a userspace live thread migration and transparent distributed shared memory system

D'ALESSIO, EDOARDO
2025/2026

Abstract

Due to Moore's law stalling single core performance because of power density and thermal limits, scaling up applications has become more difficult. In light of rapidly increasing network and memory bandwidth, it is time to revisit scaling out threads with support from Distributed Shared Memory systems. This thesis introduces CRIU-DSM, a userspace DSM system that scales out live POSIX threads across multiple physical machines. The proposed approach extends Checkpoint/Restore In Userspace (CRIU) to distribute an arbitrary subgroup of threads across physical nodes and leverages recent Linux kernel APIs to maintain coherence among them. We develop a centralized page level MSI write invalidation protocol using userfaultfd to intercept missing and write protection faults in user space, process_vm_readv to read pages across processes, and process_madvise to invalidate them. Our solution preserves standard POSIX pthread semantics. CRIU-DSM can operate in a fully transparent mode for unmodified applications, or in an optional manual mode requiring minimal source level modifications to selectively register shared mmap regions and improve performance by mitigating false sharing. The system is evaluated on CloudLab using Stanford's Phoenix MapReduce suite over both TCP and RDMA transports. Results show that performance improves when write sharing is limited and the computation to page fault ratio is high. Matrix Multiply achieves up to 3.39x execution speedup and PCA up to 2.1x, whereas workloads that generate excessive invalidations, such as Kmeans due to fine grained centroid updates, perform worse than native execution because frequent low computation updates prevent amortization of DSM overheads. Overall, the results indicate that a CRIU based live thread redistribution combined with userspace fault handling provides a practical and deployable foundation for transparent DSM.
ING - Scuola di Ingegneria Industriale e dell'Informazione
26-mar-2026
2025/2026
A causa del rallentamento della legge di Moore nelle prestazioni a singolo core, dovuto a limiti di potenza e vincoli termici, scalare verticalmente le applicazioni è diventato più difficile. A seguito del rapido aumento della larghezza di banda di rete e memoria, è possibile riesaminare la scalabilità orizzontale dei thread con il supporto di sistemi di memoria condivisa distribuita (DSM). Questa tesi introduce CRIU-DSM, un sistema DSM in user space che distribuisce live thread POSIX su più macchine fisiche. L’approccio proposto estende Checkpoint Restore In Userspace, CRIU, per distribuire un sottogruppo arbitrario di thread su nodi fisici e sfrutta API del kernel Linux per mantenerne la coerenza. Abbiamo sviluppato un protocollo centralizzato stile MSI con granularità di pagina in write invalidation, utilizzando userfaultfd per intercettare in user space le fault di pagine mancanti e di protezione in scrittura, process_vm_readv per leggere pagine tra processi, e process_madvise per invalidarle. La soluzione preserva la semantica standard POSIX pthread. CRIU-DSM può essere distribuito in modalità completamente trasparente per applicazioni non modificate oppure in modalità manuale basata su regioni condivise personalizzate tramite mmap, per migliorare le prestazioni mitigando il false sharing. Il sistema è valutato su CloudLab utilizzando la suite Phoenix MapReduce di Stanford su trasporti TCP e RDMA. I risultati mostrano che le prestazioni migliorano quando la condivisione in scrittura è limitata e è elevato il rapporto tra computazione e page fault. Matrix Multiply raggiunge un’accelerazione fino a 3.39x e PCA fino a 2.1x, mentre applicazioni che causano invalidazioni eccessive, come Kmeans per gli aggiornamenti dei centroidi, risultano più lenti dell’esecuzione nativa perché frequenti aggiornamenti e una bassa intensità computazionale impediscono l’ammortizzazione degli overhead del DSM. Complessivamente, i risultati indicano che una ridistribuzione live dei thread basata su CRIU combinata con la gestione delle page faults in user space fornisce una base pratica e impiegabile per un DSM trasparente.
File allegati
File Dimensione Formato  
2026_03_DAlessio.pdf

accessibile in internet per tutti

Dimensione 3.25 MB
Formato Adobe PDF
3.25 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/251243