Interactive Visualization of Terascale Data in the Browser ...
Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on...
-
Upload
jocelin-haynes -
Category
Documents
-
view
214 -
download
0
Transcript of Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on...
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
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!
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)
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
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
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
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
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
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