An Interactive Environment for Combinatorial Scientific Computing Viral B. Shah John R. Gilbert Steve Reinhardt With thanks to: Brad McRae, Stefan Karpinski,

Slides:



Advertisements
Similar presentations
05/11/2005 Carnegie Mellon School of Computer Science Aladdin Lamps 05 Combinatorial and algebraic tools for multigrid Yiannis Koutis Computer Science.
Advertisements

Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar
Graph Algorithms Carl Tropper Department of Computer Science McGill University.
The Combinatorial Multigrid Solver Yiannis Koutis, Gary Miller Carnegie Mellon University TexPoint fonts used in EMF. Read the TexPoint manual before you.
CS 240A: Solving Ax = b in parallel Dense A: Gaussian elimination with partial pivoting (LU) Same flavor as matrix * matrix, but more complicated Sparse.
1 Parallel Sparse Operations in Matlab: Exploring Large Graphs John R. Gilbert University of California at Santa Barbara Aydin Buluc (UCSB) Brad McRae.
Chapter 8, Part I Graph Algorithms.
 Graph Graph  Types of Graphs Types of Graphs  Data Structures to Store Graphs Data Structures to Store Graphs  Graph Definitions Graph Definitions.
Graph & BFS.
1cs542g-term Sparse matrix data structure  Typically either Compressed Sparse Row (CSR) or Compressed Sparse Column (CSC) Informally “ia-ja” format.
1 An Interactive Environment for Combinatorial Supercomputing John R. Gilbert University of California, Santa Barbara Viral Shah (UCSB) Steve Reinhardt.
Graph COMP171 Fall Graph / Slide 2 Graphs * Extremely useful tool in modeling problems * Consist of: n Vertices n Edges D E A C F B Vertex Edge.
Graph & BFS Lecture 22 COMP171 Fall Graph & BFS / Slide 2 Graphs * Extremely useful tool in modeling problems * Consist of: n Vertices n Edges D.
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
Star-P and the Knowledge Discovery Suite Steve Reinhardt, Viral Shah, John Gilbert,
Sparse Matrices and Combinatorial Algorithms in Star-P Status and Plans April 8, 2005.
1 A High-Performance Interactive Tool for Exploring Large Graphs John R. Gilbert University of California, Santa Barbara Aydin Buluc & Viral Shah (UCSB)
CS 206 Introduction to Computer Science II 03 / 25 / 2009 Instructor: Michael Eckmann.
Multigrid Eigensolvers for Image Segmentation Andrew Knyazev Supported by NSF DMS This presentation is at
Topic Overview One-to-All Broadcast and All-to-One Reduction
CS240A: Conjugate Gradients and the Model Problem.
Tools and Primitives for High Performance Graph Computation
CS240A: Computation on Graphs. Graphs and Sparse Matrices Sparse matrix is a representation.
Monica Garika Chandana Guduru. METHODS TO SOLVE LINEAR SYSTEMS Direct methods Gaussian elimination method LU method for factorization Simplex method of.
Domain decomposition in parallel computing Ashok Srinivasan Florida State University COT 5410 – Spring 2004.
1 High-Performance Graph Computation via Sparse Matrices John R. Gilbert University of California, Santa Barbara with Aydin Buluc, LBNL; Armando Fox, UCB;
Conjugate gradients, sparse matrix-vector multiplication, graphs, and meshes Thanks to Aydin Buluc, Umit Catalyurek, Alan Edelman, and Kathy Yelick for.
1 Challenges in Combinatorial Scientific Computing John R. Gilbert University of California, Santa Barbara Grand Challenges in Data-Intensive Discovery.
Complexity of direct methods n 1/2 n 1/3 2D3D Space (fill): O(n log n)O(n 4/3 ) Time (flops): O(n 3/2 )O(n 2 ) Time and space to solve any problem on any.
Computer Science 112 Fundamentals of Programming II Introduction to Graphs.
GRAPHS CSE, POSTECH. Chapter 16 covers the following topics Graph terminology: vertex, edge, adjacent, incident, degree, cycle, path, connected component,
Graph Algorithms. Definitions and Representation An undirected graph G is a pair (V,E), where V is a finite set of points called vertices and E is a finite.
CS 219: Sparse Matrix Algorithms
Data Structures & Algorithms Graphs
ITEC 2620A Introduction to Data Structures Instructor: Prof. Z. Yang Course Website: 2620a.htm Office: TEL 3049.
Interactive Supercomputing Update IDC HPC User’s Forum, September 2008.
CS240A: Conjugate Gradients and the Model Problem.
CS240A: Computation on Graphs. Graphs and Sparse Matrices Sparse matrix is a representation.
Case Study in Computational Science & Engineering - Lecture 5 1 Iterative Solution of Linear Systems Jacobi Method while not converged do { }
Graphs. Graphs Similar to the graphs you’ve known since the 5 th grade: line graphs, bar graphs, etc., but more general. Those mathematical graphs are.
Domain decomposition in parallel computing Ashok Srinivasan Florida State University.
Data Structures and Algorithms in Parallel Computing Lecture 7.
CS 290H Administrivia: May 14, 2008 Course project progress reports due next Wed 21 May. Reading in Saad (second edition): Sections
Graphs Chapter 12. Chapter 12: Graphs2 Chapter Objectives To become familiar with graph terminology and the different types of graphs To study a Graph.
GRAPHS. Graph Graph terminology: vertex, edge, adjacent, incident, degree, cycle, path, connected component, spanning tree Types of graphs: undirected,
Discrete Structures CISC 2315 FALL 2010 Graphs & Trees.
On Optimizing Collective Communication UT/Texas Advanced Computing Center UT/Computer Science Avi Purkayastha Ernie Chan, Marcel Heinrich Robert van de.
CS 290H 31 October and 2 November Support graph preconditioners Final projects: Read and present two related papers on a topic not covered in class Or,
CS 290H Lecture 15 GESP concluded Final presentations for survey projects next Tue and Thu 20-minute talk with at least 5 min for questions and discussion.
PARALLEL PROCESSING From Applications to Systems Gorana Bosic Veljko Milutinovic
Source: CSE 214 – Computer Science II Graphs.
1 Algebraic and combinatorial tools for optimal multilevel algorithms Yiannis Koutis Carnegie Mellon University.
Graph Representations And Traversals. Graphs Graph : – Set of Vertices (Nodes) – Set of Edges connecting vertices (u, v) : edge connecting Origin: u Destination:
A Parallel Hierarchical Solver for the Poisson Equation Seung Lee Deparment of Mechanical Engineering
Symmetric-pattern multifrontal factorization T(A) G(A)
Main Index Contents 11 Main Index Contents Graph Categories Graph Categories Example of Digraph Example of Digraph Connectedness of Digraph Connectedness.
Computation on Graphs. Graphs and Sparse Matrices Sparse matrix is a representation of.
Conjugate gradient iteration One matrix-vector multiplication per iteration Two vector dot products per iteration Four n-vectors of working storage x 0.
Laplacian Matrices of Graphs: Algorithms and Applications ICML, June 21, 2016 Daniel A. Spielman.
High Performance Computing Seminar II Parallel mesh partitioning with ParMETIS Parallel iterative solvers with Hypre M.Sc. Caroline Mendonça Costa.
Laplacian Matrices of Graphs: Algorithms and Applications ICML, June 21, 2016 Daniel A. Spielman.
Graphs Representation, BFS, DFS
Model Problem: Solving Poisson’s equation for temperature
CS 290N / 219: Sparse Matrix Algorithms
CS 290H Administrivia: April 16, 2008
Graph Algorithm.
Graphs Representation, BFS, DFS
Carlos Ordonez, Predrag T. Tosic
ITEC 2620M Introduction to Data Structures
Presentation transcript:

