A domain-specific embedded language for programming parallel architectures
The authors' goal in this paper has been to define a minimal and orthogonal DSEL (Domain-Specific Embedded Language) that would add parallelism to an imperative language. It will be demonstrated that this DSEL will guarantee correct, efficient schedules. The schedules will be shown to be deadlock- and racecondition-free. The efficiency of the schedules will be shown to add no worse than a poly-logarithmic order to the algorithmic run-time of the program on a CREW-PRAM (Concurrent-Read, Exclusive-Write, Parallel Random-Access Machine) or EREW-PRAM (Exclusive-Read EW-PRAM) computation model. Furthermore the DSEL assists the user with regards to debugging. An implementation of the DSEL in C++ exists.