UCSC-CRL-06-09: The Elements of the CodeTime Software Platform

Sean Halle
05/19/2006 12:40 PM
Computer Engineering
This paper describes the elements of the CodeTime parallel software platform. The platform’s goals are to provide “write-once, compile once, run high performance anywhere” for parallel software, high programmer productivity, and wide-spread acceptance.

The platform includes three top-level components: a virtual server with a novel computation model, a family of source languages which compile down to that computation model, and a complete development environment.

The virtual server is the heart of the platform. It presents the appearance of a single entity, regardless of hardware underneath. The virtual server is a single name-space, and it is composed of a federation of systems. In this model, everything is a named system: each file, each OS function, each program, each server on another machine. A program takes the form of a mutable circuit. This enables both machine-independence and high performance.

The family of source languages includes a bare-bones language, and will later include both an ML-reminiscent language and an OO-flavor language.

The development environment includes: visual authoring, test harness, compiler, build tools, debugging, and team-development infrastructure.