Chapter 13 Finite Difference Methods: Outline Solving ordinary and partial differential equations Finite difference methods (FDM) vs Finite Element Methods.

Slides:



Advertisements
Similar presentations
A Discrete Adjoint-Based Approach for Optimization Problems on 3D Unstructured Meshes Dimitri J. Mavriplis Department of Mechanical Engineering University.
Advertisements

Chapter 8 Elliptic Equation.
Parabolic Partial Differential Equations
CS 484. Dense Matrix Algorithms There are two types of Matrices Dense (Full) Sparse We will consider matrices that are Dense Square.
Parallelizing stencil computations Based on slides from David Culler, Jim Demmel, Bob Lucas, Horst Simon, Kathy Yelick, et al., UCB CS267.
Application: TSD-MPI Calculation of Thermal Stress Distribution By Using MPI on EumedGrid Abdallah ISSA Mazen TOUMEH Higher Institute for Applied Sciences.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Numerical Algorithms Matrix multiplication
Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Chapter 3 Steady-State Conduction Multiple Dimensions
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Part Eight Partial Differential Equations.
CISC October Goals for today: Foster’s parallel algorithm design –Partitioning –Task dependency graph Granularity Concurrency Collective communication.
CS 584. Review n Systems of equations and finite element methods are related.
ECE669 L4: Parallel Applications February 10, 2004 ECE 669 Parallel Computer Architecture Lecture 4 Parallel Applications.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
ECE669 L5: Grid Computations February 12, 2004 ECE 669 Parallel Computer Architecture Lecture 5 Grid Computations.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming with MPI and OpenMP Michael J. Quinn.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Chapter 8 Matrix-vector Multiplication.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Landscape Erosion Kirsten Meeker
Lecture 5 Today’s Topics and Learning Objectives Quinn Chapter 7 Predict performance of parallel programs Understand barriers to higher performance.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Design of parallel algorithms Matrix operations J. Porras.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Monica Garika Chandana Guduru. METHODS TO SOLVE LINEAR SYSTEMS Direct methods Gaussian elimination method LU method for factorization Simplex method of.
Partial differential equations Function depends on two or more independent variables This is a very simple one - there are many more complicated ones.
Numerical Methods for Partial Differential Equations
Today Objectives Chapter 6 of Quinn Creating 2-D arrays Thinking about “grain size” Introducing point-to-point communications Reading and printing 2-D.
CISE301: Numerical Methods Topic 9 Partial Differential Equations (PDEs) Lectures KFUPM (Term 101) Section 04 Read & CISE301_Topic9.
Numerical methods for PDEs PDEs are mathematical models for –Physical Phenomena Heat transfer Wave motion.
© 2011 Autodesk Freely licensed for use by educational institutions. Reuse and changes require a note indicating that content has been modified from the.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Hyperbolic PDEs Numerical Methods for PDEs Spring 2007 Jim E. Jones.
Lecture 8 – Stencil Pattern Stencil Pattern Parallel Computing CIS 410/510 Department of Computer and Information Science.
Chapter 3 Parallel Algorithm Design. Outline Task/channel model Task/channel model Algorithm design methodology Algorithm design methodology Case studies.
Scientific Computing Partial Differential Equations Poisson Equation.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
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.
1 EEE 431 Computational Methods in Electrodynamics Lecture 4 By Dr. Rasime Uyguroglu
Sept COMP60611 Fundamentals of Concurrency Lab Exercise 2 Notes Notes on the finite difference performance model example – for the lab… Graham Riley,
Linear Systems Iterative Solutions CSE 541 Roger Crawfis.
Parallel Simulation of Continuous Systems: A Brief Introduction
Lecture 9 TTH 03:30AM-04:45PM Dr. Jianjun Hu CSCE569 Parallel Computing University of South Carolina Department of.
Elliptic PDEs and the Finite Difference Method
Introduction to PDE classification Numerical Methods for PDEs Spring 2007 Jim E. Jones References: Partial Differential Equations of Applied Mathematics,
Parallel Programming in C with MPI and OpenMP Michael J. Quinn.
Lecture 4 TTH 03:30AM-04:45PM Dr. Jianjun Hu CSCE569 Parallel Computing University of South Carolina Department of.
CS 484 Designing Parallel Algorithms Designing a parallel algorithm is not easy. There is no recipe or magical ingredient Except creativity We can benefit.
Engineering Analysis – Computational Fluid Dynamics –
Outline Introduction Research Project Findings / Results
Partial Derivatives Example: Find If solution: Partial Derivatives Example: Find If solution: gradient grad(u) = gradient.
Solving Partial Differential Equation Numerically Pertemuan 13 Matakuliah: S0262-Analisis Numerik Tahun: 2010.
Department of Computer Science, Johns Hopkins University Lecture 7 Finding Concurrency EN /420 Instructor: Randal Burns 26 February 2014.
Xing Cai University of Oslo
High Altitude Low Opening?
Parallel Programming in C with MPI and OpenMP
Parallel Programming with MPI and OpenMP
PDEs and Examples of Phenomena Modeled
Partial Differential Equations
CSCE569 Parallel Computing
Finite Difference Method
CSCE569 Parallel Computing
Parallel Programming in C with MPI and OpenMP
CSCE569 Parallel Computing
CS6068 Applications: Numerical Methods
COMP60621 Designing for Parallelism
Jacobi Project Salvatore Orlando.
Comparison of CFEM and DG methods
Parallel Programming in C with MPI and OpenMP
Presentation transcript:

