Project Details
Description
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
Status | Finished |
---|---|
Effective start/end date | 9/1/15 → 8/31/20 |
Funding
- National Science Foundation (CCF-1533560-004)
Fingerprint
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.