A Domain-Specific Language and Editor for Parallel Particle Methods
Sven Karol, Tobias Nett, Jeronimo Castrillon, Ivo F. Sbalzarini

TL;DR
This paper introduces PPME, a domain-specific language and environment for parallel particle methods, leveraging language workbenches to improve usability and provide formal analysis tools for scientific high-performance computing.
Contribution
It presents PPME, a novel DSL built with the MPS workbench, featuring static analyses, projectional editing, and a formal type system for particle methods, improving over previous approaches.
Findings
PPME enhances programmer experience with static analyses.
PPME includes a formal type system for particle methods.
Comparison shows PPME's advantages over PPML.
Abstract
Domain-specific languages (DSLs) are of increasing importance in scientific high-performance computing to reduce development costs, raise the level of abstraction and, thus, ease scientific programming. However, designing and implementing DSLs is not an easy task, as it requires knowledge of the application domain and experience in language engineering and compilers. Consequently, many DSLs follow a weak approach using macros or text generators, which lack many of the features that make a DSL a comfortable for programmers. Some of these features---e.g., syntax highlighting, type inference, error reporting, and code completion---are easily provided by language workbenches, which combine language engineering techniques and tools in a common ecosystem. In this paper, we present the Parallel Particle-Mesh Environment (PPME), a DSL and development environment for numerical simulations based…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Software Testing and Debugging Techniques · Model-Driven Software Engineering Techniques
