Reflective Parallel Programming Extensible and High-Level Control of Runtime, Compiler, and Application Interaction

Free registration required

Executive Summary

Thread support in most languages is opaque and low-level. Primitives like wait and signal do not allow users to determine the relative ordering of statements in different threads in advance. In this paper, the authors extend the reflection and meta-programming facilities of object-oriented languages to cover parallel program schedules. The user can then access objects representing the extant threads or other parallel tasks. These objects can be used to modify or query happens before relations, locks, and other high-level scheduling information. These high-level models enable users to design their own parallel abstractions, visualizers, safety checks, and other tools in ways that are not possible today.

  • Format: PDF
  • Size: 175.67 KB