CS Tea: Aaron Bauer
Units and Unikernels
In this talk I will embrace the breadth and exploration inherent in the liberals arts by highlighting two radically different CS research projects I've started here at Carleton: Understanding Problem-Solving Behavior in Starcraft 2 and A Rust Unikernel for Lightweight Serverless Computing.
The competitive online strategy game Starcraft 2 requires a lot of its players. Decision making under pressure, perfectly-timed muscle memory, and precise information gathering are important parts of every match. A Starcraft novice must learn many skills, both physical and strategic, on their way to becoming an expert. Using tens of thousands of publicly available matches across a range of skill levels, we studied how players gather information, control their attention, and how these behaviors relate to skill level and success.
There are many tasks today that are performed by sending a request to a web-based service, and getting back a result. On the service side, it often needs to be able to handle many simultaneous requests while keeping them isolated from one another. For tiny, short-lived tasks, such as generating a thumbnail image, this isolation should be provided in the most lightweight possible form. To explore this design space, we have implemented a tiny, single-purpose operating system (a unikernel) in the programming language Rust that boots up with the sole function of generating a thumbnail, and compared its performance to several standard alternatives.