Evaluating Candidate Instructions for Reliable Program Slowdown at the Compiler Level - Towards Supporting Fine-grained Slowdown for Advanced Developer Tooling
It might sound surprising, but slowing down programs has various use cases: it helps exposing race conditions, facilitates virtual speedup estimation, and allows one to assess a profiler’s accuracy. Yet, slowing down a program is complicated because today’s CPUs and some runtime systems optimize execution on the fly.
While the basic requirement for the mentioned use cases is to preserve a program’s correctness, the more challenging requirement is to preserve a program’s performance behavior to avoid introducing unintended bias.
In this work, we evaluate six instruction candidates to achieve controlled and fine-grained slowdown without biasing performance, including e.g. NOP, MOV, and PAUSE. We tested each candidate’s ability to achieve a target overhead of 100%, whether the profiler-observable performance behavior changes, and whether slowdown placement inside basic blocks influences results.
On an Intel Core i5-10600 with the Comet Lake-S microarchitecture, our experiments suggest that only NOP and MOV instructions are suitable. We tested this in the context of the Graal just-in-time compiler, with a representative benchmark that has 53 basic blocks. Based on previous work, we believe these experiments can guide future research on advanced developer tooling that utilizes fine-granular slowdown at the machine-code level.
Wed 15 OctDisplayed time zone: Perth change
10:50 - 12:05 | |||
10:50 5mDay opening | Welcome VMIL | ||
10:55 25mResearch paper | Copy-and-Patch Just-in-Time Compiler for R VMIL Matěj Kocourek Charles University, Filip Křikava Czech Technical University in Prague, Jan Vitek Northeastern University DOI | ||
11:25 25mResearch paper | ASTro: An AST-based Reusable Optimization Framework VMIL Koich Sasada Stores, Inc. | ||
11:50 15mShort-paper | Evaluating Candidate Instructions for Reliable Program Slowdown at the Compiler Level - Towards Supporting Fine-grained Slowdown for Advanced Developer Tooling VMIL DOI Pre-print |