CAREER: Take Your Vitamins: Robust Parallel Software Through Supplement Oriented Programming
University Of Pennsylvania, Philadelphia PA
Investigators
Abstract
Lewis, Christopher University of Pennsylvia CCF-0347290 Parallel programs are notoriously difficult to write and growing application requirements (e.g, ease of development, reliability, security, etc.) are only exacerbating the problem. Ad hoc dynamic techniques that observe, limit, or otherwise control running applications (e.g., array bounds checks, assertions, bug isolation) have helped satisfy some of these requirements in sequential programs, but performance overhead and implementation challenges have limited their general utility. This research develops and evaluates supplement-oriented programming as a programming paradigm for conveniently and efficiently enhancing parallel systems with dynamic checks and monitors. Supplement-oriented programming is a style of programming in which abstract computations (called supplements) implement supplemental behaviors that are added to a running application in order to dynamically observe, limit, or control it without changing its core functional behavior. Supplement-oriented programming transforms the use of supplemental behaviors from an awkward, ad hoc art to a well-supported programming paradigm. The logical separation of functional and supplemental behaviors allows for simpler supplement-enabled programs, plug-and-play supplement libraries, language and tool-based support, and (ultimately) higher quality, easier to build parallel programs. This work also explores novel implementation techniques, such as backfill processing, that efficiently implement supplements using the often underutilized parallel resources of typical systems. Supplement-oriented programming is an enabling technology. It will not only improve the robustness of parallel software, it will allow people with broader abilities, interests, and backgrounds to use parallel systems, magnifying their creative power so that they may find new and important uses for these machines.
View original record on NSF Award Search →