Heidi Pan1, Benjamin Hindman and Krste Asanović
For the software industry to take advantage of multicore processors, we must allow programmers to arbitrarily compose parallel libraries without sacrificing performance. We argue that high-level task or thread abstractions and a common global scheduler cannot provide effective library composition. Instead, the operating system should expose unvirtualized processing resources that can be shared cooperatively between parallel libraries within an application. Lithe is our system that standardizes and facilitates the exchange of these unvirtualized processing resources between libraries.