Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.

Slides:



Advertisements
Similar presentations
Dynamic Load Balancing in Scientific Simulation Angen Zheng.
Advertisements

Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract.
Ensemble Emulation Feb. 28 – Mar. 4, 2011 Keith Dalbey, PhD Sandia National Labs, Dept 1441 Optimization & Uncertainty Quantification Abani K. Patra, PhD.
Unstructured Data Partitioning for Large Scale Visualization CSCAPES Workshop June, 2008 Kenneth Moreland Sandia National Laboratories Sandia is a multiprogram.
Exploring Communication Options with Adaptive Mesh Refinement Courtenay T. Vaughan, and Richard F. Barrett Sandia National Laboratories SIAM Computational.
Avoiding Communication in Sparse Iterative Solvers Erin Carson Nick Knight CS294, Fall 2011.
Scientific Computing on Heterogeneous Clusters using DRUM (Dynamic Resource Utilization Model) Jamal Faik 1, J. D. Teresco 2, J. E. Flaherty 1, K. Devine.
Department of Biomedical Informatics Dynamic Load Balancing (Repartitioning) & Matrix Partitioning Ümit V. Çatalyürek Associate Professor Department of.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
Domain decomposition in parallel computing Ashok Srinivasan Florida State University COT 5410 – Spring 2004.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
Loads Balanced with CQoS Nicole Lemaster, Damian Rouson, Jaideep Ray Sandia National Laboratories Sponsor: DOE CCA Meeting – January 22, 2009.
Combinatorial Scientific Computing is concerned with the development, analysis and utilization of discrete algorithms in scientific and engineering applications.
Page 1 Trilinos Software Engineering Technologies and Integration Capability Area Overview Roscoe A. Bartlett Department.
Sandia National Laboratories Graph Partitioning Workshop Oct. 15, Load Balancing Myths, Fictions & Legends Bruce Hendrickson Sandia National Laboratories.
Pamgen A Parallel Finite-Element Mesh Generation Library TUG 2008 Monday, October 21, 2008 David Hensinger (SNL) Sandia is a multiprogram laboratory operated.
Sandia National Laboratories is a multi-program laboratory managed and operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin Corporation,
Trilinos: From a User’s Perspective Russell Hooper Nov. 7, 2007 SAND P Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
Principles of Scalable HPC System Design March 6, 2012 Sue Kelly Sandia National Laboratories Abstract: Sandia National.
PyTrilinos: A Python Interface to Trilinos Bill Spotz Sandia National Laboratories Reproducible Research in Computational Geophysics August 31, 2006.
Page 1 Trilinos Software Engineering Technologies and Integration Capability Area Overview Roscoe A. Bartlett Department.
Page 1 Trilinos Software Engineering Technologies and Integration Numerical Algorithm Interoperability and Vertical Integration –Abstract Numerical Algorithms.
High Performance Computing 1 Load-Balancing. High Performance Computing 1 Load-Balancing What is load-balancing? –Dividing up the total work between processes.
Amesos Sparse Direct Solver Package Ken Stanley, Rob Hoekstra, Marzio Sala, Tim Davis, Mike Heroux Trilinos Users Group Albuquerque 3 Nov 2004.
ALEGRA is a large, highly capable, option rich, production application solving coupled multi-physics PDEs modeling magnetohydrodynamics, electromechanics,
Collaborative Research into Exascale Systemware, Tools and Applications Gregor Matura, German Aerospace Center (DLR) Achim Basermann, Fang Chen, Markus.
After step 2, processors know who owns the data in their assumed partitions— now the assumed partition defines the rendezvous points Scalable Conceptual.
Automatic Differentiation: Introduction Automatic differentiation (AD) is a technology for transforming a subprogram that computes some function into a.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
Strategies for Solving Large-Scale Optimization Problems Judith Hill Sandia National Laboratories October 23, 2007 Modeling and High-Performance Computing.
Application Paradigms: Unstructured Grids CS433 Spring 2001 Laxmikant Kale.
Supercomputing ‘99 Parallelization of a Dynamic Unstructured Application using Three Leading Paradigms Leonid Oliker NERSC Lawrence Berkeley National Laboratory.
Combinatorial Scientific Computing and Petascale Simulation (CSCAPES) A SciDAC Institute Funded by DOE’s Office of Science Investigators Alex Pothen, Florin.
1 1  Capabilities: Dynamic load balancing and static data partitioning -Geometric, graph-based, hypergraph-based -Interfaces to ParMETIS, PT-Scotch, PaToH.
LAMMPS Users’ Workshop
Danny Dunlavy, Andy Salinger Sandia National Laboratories Albuquerque, New Mexico, USA SIAM Parallel Processing February 23, 2006 SAND C Sandia.
New Features in ML 2004 Trilinos Users Group Meeting November 2-4, 2004 Jonathan Hu, Ray Tuminaro, Marzio Sala, Michael Gee, Haim Waisman Sandia is a multiprogram.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
STK (Sierra Toolkit) Update Trilinos User Group meetings, 2014 R&A: SAND PE Sandia National Laboratories is a multi-program laboratory operated.
CS 484 Load Balancing. Goal: All processors working all the time Efficiency of 1 Distribute the load (work) to meet the goal Two types of load balancing.
Adaptive Mesh Applications Sathish Vadhiyar Sources: - Schloegel, Karypis, Kumar. Multilevel Diffusion Schemes for Repartitioning of Adaptive Meshes. JPDC.
Partitioning using Mesh Adjacencies  Graph-based dynamic balancing Parallel construction and balancing of standard partition graph with small cuts takes.
ParaView III Software Methodology Update Where to now November 29, 2006 John Greenfield Sandia is a multiprogram laboratory operated by Sandia Corporation,
An Evaluation of Partitioners for Parallel SAMR Applications Sumir Chandra & Manish Parashar ECE Dept., Rutgers University Submitted to: Euro-Par 2001.
Domain decomposition in parallel computing Ashok Srinivasan Florida State University.
Data Structures and Algorithms in Parallel Computing Lecture 7.
Photos placed in horizontal position with even amount of white space between photos and header Sandia National Laboratories is a multi-program laboratory.
ML: A Multilevel Preconditioning Package Copper Mountain Conference on Iterative Methods March 29-April 2, 2004 Jonathan Hu Ray Tuminaro Marzio Sala Sandia.
1 Rocket Science using Charm++ at CSAR Orion Sky Lawlor 2003/10/21.
CS 420 Design of Algorithms Parallel Algorithm Design.
Other Tools HPC Code Development Tools July 29, 2010 Sue Kelly Sandia is a multiprogram laboratory operated by Sandia Corporation, a.
Sandia National Laboratories is a multi-program laboratory managed and operated by Sandia Corporation, a wholly owned subsidiary of Lockheed Martin Corporation,
What’s New for Epetra Michael A. Heroux Sandia National Laboratories Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin.
1 1 Zoltan: Toolkit of parallel combinatorial algorithms for unstructured, dynamic and/or adaptive computations Unstructured Communication Tools -Communication.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear.
A Parallel Hierarchical Solver for the Poisson Equation Seung Lee Deparment of Mechanical Engineering
Dynamic Load Balancing in Scientific Simulation
On the Path to Trinity - Experiences Bringing Codes to the Next Generation ASC Platform Courtenay T. Vaughan and Simon D. Hammond Sandia National Laboratories.
CSCAPES Mission Research and development Provide load balancing and parallelization toolkits for petascale computation Develop advanced automatic differentiation.
Virtual Directory Services and Directory Synchronization May 13 th, 2008 Bill Claycomb Computer Systems Analyst Infrastructure Computing Systems Department.
High Performance Computing Seminar II Parallel mesh partitioning with ParMETIS Parallel iterative solvers with Hypre M.Sc. Caroline Mendonça Costa.
Auburn University
2D AFEAPI Overview Goals, Design Space Filling Curves Code Structure
Parallel Hypergraph Partitioning for Scientific Computing
Unstructured Grids at Sandia National Labs
Trilinos Software Engineering Technologies and Integration
Integrating Efficient Partitioning Techniques for Graph Oriented Applications My dissertation work represents a study of load balancing and data locality.
Presentation transcript:

Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy’s National Nuclear Security Administration under contract DE-AC04-94AL Partitioning and Load-Balancing in Trilinos Erik Boman Cedric Chevalier, Karen Devine, Lee Ann Riesen Sandia National Laboratories, NM, USA Trilinos User’s Group, Oct 21, 2008.

