J. Ray, S. Lefantzi and H. Najm Sandia National Labs, Livermore Using The Common Component Architecture to Design Simulation Codes.

Slides:



Advertisements
Similar presentations
CCA Common Component Architecture CCA Forum Tutorial Working Group A Look at More Complex.
Advertisements

1 Lawrence Livermore National Laboratory By Chunhua (Leo) Liao, Stephen Guzik, Dan Quinlan A node-level programming model framework for exascale computing*
Parallel Computation of the 2D Laminar Axisymmetric Coflow Nonpremixed Flames Qingan Andy Zhang PhD Candidate Department of Mechanical and Industrial Engineering.
Reference: Message Passing Fundamentals.
I/O Analysis and Optimization for an AMR Cosmology Simulation Jianwei LiWei-keng Liao Alok ChoudharyValerie Taylor ECE Department Northwestern University.
AstroBEAR Finite volume hyperbolic PDE solver Discretizes and solves equations of the form Solves hydrodynamic and MHD equations Written in Fortran, with.
Parallel Computing Overview CS 524 – High-Performance Computing.
Parallel Mesh Refinement with Optimal Load Balancing Jean-Francois Remacle, Joseph E. Flaherty and Mark. S. Shephard Scientific Computation Research Center.
Network and Grid Computing –Modeling, Algorithms, and Software Mo Mu Joint work with Xiao Hong Zhu, Falcon Siu.
Introduction to Scientific Computing Doug Sondak Boston University Scientific Computing and Visualization.
E. WES BETHEL (LBNL), CHRIS JOHNSON (UTAH), KEN JOY (UC DAVIS), SEAN AHERN (ORNL), VALERIO PASCUCCI (LLNL), JONATHAN COHEN (LLNL), MARK DUCHAINEAU.
Kathy Yelick, 1 Advanced Software for Biological Simulations Elastic structures in an incompressible fluid. Blood flow, clotting, inner ear, embryo growth,
Center for Component Technology for Terascale Simulation Software (aka Common Component Architecture) (aka CCA) Rob Armstrong & the CCA Working Group Sandia.
Center for Component Technology for Terascale Simulation Software 122 June 2002Workshop on Performance Optimization via High Level Languages and Libraries.
1 TOPS Solver Components Language-independent software components for the scalable solution of large linear and nonlinear algebraic systems arising from.
LLNL-PRES-XXXXXX This work was performed under the auspices of the U.S. Department of Energy by Lawrence Livermore National Laboratory under Contract DE-AC52-07NA27344.
Optimized Java computing as an application for Desktop Grid Olejnik Richard 1, Bernard Toursel 1, Marek Tudruj 2, Eryk Laskowski 2 1 Université des Sciences.
A Hybrid Decomposition Scheme for Building Scientific Workflows Wei Lu Indiana University.
Tools and Utilities for parallel and serial codes in ENEA-GRID environment CRESCO Project: Salvatore Raia SubProject I.2 C.R. ENEA-Portici. 11/12/2007.
CCA Common Component Architecture Manoj Krishnan Pacific Northwest National Laboratory MCMD Programming and Implementation Issues.
Unified Parallel C at LBNL/UCB UPC AMR Status Report Michael Welcome LBL - FTG.
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
SIAM Computational Science and Engineering1 10 February Components for Scientific Computing: An Introduction David E. Bernholdt Computer Science.
4.2.1 Programming Models Technology drivers – Node count, scale of parallelism within the node – Heterogeneity – Complex memory hierarchies – Failure rates.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
1/20 Optimization of Multi-level Checkpoint Model for Large Scale HPC Applications Sheng Di, Mohamed Slim Bouguerra, Leonardo Bautista-gomez, Franck Cappello.
Grid Computing Research Lab SUNY Binghamton 1 XCAT-C++: A High Performance Distributed CCA Framework Madhu Govindaraju.
Components for Beam Dynamics Douglas R. Dechow, Tech-X Lois Curfman McInnes, ANL Boyana Norris, ANL With thanks to the Common Component Architecture (CCA)
April 26, CSE8380 Parallel and Distributed Processing Presentation Hong Yue Department of Computer Science & Engineering Southern Methodist University.
Center for Component Technology for Terascale Simulation Software CCA is about: Enhancing Programmer Productivity without sacrificing performance. Supporting.
SCIRun and SPA integration status Steven G. Parker Ayla Khan Oscar Barney.
Supercomputing ‘99 Parallelization of a Dynamic Unstructured Application using Three Leading Paradigms Leonid Oliker NERSC Lawrence Berkeley National Laboratory.
DOE PI Meeting at BNL 1 Lightweight High-performance I/O for Data-intensive Computing Jun Wang Computer Architecture and Storage System Laboratory (CASS)
Presented by An Overview of the Common Component Architecture (CCA) The CCA Forum and the Center for Technology for Advanced Scientific Component Software.
A High Performance Middleware in Java with a Real Application Fabrice Huet*, Denis Caromel*, Henri Bal + * Inria-I3S-CNRS, Sophia-Antipolis, France + Vrije.
Parallel Solution of the Poisson Problem Using MPI
Enabling Self-management of Component-based High-performance Scientific Applications Hua (Maria) Liu and Manish Parashar The Applied Software Systems Laboratory.
CCA Common Component Architecture CCA Forum Tutorial Working Group CCA Status and Plans.
Domain Decomposition in High-Level Parallelizaton of PDE codes Xing Cai University of Oslo.
Lecture 3 : Performance of Parallel Programs Courtesy : MIT Prof. Amarasinghe and Dr. Rabbah’s course note.
CCA Common Component Architecture CCA Forum Tutorial Working Group A Look at More Complex.
BioPSE NCRR SCIRun2 -THE PROJECT -OBJECTIVES -DEVELOPMENTS -TODAY -THE FUTURE.
CCA Common Component Architecture CCA Forum Tutorial Working Group An Overview of Components.
Parallelizing Spacetime Discontinuous Galerkin Methods Jonathan Booth University of Illinois at Urbana/Champaign In conjunction with: L. Kale, R. Haber,
Extreme Computing’05 Parallel Graph Algorithms: Architectural Demands of Pathological Applications Bruce Hendrickson Jonathan Berry Keith Underwood Sandia.
Heat release modeling FPVA-based model V. Terrapon and H. Pitsch 1 Stanford PSAAP Center - Working draft.
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
On the Performance of PC Clusters in Solving Partial Differential Equations Xing Cai Åsmund Ødegård Department of Informatics University of Oslo Norway.
C OMPUTATIONAL R ESEARCH D IVISION 1 Defining Software Requirements for Scientific Computing Phillip Colella Applied Numerical Algorithms Group Lawrence.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Center for Component Technology for Terascale Simulation Software (CCTTSS) 110 April 2002CCA Forum, Townsend, TN CCA Status, Code Walkthroughs, and Demonstrations.
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
Center for Component Technology for Terascale Simulation Software (CCTTSS) 110 April 2002CCA Forum, Townsend, TN This work has been sponsored by the Mathematics,
CCA Common Component Architecture CCA Forum Tutorial Working Group Common Component Architecture.
DESIGN PROCESS AND CONCEPTS. Design process s/w design is an iterative process through which requirements are translated into a “blueprint” for constructing.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Hybrid Parallel Implementation of The DG Method Advanced Computing Department/ CAAM 03/03/2016 N. Chaabane, B. Riviere, H. Calandra, M. Sekachev, S. Hamlaoui.
Group Members Hamza Zahid (131391) Fahad Nadeem khan Abdual Hannan AIR UNIVERSITY MULTAN CAMPUS.
Geoffrey Fox Panel Talk: February
VisIt Project Overview
Xing Cai University of Oslo
Parallel Objects: Virtualization & In-Process Components
Structural Simulation Toolkit / Gem5 Integration
Construction of Parallel Adaptive Simulation Loops
Scaling for the Future Katherine Yelick U.C. Berkeley, EECS
Performance Evaluation of Adaptive MPI
Tutorial Overview February 2017
Ph.D. Thesis Numerical Solution of PDEs and Their Object-oriented Parallel Implementations Xing Cai October 26, 1998.
From Use Cases to Implementation
Common Component Architecture (CCA)
Presentation transcript:

