9 research outputs found

    A Domain-Specific Language and Editor for Parallel Particle Methods

    Full text link
    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 on particle methods and hybrid particle-mesh methods. PPME uses the meta programming system (MPS), a projectional language workbench. PPME is the successor of the Parallel Particle-Mesh Language (PPML), a Fortran-based DSL that used conventional implementation strategies. We analyze and compare both languages and demonstrate how the programmer's experience can be improved using static analyses and projectional editing. Furthermore, we present an explicit domain model for particle abstractions and the first formal type system for particle methods.Comment: Submitted to ACM Transactions on Mathematical Software on Dec. 25, 201

    Automated Controller and Sensor Configuration Synthesis Using Dimensional Analysis

    Get PDF

    The air shower simulation framework CORSIKA 8: Development and first applications to muon production

    Get PDF
    Tools to accurately simulate extensive air showers are a key asset for the understanding of ultra-high energy cosmic rays. In this thesis, the Monte Carlo air shower simulation framework CORSIKA 8 is presented. CORSIKA 8 constitutes a next-generation code that aims to combine new functionality with a high level of flexibility and modularity. Notable aspects include the ability to freely combine an arbitrary number of physical processes and to setup simulation environments consisting of several media, including custom atmospheric models. A special feature is the possibility to inspect the complete lineage of particles, which allows linking particles on ground with any of their preceding generations. After describing the foundations of Monte Carlo shower simulations, I explain the architecture of CORSIKA 8 in depth. Focusing on the hadronic and muonic shower components, results obtained with CORSIKA 8 and other simulation codes are compared with each other. Even when using the same hadronic interaction models, a number of differences are observed, in particular regarding low-energy interactions, which have a considerable impact on the lateral distribution of muons at kilometre-scale distances up to a factor of two and more. Making use of the lineage technique, I study the phase space of hadronic interactions in order to quantify the importance for muon production and compare the results with the Heitler–Matthews toy model. At high energies (√s ≳ 500 GeV) particle production in the forward region is confirmed to be especially important, while the central region becomes relevant at low energies (√s ≲ 50 GeV) in particular for muons at large distances. Additionally, I study the impact of modified hadronic interactions on air shower observables. Modified hadron-air cross-sections mainly affect the longitudinal development, causing a larger shift of the maximum muon production depth than of the shower maximum. Artificially increased ρ 0 production, on the other hand, can greatly increase the number of muons with only small impact on other observables. Finally, I also consider the possibility of large multiplicity boson production in the first interaction and study its phenomenology in air showers with a simple toy model. Within the scope of this thesis, I developed the foundations of the CORSIKA 8 framework. Based on the studies that have become possible with CORSIKA 8, I point out some new opportunities towards an improved understanding of muons in air showers

    Dimensional Analysis of Robot Software without Developer Annotations

    Get PDF
    Robot software risks the hazard of dimensional inconsistencies. These inconsistencies occur when a program incorrectly manipulates values representing real-world quantities. Incorrect manipulation has real-world consequences that range in severity from benign to catastrophic. Previous approaches detect dimensional inconsistencies in programs but require extra developer effort and technical complications. The extra effort involves developers creating type annotations for every variable representing a real-world quantity that has physical units, and the technical complications include toolchain burdens like specialized compilers or type libraries. To overcome the limitations of previous approaches, this thesis presents novel methods to detect dimensional inconsistencies without developer annotations. We start by empirically assessing the difficulty developers have in making type annotations. In a human study of 83 subjects, we find that developers are only 51% accurate and require more than 2 minutes per annotation. We further find that type suggestions have a significant impact on annotation accuracy. We find that when showing developers annotation suggestions, three suggestions are better than a single suggestion because they are as helpful when correct and less harmful when incorrect. Since developers struggle to make type annotations accurately, we present a novel method to infer physical unit types without developer annotations. This is novel because it is the first method to detect dimensional inconsistencies in ROS C++ without developer annotations, and this is important because robot software and ROS are increasingly used in real-world applications. Our method leverages a property of robotic middleware architecture that reuses standardized data structures, and we implement our method in an open-source tool, Phriky. We evaluate our method empirically on a corpus of 5.9 M lines of code and find that it detects real inconsistencies with an 87% TP rate. However, our method only assigns physical unit types to 25% of variables, leaving much of the annotation space unaddressed. To overcome these limitations, we extend our method to utilize uncertain evidence in identifiers using probabilistic reasoning. We implement our new probabilistic method in a tool Phys and find that it assigns units to 75% of variables while retaining a TP rate of 82%. We present the first open dataset of dimensional inconsistencies in open-source robotics code, to our knowledge. Lastly, we identify extensions to our work and next steps for software tool developers to build more powerful robot software development tools. Advisers: Sebastian Elbaum and Carrick Detweile

    Fully static dimensional analysis with C++

    No full text
    corecore