2 Partitioning and Load Balancing Load Balancing –Assign data/work to processors to distribute data/work evenly and minimize communication Static vs. dynamic –Static: Partition once (pre-processing) –Dynamic: May need to repartition and redistribute data (at run-time)

3 Partitioning Methods Block distribution –Give n/p consecutive data elements (e.g. rows) to each proc. –Good load balance, but possibly high communication –Default distribution for Epetra maps! Graph partitioning –Vertices (weighted) = computation –Edge (weighted) = data dependence –Minimize cut edges Hypergraph partitioning –Generalizes graph partitioning –Accurate model of communication volume –Works for nonsymmetric and rectangular matrices Proc 1 Proc 2 Proc 3

4 Zoltan Toolkit: Focus on partitioning and load-balancing –Collection of many partitioning algorithms –Also provides graph coloring, matrix ordering (Cedric) –Mature (predates Trilinos); used in production codes New package in Trilinos 9.0 –May also be obtained and built separately –No dependence on Trilinos packages

5 Zoltan Supports Many Applications SIERRA, ALEGRA, CHISELS, Presto, Chemcell, Xyce, Aleph, … Multiphysics simulations xbA = Linear solvers & preconditioners Adaptive mesh refinement Crash simulations Particle methods Parallel electronics networks 1 2 Vs SOURCE_VOLTAGE 1 2 Rs R 1 2 Cm012 C 1 2 Rg02 R 1 2 Rg01 R 1 2 C01 C 1 2 C02 C 12 L2 INDUCTOR 12 L1 INDUCTOR 12 R1 R 12 R2 R 1 2 Rl R 1 2 Rg1 R 1 2 Rg2 R 1 2 C2 C 1 2 C1 C 1 2 Cm12 C

