Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on...

9
1 22 June 2002 Workshop on Performance Optimization via High Level Languages and Libraries Center for Component Technology for Terascale Simulation Software 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

Transcript of Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on...

Page 1: Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.

122 June 2002 Workshop on Performance Optimization via High Level Languages and Libraries

Center for Component Technology for Terascale Simulation Software

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

Page 2: Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.

11

Center for Component Technology for Terascale Simulation Software

Workshop on Performance Optimization via High Level Languages and Libraries22 June 2002

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!

Page 3: Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.

12

Center for Component Technology for Terascale Simulation Software

Workshop on Performance Optimization via High Level Languages and Libraries22 June 2002

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)

Page 4: Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.

13

Center for Component Technology for Terascale Simulation Software

Workshop on Performance Optimization via High Level Languages and Libraries22 June 2002

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

Page 5: Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.

14

Center for Component Technology for Terascale Simulation Software

Workshop on Performance Optimization via High Level Languages and Libraries22 June 2002

Babel Results (Relative to Native F77)

Calling Lang.

Called Lang.

"Simple" Args.

Overall Average

C C 2.6 3.8

C++ C 3.5 6.3

F77 C 2.7 7.3

C C++ 3.9 12.2

C++ C++ 4.9 14.5

F77 C++ 4.1 15.3

C F77 4.1 10.3

C++ F77 4.9 13.3

F77 F77 4.4 14.2

Page 6: Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.

15

Center for Component Technology for Terascale Simulation Software

Workshop on Performance Optimization via High Level Languages and Libraries22 June 2002

Babel Adaptation Costs

Argument C to CTime (ns)

C++ to C++(Rel. C to C)

F77 to F77(Rel. C to C)

Array 44.3 11.4 1.8

Bool 43.7 3.3 3.0

Complex (by value)

49.8 2.3 1.5

Double Complex (by ref)

45.0 5.8 1.5

Double Complex (by value)

57.3 3.5 1.5

Ordered Array 255 2.2 1.0

String (by ref) 43.7 84.3 121

String (by value) 39.0 26.8 49.2

Page 7: Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.

16

Center for Component Technology for Terascale Simulation Software

Workshop on Performance Optimization via High Level Languages and Libraries22 June 2002

Comparing Environments

Native F77

Time (ns)

Babel C to C

Rel. F77

Ccaffeine

Rel. F77

OmniORB

Rel. F77

"Simple" Args.

18 2.6 2.4 91.1

Overall Average

17 3.8 2.8 97.6

Page 8: Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.

17

Center for Component Technology for Terascale Simulation Software

Workshop on Performance Optimization via High Level Languages and Libraries22 June 2002

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

Page 9: Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.

18

Center for Component Technology for Terascale Simulation Software

Workshop on Performance Optimization via High Level Languages and Libraries22 June 2002

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