16 research outputs found

    Object-Oriented Implementation of the NAS Parallel Benchmarks using Charm++

    Get PDF
    This report describes experiences with implementing the NAS Computational Fluid Dynamics benchmarks using a parallel object-oriented language, Charm++. Our main objective in implementing the NAS CFD kernel benchmarks was to develop a code that could be used to easily experiment with different domain decomposition strategies and dynamic load balancing. We also wished to leverage the object-orientation provided by the Charm++ parallel object-oriented language, to develop reusable abstractions that would simplify the process of developing parallel applications. We first describe the Charm++ parallel programming model and the parallel object array abstraction, then go into detail about each of the Scalar Pentadiagonal (SP) and Lower/Upper Triangular (LU) benchmarks, along with performance results. Finally we conclude with an evaluation of the methodology used

    Practical Parallel Programming, by Gregory V. Wilson

    No full text

    Charisma: A Component Architecture for Parallel Programming

    No full text
    129 p.Thesis (Ph.D.)--University of Illinois at Urbana-Champaign, 2002.Support for legacy codes is vital in the success of any new programming system. We describe how legacy components written using message-passing paradigm could be converted to use Charisma. Our efforts are based on AMPI, our implementation of the MPI library on top of Charm++.U of I OnlyRestricted to the U of I community idenfinitely during batch ingest of legacy ETD

    Charisma: A Component Architecture for Parallel Programming

    No full text
    129 p.Thesis (Ph.D.)--University of Illinois at Urbana-Champaign, 2002.Support for legacy codes is vital in the success of any new programming system. We describe how legacy components written using message-passing paradigm could be converted to use Charisma. Our efforts are based on AMPI, our implementation of the MPI library on top of Charm++.U of I OnlyRestricted to the U of I community idenfinitely during batch ingest of legacy ETD

    Load Balancing in Parallel Molecular Dynamics

    No full text
    Implementing a parallel molecular dynamics as a parallel application presents some unique load balancing challenges. Non-uniform distribution of atoms in space, along with the need to avoid symmetric redundant computations, produces a highly irregular computational load. Scalability and efficiency considerations produce further irregularity. Also, as the simulation evolves, the movement of atoms causes changes in the load distributions. This paper describes the use of an object-based, measurement-based load balancing strategy for a parallel molecular dynamics application, and its impact on performance. 1 Introduction Computational molecular dynamics is aimed at studying the properties of biomolecular systems, and their dynamic interactions. As human understanding of biomolecules progresses, such computational simulations become increasingly important. In addition to their use in understanding basic biological processes, such simulations are used in rational drug design. As rese..

    Parallel Objects: Virtualization and in-Process Components

    No full text
    We summarize the object-based virtualization model that we have been developing for the past decade, and demonstrate how it enables automatic optimizations, especially at runtime. The parallel programming paradigm represented by the virtualization model has been implemented in the Charm++ and AMPI libraries. In this paradigm, the programmer specifies their parallel application as a collection of interacting entities, without any reference to processors. The runtime system is free to map these entities to processors, and migrate them at runtime as needed. This separation of concerns enables several runtime optimizations, involving messagedriven execution, automatic load balancing and communication patterns. A recently developed component model is also shown to create new opportunities for runtime optimizations
    corecore