6 Zoltan Toolkit: Suite of Partitioning Algorithms Recursive Coordinate Bisection Recursive Inertial Bisection Space Filling Curves Refinement-tree Partitioning Octree Partitioning Graph Partitioning (ParMETIS, PHG ) Hypergraph Partitioning

7 Zoltan and Isorropia Isorropia is the primary user interface to Zoltan for Trilinos/Epetra users Zoltan Isorropia Trilinos application

8 Isorropia Isorropia is a Trilinos package that provides a matrix-based interface to Zoltan –Requires: Zoltan, Epetra, Teuchos –Relies on Zoltan for most algorithms –Focuses on sparse matrix partitioning –Accepts Epetra matrices as input –Supports block, graph, hypergraph partitioning –Generates good Epetra maps Load-balanced to reduce communication

9 Feature Overlap Isorropia only supports a subset of Zoltan Expanding to most features Isorropia will soon go beyond Zoltan –2d matrix partitioning Isorropia Zoltan

10 Isorropia API Three primary user-interface classes: –Partitioner: Constructed with distributed graph/matrix as input, calls Zoltan to compute ‘new’ partitioning (map). –Redistributor: Constructed with Partitioner instance. Can then be used to redistribute objects (matrices, vectors, matrix-graphs) from the old partitioning to the new partitioning. – CostDescriber: Interface which allows users to specify weights or costs associated with the vertices or edges of the object to be repartitioned. Allows user-specified vertex weights, graph edge weights, and hypergraph edge weights.

11 Isorropia Example // RCP is a smart pointer type in Teuchos. RCP matrix =... RCP vec =... Teuchos::ParameterList paramlist; //Optionally set Zoltan parameters // Create partitioner from matrix Isorropia::Epetra::Partitioner partitioner(matrix, paramlist); //partitioner->compute_partitioning(); // Create redistributor from partitioner Isorropia::Redistributor rd(rcp(&partitioner)); // Create a balanced matrix from redistributor RCP balanced_matrix = rd.redistribute(*matrix); RCP balanced_vec = rd.redistribute(*vec);

12 Load-balancing in Trilinos An application has two options: Call Zoltan directly –Most flexible approach –App must write Zoltan callback functions –No support for Epetra data types Use Isorropia –Highly recommended (easy!) for Epetra users –Currently limited to sparse matrices (graphs) –Geometric partitioning via Multivectors under development (not in 9.0)

13 Comparison Chart Build systemAutomake and manual Automake LanguageC (also C++ and F90 interfaces) C++ InterfaceCallback functions (user must provide) Epetra data types Package dependencies NoneZoltan, Epetra, Teuchos FeaturesPartitioning, Coloring, Ordering, Dist. data directory, Unstr. Comm. Lib. Partitioning, Coloring, Ordering, Data redistribution ZoltanIsorropia

14 How to configure/build Simply enable the package you want: –../configure –enable-zoltan –../configure –enable-isorropia –Note: Isorropia will enable Zoltan (required dep.) Both Zoltan and Isorropia can use select 3 rd party partitioning libraries (optional) –ParMetis –PT-Scotch (new!) –Patoh Specify TPL as configure option –../configure –enable-zoltan –with-parmetis

15 Work in Progress (10.0) Geometric partitioning in Isorropia –Support load-balancing for mesh and particles –Interface: MultiVector 2D matrix partitioning –Reduce communication by non-row-based partition –Resulting matrix can still be stored as CrsMatrix Create 1-1 maps from overlapping maps –Application: FEM code where assembly map is overlapping but we need 1-1 solver map Symmetrize matrix for graph partitioning

16 The End

17 Isorropia Tool to create better maps – Produce maps for better load balance and optimized communication – 4 different maps for 2D objects (graphs, matrices): RowMap, ColumnMap, RangeMap, DomainMap – Currently Isorropia performs row partitioning Novel 2D partitioning in progress

18 Isorropia Example // RCP is a smart pointer type in Teuchos. RCP matrix =... RCP vec =... Teuchos::ParameterList paramlist; //Optionally set Zoltan parameters // Create partitioner from matrix RCP partitioner = Isorropia::Epetra::create_partitioner(matrix, paramlist); //partitioner->compute_partitioning(); // Create redistributor from partitioner Isorropia::Redistributor rd(partitioner); // Create a balanced matrix from redistributor RCP balanced_matrix = rd.redistribute(*matrix); RCP balanced_vec = rd.redistribute(*vec);