Chapter 13 Finite Difference Methods: Outline Solving ordinary and partial differential equations Finite difference methods (FDM) vs Finite Element Methods (FEM) Vibrating string problem Steady state heat distribution problem

PDEs and Examples of Phenomena Modeled Ordinary differential equation: equation containing derivatives of a function of one variable Partial differential equation: equation containing derivatives of a function of two or more variables Models: Air flow over an aircraft wing Blood circulation in human body Water circulation in an ocean Bridge deformations as its carries traffic Evolution of a thunderstorm Oscillations of a skyscraper hit by earthquake Strength of a toy Financial Markets

Model of Sea Surface Temperature in Atlantic Ocean Courtesy MICOM group at the Rosenstiel School of Marine and Atmospheric Science, University of Miami

Solving PDEs Finite element method Finite difference method (our focus) –Converts PDE into matrix equation Linear system over discrete basis elements –Result is usually a sparse matrix –Matrix-based algorithms represent matrices explicitly –Matrix-free algorithms represent matrix values implicitly (our focus)

Class of Linear Second-order PDEs Linear second-order PDEs are of the form where A - H are functions of x and y only Elliptic PDEs: B 2 - AC < 0 (steady state heat equations) Parabolic PDEs: B 2 - AC = 0 (heat transfer equations) Hyperbolic PDEs: B 2 - AC > 0 (wave equations)

Difference Quotients

Formulas for 1st, 2d Derivatives

Vibrating String Problem Vibrating string modeled by a hyperbolic PDE

Solution Stored in 2-D Array Each row represents state of string at some point in time Each column shows how position of string at a particular point changes with time

Discrete Space, Time Intervals Lead to 2-D Array

Heart of Sequential C Program u[j+1][i] = 2.0*(1.0-L)*u[j][i] + L*(u[j][i+1] + u[j][i-1]) - u[j-1][i];

Parallel Program Design Associate primitive task with each element of matrix Examine communication pattern Agglomerate tasks in same column Static number of identical tasks Regular communication pattern Strategy: agglomerate columns, assign one block of columns to each task

Result of Agglomeration and Mapping

Communication Still Needed Initial values (in lowest row) are computed without communication Values in black cells cannot be computed without access to values held by other tasks