An Interactive Environment for Combinatorial Scientific Computing Viral B. Shah John R. Gilbert Steve Reinhardt With thanks to: Brad McRae, Stefan Karpinski, Vikram Aggarwal, Min Roh

HPC today is exciting !

Complex software stack Distributed Sparse Matrices Arithmetic, matrix multiplication, indexing, solvers (\, eigs) Graph Analysis & PD Toolbox Graph querying & manipulation, connectivity, spanning trees, geometric partitioning, nested dissection, NNMF,... Preconditioned Iterative Methods CG, BiCGStab, etc. + combinatorial preconditioners (AMG, Vaidya) Applications Computational ecology, CFD, data exploration

Star-P A = rand(4000*p, 4000*p); x = randn(4000*p, 1); y = zeros(size(x)); while norm(x-y) / norm(x) > 1e-11 y = x; x = A*x; x = x / norm(x); end;

Star-P architecture

Parallel sorting Simple, widely used combinatorial primitive [V, perm] = sort (V) Used in many sparse matrix and array algorithms: sparse(), indexing, concatenation, transpose, reshape, repmat etc. Communication efficient

Sorting performance

P0P0 P1P1 P2P2 PnPn Each processor stores: # of local nonzeros (# local edges) range of local rows (local vertices) nonzeros in a compressed row data structure (local edges) Distributed sparse arrays

