Welcome to the WorkTable HomePage

Introduction and Overview

WorkTable is a programming model designed for performant portability, separation of concerns within large teams of programmers, and self documentation. Execution is event driven. Code is organized into activity-descriptions, while contexts flow among the descriptions, triggering computation when a context arrives at a description. The contexts contain both concrete data to be operated upon and abstract representations of data. The abstractions allow the runtime system to insert hardware-dependent choices, which specializes the code to the hardware during the run. Such abstractions require the ability to calculate the ID of other contexts that participate in communications.

  • Performance portability is delivered by the abstractions, which allow the runtime system to adjust the granularity of work during the run.
  • Separation of concerns is delivered by the fact that individual descriptions of activities are bits of sequential code. Parallelism aspects are only seen by the architect of the software system. The vast majority of the work lies within writing the activities. Hence, most programmers are insulated from parallelism concerns.
  • Self documentation is provided by the organization of code into activity-descriptions, along with flows between descriptions. This lends itself to direct visualization, allowing the architect to visually define the system. The code that defines flow is separated, and acts as the direct representation of the visual system. Hence, creating the visual creates the code, and modifying the code modifies the visual.