XPS: EXPL: CCA: Merging Parallel Run-times and Operating Systems
Northwestern University, Evanston IL
Investigators
Abstract
Title: XPS: EXPL: CCA: Merging Parallel Run-times and Operating Systems Parallelism, the ability to do break down larger tasks into smaller tasks that can be done simultaneously, is essential for applications to continue to become exponentially faster over time. Considerable effort has been placed and is being placed into research on how to achieve parallelism within hardware, programming languages, compilers, and algorithms. However, application software also depends on systems software, particularly the operating system kernel. Currently, the application software and the operating system kernel are very distinct domains with a high barrier between them, and only the operating system kernel has full access to the hardware. While this design exists for very good reasons, it may now limit the parallelism and thus the performance possible in applications. This project investigates an alternative design in which the application software and the operating system kernel are merged into one entity. The intellectual merits are several. First, such a design has not been previously studied in the context of parallelism---this project will determine if it is a good idea. Second, the design resonates with modern languages and run-time systems that are designed specifically with parallelism in mind---such systems can leverage the opportunity to use the operating system kernel and the hardware in new ways. Finally, the project team is well poised to carry out the investigation given their prior work in operating systems and virtualization for high performance computing. The project's broader significance and importance are based on the extent to which the alternative design can enhance performance and the amount of exploitable parallelism. If this is considerable, then the alternative design may be widely adopted and thus contribute to keeping computing performance, as experienced even by end-users, on its exponential track. The project is primarily concerned with allowing modern parallel run-time systems (and their applications) to be re-conceptualized as kernels in their own right. By being a kernel, a run-time can access the full hardware capabilities of the machine, and it can implement exactly the kernel abstractions that it needs to achieve its goals. The team is designing, implementing, and evaluating a kernel framework to support the porting and construction of parallel run-time systems for this model. Using a set of several current run-time systems and several different kinds of parallel hardware, the team is also investigating what kernel abstractions are useful within this model, as well as how to leverage kernel-only hardware features to better support the run-time systems. Both mature run-times which are to be ported to the model and nascent run-times that can be co-designed with the model are under consideration. The project also integrates with another effort that is investigating a virtualization approach that may make it possible to support the new model simultaneously with the old model.
View original record on NSF Award Search →