View
19
Download
0
Category
Preview:
Citation preview
Low-rank Properties, Tree Structure, and Recursive Algorithms with Applications
Jingfang Huang
Department of Mathematics
UNC at Chapel Hill
Fundamentals of Fast Multipole (type) Method
Fundamentals: • Low rank? Low dimensional? Simple rules? …
• Process the “low rank/ low dimensional” or
“simple” data on the tree structure? • Recursive Implementations and parallelization
Example: (real parallel code) RECFMM
Joint work with Bo Zhang,
Xiaobai Sun, and Nikos Pitsianis
Open
source
code
available.
Cilk Plus
runtime
used.
Parallelizing Recursive Algorithms: Cilk Plus Runtime Scheduler
Existing results on parallelizing hierarchy tree structure based algorithms. E.g., Cilk plus runtime scheduler. (Joint work with B. Zhang, X. Sun, N. Pitsianis.) https://www.cilkplus.org/
Computational Software section in CiCP
1. Computational Software: Simple FMM Libraries for Electrostatics, Slow
Viscous Flow, and Frequency-Domain Wave Propagation, by Zydrunas Gimbutas and Leslie Greengard
2. Computational Software: PVFMM: A Parallel Kernel Independent FMM for
Particle and Volume Potentials, by
Dhairya Malhotra and George Biros Associate Editors: Prof. Benzhuo Lu (Chinese Academy of Sciences) and J. Huang.
L2 Low rank: Mathematical Analysis vs Numerical Approach
Matrix Analysis: PCA or SVD
A simple Matlab code
• clear all; clc; • m=400;n=400;x=rand(n); y=rand(m)+2; • for i=1:m, • for j=1:n, • A(i,j)=1/(y(i)-x(j)); • end • end • [U,S,V]=svd(A);
• format long e; • pca=diag(S); • pca(1:15)
And the results (numerical rank=9)
• 2.113086441965111e+02 • 5.114102631925020e+00 • 9.392747101949028e-02 • 1.790209461350161e-03 • 3.235709204090181e-05 • 6.168512015716861e-07 • 1.151573821662682e-08 • 1.982373081735641e-10 • 3.570020729013249e-12 • 1.596504915597923e-13 • 1.377179100162433e-13 • 1.206114412870406e-13
Taylor expansion:
Mathematical analysis: Low rank?
Note that
P=15 for single precision and p=30 for double precision.
Multipole coefficients: compressed data
Low Rank and Low Dimensional Representations
Separation of Variables: Low rank and low dimensional data
Question: Generalization?
Low Rank? Tree? Recursive Algorithm
Apply the fundamentals to model and algorithm design.
Today’s topic 1:
Recursive Tree Algorithms for Orthogonal Matrix
Generation and Matrix-Vector Multiplications in Rigid Body Dynamics Simulations
Background: Rigid body dynamics
Consider a molecular system modeled by rigid bodies, each rigid body consists of n “beads” Given the force on and location of each bead The resultant force (size 3) and torque (size 3)of the rigid body are given by
Matrix Language
Orthogonal Form
Problem Statement
Background: Brownian Dynamics with Hydrodynamic Interactions
The “bead model” 1. Molecular system is modeled by m rigid bodies, each with
given external forces and torques , j=1,…,m. 2. Each rigid body contains nj beads.
3. The bead-to-bead hydrodynamics interactions satisfy
where D is the Rotne-Prager-Yamakawa tensor (translation invariant Green’s function, particle method for the Stokes equation) Reference: JA McCammon and G Huber (UCSD)
Bead model in Brownian dynamics
For the given force field on each rigid body, the unknown rigid body velocity vectors satisfy: Or equivalently, Note: Need to solve this at each time marching step…
Numerical Difficulty
Numerical difficulty: calculation of Reminder: Question (1) (Alternative approaches: Schur complement)
Reformulation
Next Generation Brownian Dynamics Solver
We already have 1. Fast multipole method for evaluating 2. Fast direct solver based preconditioner for each rigid
body (Codes from Jianlin Xia, et. al. )
Building blocks needed: stable and efficient algorithms for evaluating A nice project for undergrad students (Fuhui Fang, UNC)
So the problems:
Divide-and-conquer: Recursive Algorithms on the Tree Structure
Consider the divide-and-conquer strategy Observations: and
Divide-and-conquer: Recursive Algorithms on the Tree Structure
Algorithm Complexity and Storage
How to go from “Tree code” to FMM?
An upward pass: Algorithm for computing Qv Info-set = multipole coefficients
Multiple->Multipole: Parent P and Children X and Y, then,
Translation Operator: Inertia Matrix
Parent’s inertia matrix and Children’s inertia matrices then,
Residue Vectors
We want to compute without explicit forming
How to compute residue vector? Then,
Computing R from inertia matrix
R is readily available from the inertia matrix
Recursive Algorithm
Downward Pass: Algorithm for QT v
Local Expansions?
Recursive Algorithm
A downward pass
Pseudo-code
Numerical Results
Storage
Implicit Q v CPU time
Details: backward stable algorithm?
How to make sure || QT Q v – v || is small? In progress…
Summary of Topic 1:
Use the fundamentals
Low rank (comes from rigid body assumption) Tree structure Recursive implementation.
Efficient algorithms can be developed.
Topic 2:
Half-space impedance Green’s function for the Helmholtz equation
Layered media Green’s function
“On the efficient representation of the half-space impedance Green's function for the Helmholtz equation”, by Michael O'Neil, Leslie Greengard, Andras Pataki
How to evaluate the convolution?
• Integral equation formulation
where is the Green’s function for the half-space with homogeneous impedance boundary conditions, and the resulting Fredholm 2nd kind integral equation become
Method of images
Using the free space Green’s function
Modified fast multipole method
Multipole-to-multipole: same as free space FMM, as if the images do NOT exist.
Multipole-to-local: modified translation which include all the image contributions.
Local-to-local: No change!
Error analysis: Low rank? Note that source images are always well-separated from the target box. M2L Translation operator: analytical formula is possible. Either precomputed, or by designing special functions.
Generalization to multiple layers?
Can we develop the corresponding approximation theory for general multi-layer Green’s function in the form of Sommerfeld integral representation? Answer: Yes! Approximation using special basis, current research.
Summary
(Maybe it is a good idea to) consider recursively (hierarchically) on the tree structure when designing models and algorithms Mathematical analysis may help us to find the special matrix structures.
Thanks!
Recommended