12 research outputs found

    A Parallel Three-dimensional Electromagnetic Particle-in-Cell Code for Non-Orthogonal Meshes

    No full text
    We describe a new parallel three dimensional electromagnetic particle-in-cell code that uses body fitted curvilinear coordinates for modeling plasma and beam devices. Cells in the structure grid are deformable hexahedra in physical space and are mapped to unit cubes in logical space for particle interpolations. The algorithms conserve particle charge and current, and update the electromagnetic fields in a divergence preserving manner. The code is modular and portable, and we present numerical results of convergence rates and benchmarks on serial, vector and parallel computers for the components separately and together. 1 Introduction An electromagnetic particle-in-cell (EMPIC) code seeks to simulate a plasma or charged particle beam through a direct simulation of the evolution of the electromagnetic fields and the charged particle positions and velocities. The overall accuracy of the code depends on (1) how well it models the geometry of the problem, (2) the algorithms it uses to upda..

    Delayed evaluation self-optimising software components as a programming model

    No full text
    Abstract. We argue that delayed-evaluation, self-optimising scientific software components, which dynamically change their behaviour according to their calling context at runtime offer a possible way of bridging the apparent conflict between the quality of scientific software and its performance. Rather than equipping scientific software components with a performance interface which allows the caller to supply the context information that is lost when building abstract software components, we propose to recapture this lost context information at runtime. This paper is accompanied by a public release of a parallel linear algebra library with both C and C++ language interfaces which implements this proposal. We demonstrate the usability of this library by showing that it can be used to supply linear algebra component functionality to an existing external software package. We give preliminary performance figures and discuss avenues for future work. 1 Component-based Application Construction There is often an apparent conflict between the quality of scientific software and its performance. High quality scientific software has to be easy to re-use, easy to re-engineer

    Parallel Computation: MM +/- X

    No full text

    Guaranteed Optimization for Domain-Specific Programming

    No full text
    Abstract. For software engineering reasons, it is often best to provide domain-specific programming environments in the context of a generalpurpose language. In our view general-purpose languages are not yet general-purpose enough, and progress needs to be made before we can provide domain-specific languages that are both fast and safe. We outline some goals in this regard, and describe a possible implementation technology: guaranteed optimization, a technique for building compilers that provide proven guarantees of what optimizations they perform. Such optimizers can provide capabilities similar to staged languages, and thus provide the relevant performance improvements. They can also function as decision procedures, suggesting an approach of ’optimizers as theorem provers, ’ in which optimizing compilers can be used to check domainspecific safety properties and check proofs embedded in programs.
    corecore