Ghost Points Ghost points: memory locations used to store redundant copies of data held by neighboring processes Allocating ghost points as extra columns simplifies parallel algorithm by allowing same loop to update all cells

Matrices Augmented with Ghost Points Green cells are the ghost points.

Communication in an Iteration This iteration the process is responsible for computing the values of the yellow cells.

Computation in an Iteration This iteration the process is responsible for computing the values of the yellow cells. The striped cells are the ones accessed as the yellow cell values are computed.

Complexity Analysis Computation time per element is constant, so sequential time complexity per iteration is  (n) Elements divided evenly among processes, so parallel computational complexity per iteration is  (n / p) During each iteration a process with an interior block sends two messages and receives two messages, so communication complexity per iteration is  (1)

Isoefficiency Analysis Sequential time complexity:  (n) Parallel overhead:  (p) Isoefficiency relation: n  Cp To maintain the same level of efficiency, n must increase at the same rate as p If M(n) = n 2, algorithm has poor scalability If matrix of 3 rows rather than m rows is used, M(n) = n and system is perfectly scalable

Replicating Computations If only one value transmitted, communication time dominated by message latency We can reduce number of communications by replicating computations If we send two values instead of one, we can advance simulation two time steps before another communication

Replicating Computations Without replication: With replication:

Communication Time vs. Number of Ghost Points

Next Case: Steady State Heat Distribution Problem Steam Ice bath

Solving the Problem Underlying PDE is the Poisson equation This is an example of an elliptical PDE Will create a 2-D grid Each grid point represents value of state state solution at particular (x, y) location in plate

Heart of Sequential C Program w[i][j] = (u[i-1][j] + u[i+1][j] + u[i][j-1] + u[i][j+1]) / 4.0;

Parallel Algorithm 1 Associate primitive task with each matrix element Agglomerate tasks in contiguous rows (rowwise block striped decomposition) Add rows of ghost points above and below rectangular region controlled by process

Example Decomposition 16 × 16 grid divided among 4 processors

Complexity Analysis Sequential time complexity:  (n 2 ) each iteration Parallel computational complexity:  (n 2 / p) each iteration Parallel communication complexity:  (n) each iteration (two sends and two receives of n elements)

Isoefficiency Analysis Sequential time complexity:  (n 2 ) Parallel overhead:  (pn) Isoefficiency relation: n 2  Cnp  n  Cp This implementation has poor scalability

Parallel Algorithm 2 Associate primitive task with each matrix element Agglomerate tasks into blocks that are as square as possible (checkerboard block decomposition) Add rows of ghost points to all four sides of rectangular region controlled by process

Example Decomposition 16 × 16 grid divided among 16 processors

Implementation Details Using ghost points around 2-D blocks requires extra copying steps Ghost points for left and right sides are not in contiguous memory locations An auxiliary buffer must be used when receiving these ghost point values Similarly, buffer must be used when sending column of values to a neighboring process

Complexity Analysis Sequential time complexity:  (n 2 ) each iteration Parallel computational complexity:  (n 2 / p) each iteration Parallel communication complexity:  (n /  p ) each iteration (four sends and four receives of n /  p elements each)

Isoefficiency Analysis Sequential time complexity:  (n 2 ) Parallel overhead:  (n  p ) Isoefficiency relation: n 2  Cn  p  n  C  p This system is perfectly scalable

Summary (1/4) PDEs used to model behavior of a wide variety of physical systems Realistic problems yield PDEs too difficult to solve analytically, so scientists solve them numerically Two most common numerical techniques for solving PDEs –finite element method –finite difference method

Summary (2/4) Finite difference methods –Matrix-based methods store matrix explicitly –Matrix-free implementations store matrix implicitly We have designed and analyzed parallel algorithms based on matrix-free implementations

Summary (4/4) Ghost points store copies of values held by other processes Explored increasing number of ghost points and replicating computation in order to reduce number of message exchanges Optimal number of ghost points depends on characteristics of parallel system