J. Ray, S. Lefantzi and H. Najm Sandia National Labs, Livermore Using The Common Component Architecture to Design Simulation Codes

What is CCA Common Component Architecture A component model for HPC and scientific simulations  Modularity, reuse of code Lightweight specification  Few, if any, HPC functionalities are provided.  Performance & flexibility, even at the expense of features. Translation …  High single-CPU performance  Does not impose a parallel programming model  Does not provide any parallel programming services either  But allows one to do parallel computing

The CCA model Component an “object” implementing a functionality (physical/chemical model, numerical algo etc) Provides access via interfaces (abstract classes)  ProvidesPorts Uses other components’ functionality via pointers to their interfaces  UsesPorts Framework Loads and instantiates components on a given CPU Connects uses and provides ports Driven by a script or GUI No numerical/parallel computing etc support.

Details of the architecture 4 CCA-compliant frameworks exist Ccaffeine (Sandia) & Uintah (Utah) used for HPC routinely XCAT (Indiana) & decaff (LLNL) mostly in distributed computing environments CCAFFEINE Component writer deals wil performance issues Also deals with MPI calls amongst components Supports SPMD computing; no distributed computing yet. Allows language interoperability.

A CCA code

Pictorial example

Guidelines regarding apps Hydrodynamics P.D.E Spatial derivatives Finite differences, finite volumes Timescales Length scales

