Whenever I see buzz around “ML for Computer Systems” my first question is always “how debuggable is this?”
A major benefit of the sophisticated heuristics and algorithms that power modern systems is the legion of experts who deeply understand how they work. When we see poor performance, a bit of digging and asking around will usually unearth some principled reasoning about how we can modify our programs to work well with the existing heuristics (think branch prediction).
Unless we are careful, we lose this with an ML-based approach
I think this is a fair concern. I agree that the ML approaches can cause explainability and traceability issues but not all of them. We also support ML approaches like decision trees which can be considered more "debuggable". However you might not be able to solve every single problem with decision trees just because it is "debuggable". Besides, there are a lot of researchers are working on ML explainability. Our vision is simply building self-adaptive tuning systems which may not require constant development efforts to optimize OS and storage components for ever-changing workloads and new devices. You can find more discussion about this topic in the paper too.
For sure, I agree that interpretation is critical for computing systems like operating systems and compilers. I have been extremely pleased that most of the recent popular SysML research readily trades correctness for understandability. Likewise,
I have also been pleased that correctness is often traded for performance.
A major benefit of the sophisticated heuristics and algorithms that power modern systems is the legion of experts who deeply understand how they work. When we see poor performance, a bit of digging and asking around will usually unearth some principled reasoning about how we can modify our programs to work well with the existing heuristics (think branch prediction).
Unless we are careful, we lose this with an ML-based approach