We build systems software for emerging computer architectures. Our work sits at the boundary between operating systems, virtualization, compilers, storage, memory systems, and quantum computing. The common thread is practical system design: we prototype, measure, and refine software that exposes new hardware capabilities to real applications.
Modern machines increasingly combine CPUs, accelerators, memory expanders, smart storage, and other devices with different execution and coherence models. We investigate operating-system abstractions for these machines, including heterogeneous-ISA execution, kernel design, process and thread migration, and virtualization support.
Recent work in this direction includes Stramash, a fused-kernel operating system for cache-coherent heterogeneous-ISA platforms; H-Container, container migration across heterogeneous ISAs; UNIFICO, thread migration without state transformation; and earlier Popcorn Linux work on replicated-kernel operating systems.
We work on resource management for data-center systems where memory and storage are no longer simple local devices. This includes CXL memory, tiered memory, disaggregated memory pools, PCIe/NVMe storage, computational storage, and near-data processing.
Recent projects study tiered memory management in cloud data centers, CXL shared memory pools, CXL pools for caching with persistent storage clusters, and the performance/power tradeoffs of CXL memory and PCIe 5.0 NVMe for memory-hungry workloads. We also study near-storage processing and serverless execution paths for data-intensive systems.
AI workloads stress memory capacity, scheduling, communication, and management planes. We explore system-level support for AI inference and distributed serving, including memory-management alternatives to CXL and scalable management for distributed LLM inference.
This line of work is connected to our broader interest in how operating systems and runtimes should manage high-throughput, data-intensive workloads without hiding critical hardware behavior from applications.
Heterogeneous systems need compiler and runtime support that can preserve performance while making hardware differences manageable. We work on migration-aware compilation, runtime support, linker and binary-interface questions, and optimization techniques that use hardware or physical-system properties.
Recent examples include CoSense, compiler optimizations based on sensor technical specifications, and UNIFICO, which combines compiler and runtime support for heterogeneous-ISA thread migration.
We apply a systems perspective to quantum computing through the Quantum Software Lab (QSL). Our current interests include system support for quantum processing units, quantum circuit cutting, photonic graph-state compilation, classical simulation of quantum systems, and low-level performance optimization for quantum simulation.
Recent work includes hardware-aware gate cutting, compiler techniques for coherent-noise mitigation, scalable compilation for emitter-photonic graph states, suppressing erasure errors in photonic fusion operations, and NUMA-aware optimization for high-performance quantum simulation.
We value systems that can be measured. Our work commonly uses Linux, QEMU/KVM, Xen, LLVM, tracing, simulation, kernel instrumentation, and prototype hardware where available. When possible, we publish code and artifacts alongside papers; see the publications page for DOI, PDF, code, slides, and arXiv links.
We are part of the Institute for Computing Systems Architecture (ICSA), School of Informatics, University of Edinburgh.