A component architecture for high performance computing
Download
1 / 9

A Component Architecture for High Performance Computing - PowerPoint PPT Presentation


  • 82 Views
  • Uploaded on

A Component Architecture for High Performance Computing. David E. Bernholdt , Wael R. Elwasif, and James A. Kohl Oak Ridge National Laboratory Thomas G. W. Epperly Lawrence Livermore National Laboratory.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' A Component Architecture for High Performance Computing' - mendel


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
A component architecture for high performance computing

A Component Architecture for High Performance Computing

David E. Bernholdt, Wael R. Elwasif, and James A. Kohl

Oak Ridge National Laboratory

Thomas G. W. Epperly

Lawrence Livermore National Laboratory

Research supported by the Mathematics, Information and Computational Sciences Office, Office of Advanced Scientific Computing Research, U.S. Dept. of Energy under contract no. DE-AC05-00OR22725 with UT-Battelle, LLC and W-7405-Eng-48 with the Univ. of California.

LLNL release UCRL-PRES-148723

Workshop on Performance Optimization via High Level Languages and Libraries


Performance considerations
Performance Considerations

  • Calls between components

    • Framework

    • Language interoperability

    • Overhead on function invocation, not execution

    • In Babel, some argument types require adaptation between languages: Array, String, Complex, etc.

  • CCA model is "embarrassingly parallel"

    • Not currently a performance issue

      • We plan to keep it that way!

Workshop on Performance Optimization via High Level Languages and Libraries


Environments measured
Environments Measured

  • Native languages

    • C calling C

    • C++ calling C++

    • Fortran77 calling Fortran77

  • Ccaffeine (C++-based CCA framework)

    • Same process, inter-component calls

  • Babel

    • All combinations of C, C++, F77 calling each other

  • OmniORB (C++-based CORBA environment)

Workshop on Performance Optimization via High Level Languages and Libraries


Native languages baseline results
Native Languages: Baseline Results

  • F77 calls to empty functions with various arguments average 17 ns each

  • C timings:

    • "simple" args: same as F77

    • average 1.1x F77

  • C++ timings:

    • "simple" args: 1.2x F77

    • average 1.8x F77

    • virtual function calls average 2.8x F77

Workshop on Performance Optimization via High Level Languages and Libraries


Babel results relative to native f77
Babel Results (Relative to Native F77)

Workshop on Performance Optimization via High Level Languages and Libraries


Babel adaptation costs
Babel Adaptation Costs

Workshop on Performance Optimization via High Level Languages and Libraries


Comparing environments
Comparing Environments

Workshop on Performance Optimization via High Level Languages and Libraries


Observations
Observations

  • Overhead equivalent to wrapping each call in several extra layers of function calls

  • Only significant for frequently called functions (at interfaces) with little work

  • In "full" CCA environment (Babel integrated w/ framework), overhead is just Babel virtual function call

  • Possibilities to reduce overhead where performance really critical

    • Use native language rather than Babel

    • Change design so calls are intra-component

Workshop on Performance Optimization via High Level Languages and Libraries


Summary
Summary

  • Component environments are intended to help manage the complexity of building large-scale software systems

  • CCA is specifically designed for the needs of large-scale high-performance scientific simulation

  • Performance is a primary consideration

    • Design allows implementations to minimize overheads

    • Actual implementations provide good performance

  • For more info on CCA visit http://www.cca-forum.org

Workshop on Performance Optimization via High Level Languages and Libraries


ad