Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Michael Cuevas

dblp:284/4788 · DBLP profile ↗
← Back
3ranked-venue papers
0as first author
2since 2021 · last 2022
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 3 · 2 since 2021Software engineering, systems software and programming languages · 1 · 1 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
3 papers
Operating systems · 81% Compilers and program optimization · 19%
Computer architecture, parallel and distributed computing, and storage systems
2 papers
Parallel and multicore computing · 79% Memory systems · 21%

Topics — the 8 heaviest of 10, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Operating systems › resource management › memory management › virtual memory
address translation
0.612022
CARAT CAKE: replacing paging via compiler/kernel cooperation · ASPLOS 2022
Operating systems › resource management › memory management
virtual memory
0.612022
CARAT CAKE: replacing paging via compiler/kernel cooperation · ASPLOS 2022
Parallel and multicore computing
parallel programming models
0.512021
Paths to OpenMP in the kernel · SC 2021
Operating systems › resource management › process management
CPU scheduling
0.412020
Compiler-based timing for extremely fine-grain preemptive parallelism · SC 2020
Operating systems › resource management › process management › CPU scheduling
preemptive scheduling
0.412020
Compiler-based timing for extremely fine-grain preemptive parallelism · SC 2020
Compilers and program optimization › program transformation
compiler transformations
0.212022
CARAT CAKE: replacing paging via compiler/kernel cooperation · ASPLOS 2022
Memory systems › memory management
virtual memory
0.212022
CARAT CAKE: replacing paging via compiler/kernel cooperation · ASPLOS 2022
Parallel and multicore computing
parallel programming runtimes
0.112021
Paths to OpenMP in the kernel · SC 2021

Methods — techniques the papers use, named apart from their topics

runtime porting · 1.0custom compilation · 1.0static analysis · 0.4kernel support · 0.4compiler transformation · 0.4
YearPublicationVenuePosition
2022 CARAT CAKE: replacing paging via compiler/kernel cooperation
abstract
Virtual memory, specifically paging, is undergoing significant innovation due to being challenged by new demands from modern workloads. Recent work has demonstrated an alternative software only design that can result in simplified hardware requirements, even supporting purely physical addressing. While we have made the case for this Compiler- And Runtime-based Address Translation (CARAT) concept, its evaluation was based on a user-level prototype. We now report on incorporating CARAT into a kernel, forming Compiler- And Runtime-based Address Translation for CollAborative Kernel Environments (CARAT CAKE). In our implementation, a Linux-compatible x64 process abstraction can be based either on CARAT CAKE, or on a sophisticated paging implementation. Implementing CARAT CAKE involves kernel changes and compiler optimizations/transformations that must work on all code in the system, including kernel code. We evaluate CARAT CAKE in comparison with paging and find that CARAT CAKE is able to achieve the functionality of paging (protection, mapping, and movement properties) with minimal overhead. In turn, CARAT CAKE allows significant new benefits for systems including energy savings, larger L1 caches, and arbitrary granularity memory management.
Brian Suchy, Souradip Ghosh, Drew Kersnar, Siyuan Chai 0001, Aaron Nelson, Michael Cuevas, Alex Bernat, Gaurav Chaudhary, Nikos Hardavellas, Simone Campanoni, Peter A. Dinda
ASPLOS7
2021 Paths to OpenMP in the kernel
abstract
OpenMP implementations make increasing demands on the kernel. We take the next step and consider bringing OpenMP into the kernel. Our vision is that the entire OpenMP application, run-time system, and a kernel framework is interwoven to become the kernel, allowing the OpenMP implementation to take full advantage of the hardware in a custom manner. We compare and contrast three approaches to achieving this goal. The first, runtime in kernel (RTK), ports the OpenMP runtime to the kernel, allowing any kernel code to use OpenMP pragmas. The second, process in kernel (PIK) adds a specialized process abstraction for running user-level OpenMP code within the kernel. The third, custom compilation for kernel (CCK), compiles OpenMP into a form that leverages the kernel framework without any intermediaries. We describe the design and implementation of these approaches, and evaluate them using NAS and other benchmarks.
Jiacheng Ma 0002, Aaron Nelson, Michael Cuevas, Brian Homerding, Conghao Liu, Simone Campanoni, Kyle C. Hale, Peter A. Dinda
SC4
2020 Compiler-based timing for extremely fine-grain preemptive parallelism
abstract
In current operating system kernels and run-time systems, timing is based on hardware timer interrupts, introducing inherent overheads that limit granularity. For example, the scheduling quantum of preemptive threads is limited, resulting in this abstraction being restricted to coarse-grain parallelism. Compiler-based timing replaces interrupts from the hardware timer with callbacks from compiler-injected code. We describe a system that achieves low-overhead timing using whole-program compiler transformations and optimizations combined with kernel and run-time support. A key novelty is new static analyses that achieve predictable, periodic run-time behavior from the transformed code, regardless of control-flow path. We transform the code of a kernel and run-time system to use compiler-based timing and leverage the resulting fine-grain timing to extend an implementation of fibers (cooperatively scheduled threads), attaining what is effectively preemptive scheduling. The result combines the fine granularity of the cooperative fiber model with the ease of programming of the preemptive thread model.
Souradip Ghosh, Michael Cuevas, Simone Campanoni, Peter A. Dinda
SC2