In this proposal, we propose the design and implementation of a parallel dynamic language. This language is supposed to be deterministic by default, but allows certain kind of structured non-determinism. The proposed language is extended from existing Ruby language, with some built-in constructs that allows programmers express parallelism implicitly. Its implementation provides two execution modes, release mode for scalable performance on parallel systems, and debug mode for comprehensive debugging uses. Most techniques proposed in our research, however, may also be applicable to other parallel programming languages.
We introduce related background research, as well as our preliminary work on related topics, including deterministic parallel programming and parallel programming models/idioms. We discuss technical issues for proposed research directions, and provide timeline for this work.