{'fraction_non_alphanumeric': 0.02068519715578539, 'fraction_numerical': 0.003232062055591467, 'mean_word_length': 5.559322033898305, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A domain-specific programming language for particle simulations on distributed-memory parallel computers

Particle methods provide a fully adaptive numerical simulation scheme that efficiently parallelizes on distributed-memory computers. The necessary parallel data structures and operators have been implemented in the PPM Library [3], effectively reducing code development times to just a few hours. The PPM Library implements a generic set of abstractions for particle methods and hybrid particlemesh methods. These abstractions naturally define a language in which the workflow of a particle simulation can be concisely expressed. We present the domain-specific programming language PPML, the parallel particle-mesh language, for hybrid particle-mesh simulations. PPML provides a compact notation for particle methods. The PPML compiler translates PPML code to object-oriented Fortran 2003 code that can then be compiled and run on the target machine. The PPM Library is used as a runtime system, providing transparent parallelization on distributed-memory computers. We aim at reducing the knowledge gap for mid-sized adaptive-resolution simulations running on a few hundred to a few thousand processors. We present several examples of PPML and its use, highlighting the computational efficiency and parallel scalability of the automatically generated simulation codes. We further present WebCG, a graphical front-end for PPML that runs in a web browser and allows remotely generating, running, and controlling parallel particle simulations.