1 / 9

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.

mendel
Download Presentation

A Component Architecture for High Performance Computing

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. Babel Results (Relative to Native F77) Workshop on Performance Optimization via High Level Languages and Libraries

  6. Babel Adaptation Costs Workshop on Performance Optimization via High Level Languages and Libraries

  7. Comparing Environments Workshop on Performance Optimization via High Level Languages and Libraries

  8. 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

  9. 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

More Related