WG211/M13Reichenbach
The popularization of parallelism is arguably the most fundamen- tal computing challenge for years to come. We present an approach where parallel programming takes place in a restricted (sub-Turing- complete), logic-based declarative language, embedded in Java. Our logic-based language, PQL, can express the parallel elements of a computing task, while regular Java code captures sequential el- ements. This approach offers a key property: the purely declarative nature of the language allows for aggressive optimization, in much the same way that relational queries are optimized by a database engine. At the same time, declarative queries can operate on plain Java data, extending patterns such as map-reduce to arbitrary levels of nesting and composition complexity.
We have implemented PQL and showcase its expressiveness as well as its scalability compared to competitive techniques for similar tasks (Java + relational queries, in-memory Hadoop, etc.).