Overview: Modern parallel run-times are systems that operate in user mode and run above the system call interface of a general purpose kernel. While this faciltates portability and simplifies the creation of some functionality, it also has consequences that warp the design and implementation of the run-time and affect its performance, efficiency, and scalability. First, the run-time is deprived of the use of hardware features that are available only in kernel mode. This is a large portion of the machine. For example, approximately 1/3 to 1/2 of the Intel processor architecure manual content is about such features. The second consequence is that the run-time must use the abstractions provided by the kernel, even if the abstractions are a bad fit. For example, the run-time might need subset barriers, and be forced to build them out of mutexes. Finally, the kernel has minimal access to the information available to the parallel run-time or to the language implementation it supports. For example, the run-time might not require coherence, but get it anyway. The proposed project will investigate the ellimination of the divide between kernels and parallel run-times, thus elliminating these consequences. The premise is that a parallel run-time will be developed as a kernel or ported to become a kernel, thus allowing it full hardware access, full flexibility in choice of abstractions, and full information flow. The project will design and implement a kernel framework to facilitate the creation of such hybrid run-times or HRTs, and it will study how HRTs can be designed to support different classes of parallel run-times and the languages they support. In addition, existing techniques developed by the PI, collaborators, and others will allow the partitioning of hardware resources, both physically and virtually, so that both HRTs and traditional kernels can run together, allowing the HRT to use the traditional kernel to provide non-performance-critical functionality. Intellectual Merit: The integration of parallel run-times and kernels has not been previously explored, despite the age of related ideas such as exokernels, libOSes, and lightweight kernels. The complexity of scalable hardware, even for commodity uses, is rapidly growing, and much of the interface to this complexity is kernel-mode-only. At the same time, there is growing interest in increasingly high-level parallel languages, exposing more potential uses of kernel-mode-only hardware features and greater inadequacy of general purpose kernel interfaces. The PI and his team are well poised to carry out the proposed research. A long-running chain of work involving virtualization and operating systems for high-end computing has resulted in both team expertise and a substantial codebase. Preliminary work specific to this proposed project includes a custom kernel and ports of several parallel run-times (Legion, NESL, and a locally developed nested data parallel language) and their test applications to run within it. HRTs are feasible and open for exploration. Broader Impacts: By bringing parallel run-times as close to the hardware as possible and facilitating the construction of kernel-level abstractions specifically for them, it is anticipated that performance, efficiency, and scalability will be enhanced as we progress to higher level parallel languages running on increasinlgy complex hardware. Prior work by the PI and collaborators has produced several Ph.D.s, patents, publicly available codebases, and been included as part of the current nation
|Effective start/end date||9/1/15 → 8/31/20|
- National Science Foundation (CCF-1533560-004)
Explore the research topics touched on by this project. These labels are generated based on the underlying awards/grants. Together they form a unique fingerprint.