Chaos Tools

Related Information

  • Publication List
      - Chaos Overview
      - Meta-Chaos
      - Multiblock Parti

    Software Distribution

  • MultiBlock Parti
  • The development of sophisticated runtime support forms the foundation of our research effort. We have developed the CHAOS library, a runtime support library that couples partitioners to rays, generates optimized communication schedules. The CHAOS library also contains a wide range of efficient partitioners which are based on data access patterns of a problem, computational load information and problem geometry. We have implemented address translation methods which support irregular mappings by using highly optimized page-based translation tables.

    Meta-Chaos

    The related papers describes a framework for providing the ability to use multiple specialized data parallel libraries and/or languages within a single applications. The ability to use multiple libraries) is required in many application areas, such as multidisciplinary complex physical simulations and remote sensing image database applications. An application can consist of one program or multiple programming that use different libraries to parallelize operations on distributed data structures. The framework is embodied in a runtime library called Meta-Chaos that has been used to exchange data between data parallel programs written using High Performance Fortran, the Chaos and Multiblock Parti libraries developed at Maryland for handling various types of unstructured problems, and the runtime library for pc++, a data parallel version of C++ from Indiana University. Experimental results show that Meta-Chaos is able to move data between libraries efficiently, and that Meta-Chaos provides effective support, for complex applications.

    Multiblock Parti

    Multiblock Parti is a runtime support library for distributed memory parallel machines. This library provides the support required for parallelization of codes in which:
    • Data distribution is not known at compile-time
    • Number of processors on which the code is to be executed is not known at compile-time
    • The code involved complex symbolic loop bounds and strides which may make compile-time analysis difficult.
    The design of this library was initially motivated by Multiblock and Multigrid applications. Besides being used for hand-parallelization of codes, this library can be used by compilers of HPF-like data parallel languages. We have successfully integrated this library with Syracuse HPF/F90D compilers.