Sparse matrix operations dsparse layout, same semantics as ddense Matrix arithmetic: +, max, sum, etc. matrix * matrix and matrix * vector Matrix indexing and concatenation A (1:3, [4 5 2]) = [ B(:, J) C ] ; Linear solvers: x = A \ b; using MUMPS/SuperLU (MPI) Eigensolvers: [V, D] = eigs(A); using PARPACK (MPI)

Sparse matrix multiplication B = x C A for j = 1:n C(:, j) = A * B(:, j) SPA gather scatter/ accumulate All matrix columns and vectors are stored compressed except the SPA. See A. Buluc (MS42, Fri 10am)

Interactive data exploration A graph plotted with relaxed Fiedler co-ordinates

A 2-D density spy plot Density spy plot of an R-MAT power law graph

Breadth-first search: sparse matvec ATAT (A T ) 2 x   xATxATx Multiply by adjacency matrix  step to neighbor vertices Work-efficient implementation from sparse data structures

Maximal independent set degree = sum(G, 2); prob = 1./ (2 * deg); select = rand (n, 1) < prob; if ~isempty (select & (G * select); % keep higher degree vertices end IndepSet = [IndepSet select]; neighbor = neighbor | (G * select); remain = neighbor == 0; G = G(remain, remain); Luby’s algorithm

Many tight clusters, loosely interconnected Vertices and edges permuted randomly A graph clustering benchmark Fine-grained, irregular data access

Clustering by BFS % Grow each seed to vertices % reached by at least k % paths of length 1 or 2 C = sparse(seeds, 1:ns, 1, n, ns); C = A * C; C = C + A * C; C = C >= k; Grow local clusters from many seeds in parallel Breadth-first search by sparse matrix * matrix Cluster vertices connected by many short paths

[ignore, leader] = max(G); S = sparse(leader,1:n,1,n,n) * G; [ignore, leader] = max(S); Each vertex votes for its highest numbered neighbor as its leader Number of leaders is roughly the same as number of clusters Matrix multiplication gathers neighbor votes S(i,j) is the number of votes for i from j’s neighbors Clustering by peer pressure

Scaling up Graph with 2 million nodes, 321 million directed edges, 89 million undirected edges, 32 thousand cliques Good scaling observed from 8 to 120 processors of an SGI Altix

Graph Laplacian Graph of Poisson’s Equation on a 2D grid G = grid5 (10);

Spanning trees Maximum weight spanning tree T = mst (G, ‘max’);

A combinatorial preconditioner V. Aggarwal Augmented Vaidya’s preconditioner V = vaidya_support (G);

Quadtree meshes and AMG V. Aggarwal and M. Roh

Wireless traffic modeling S. Karpinski Non-negative matrix factorizations (NNMF) for wireless traffic modeling NNMF algorithms combine linear algebra and optimization methods Basic and “improved” NMF factorization algorithms implemented: –euclidean (Lee & Seung 2000) –K-L divergence (Lee & Seung 2000) –semi-nonnegative (Ding et al. 2006) –left/right-orthogonal (Ding et al. 2006) –bi-orthogonal tri-factorization (Ding et al. 2006) –sparse euclidean (Hoyer et al. 2002) –sparse divergence (Liu et al. 2003) –non-smooth (Pascual-Montano et al. 2006)

A meta-algorithm spherical k-means ANLS K-L div. same as CDFs

Landscape Connectivity B. McRae Landscape connectivity governs the degree to which the landscape facilitates or impedes movement Need to model important processes like: –Gene flow (to avoid inbreeding) –Movement and mortality patterns Corridor identification, conservation planning

Pumas in southern California Joshua Tree National Park Los Angeles Palm Springs Habitat quality model

Model as a resistive network Habitat Nonhabitat Reserve

Processing landscapes Combinatorial methods Graph construction Graph contraction Connected components Numerical methods Linear systems Combinatorial preconditioners

Results Solution time reduced from 3 days to 5 minutes for typical problems Aiming for much larger problems: Yellowstone-to-Yukon (Y2Y)

Multi-layered software tools Distributed Sparse Matrices Arithmetic, matrix multiplication, indexing, solvers (\, eigs) Graph Analysis & PD Toolbox Graph querying & manipulation, connectivity, spanning trees, geometric partitioning, nested dissection, NNMF,... Preconditioned Iterative Methods CG, BiCGStab, etc. + combinatorial preconditioners (AMG, Vaidya) Applications Computational ecology, CFD, data exploration

Thanks for coming Thank You