Solution strategy Timescales Explicit integration of slow ones Implicit integration of fast ones Strang-splitting

Solution strategy (cont’d) Wide spectrum of length scales Adaptive mesh refinement Structured axis-aligned patches GrACE. Start with a uniform coarse mesh Identify regions needing refinement, collate into rectangular patches Impose finer mesh in patches Recurse; mesh hierarchy.

A mesh hierarchy

App 1. A reaction-diffusion system. A coarse approx. to a flame. H 2 -Air mixture; ignition via 3 hot-spots 9-species, 19 reactions, stiff chemistry 1cm X 1cm domain, 100x100 coarse mesh, finest mesh = 12.5 micron. Timescales : O(10ns) to O(10 microseconds)

App. 1 - the code

Evolution

Details H 2 O 2 mass fraction profiles.

App. 2 shock-hydrodynamics Shock hydrodynamics Finite volume method (Godunov)

Interesting features Shock & interface are sharp discontinuities Need refinement Shock deposits vorticity – a governing quantity for turbulence, mixing, … Insufficient refinement – under predict vorticity, slower mixing/turbulence.

App 2. The code

Evolution

Convergence

Are components slow ? C++ compilers << Fortran compilers Virtual pointer lookup overhead when accessing a derived class via a pointer to base class Y’ = F ; [ I -  t/2 J ]  Y = H(Y n ) + G(Y m ) ; used Cvode to solve this system J & G evaluation requires a call to a component (Chemistry mockup)  t changed to make convergence harder – more J & G evaluation Results compared to plain C and cvode library

Components versus library tt G evaluations Component time (sec) Library time (sec)

Really so ? Difference in calling overhead Test : F77 versus components  500 MHz Pentium III  Linux  Gcc Function arg type f77Component Array 80 ns224ns Complex 75ns209ns Double complex 86ns241ns

Scalability Shock-hydro code No refinement 200 x 200 & 350 x 350 meshes Cplant cluster 400 MHz EV5 Alphas 1 Gb/s Myrinet Worst perf : 73 % scaling eff. For 200x200 on 48 procs

Summary Components, code Very different physics/numerics by replacing physics components Single cpu performance not harmed by componentization Scalability – no effect Flexible, parallel, etc. etc. … Success story …? Not so fast …

Pros and cons Cons : A set of components solve a PDE subject to a particular numerical scheme Numerics decides the main subsystems of the component assembly  Variation on the main theme is easy  Too large a change and you have to recreate a big percentage of components Pros : Physics components appear at the bottom of the hierarchy Changing physics models is easy. Note : Adding new physics, if requiring a brand-new numerical algorithm is NOT trivial.