Adaptive Mesh Applications: Sathish Vadhiyar
Adaptive Mesh Applications: Sathish Vadhiyar
Sathish Vadhiyar
Sources:
- Schloegel, Karypis, Kumar. Multilevel Diffusion Schemes for Repartitioning of
Adaptive Meshes. JPDC 1997 (Taken verbatim)
Adaptive Applications
Highly adaptive and irregular applications
Amount of work per task can vary drastically
throughout the execution similar to earlier
applications, but..
Has notions of interesting regions
Computations in the interesting regions of
the domain larger than for other regions
It is difficult to predict which regions will
become interesting
AMR Applications
An example of such applications is Parallel
Adaptive Mesh Refinement (AMR) for
multi-scale applications
Adaptive Mesh Mesh or grid size is not
fixed as in Laplace/Jacobi, but interesting
regions are refined to form finer level
grids/mesh
E.g.: to study crack growth through a
macroscopic structure under stress
Repartitioning
In adaptive meshes computation, areas
of the mesh are selectively refined or
derefined in order to accurately model
the dynamic computation
Hence, repartitioning and redistributing
the adapted mesh across processors is
necessary
Repartitioning
The challenge is to keep the
repartitioning cost to minimum limits
Similar problems to MD, GoL
The primary difference in AMR is that
loads can drastically change; cannot
predict; will have to wait for refinement,
then repartition
Repartitioning
2 methods for creating a new partitioning
from an already distributed mesh that has
become load imbalanced due to mesh
refinement and coarsening
Scratch-remap schemes create an
entirely new partition
Diffusive schemes attempt to tweak the
existing partition to achieve better load
balance, often minimizing migration costs
Scratch-map Method
Partitioning from scratch will result in
high vertex migration since as the
partitioning does not take the initial
location of the vertices into account
Hence a partitioning method should
incrementally construct a new partition
as simply a modification of the input
partition
Notations
Let B(q) be the set of vertices with
partition q
Weight of any partition q can be defined as:
Average partition weight:
A graph is imbalanced if it is partitioned,
and:
Terms
A partition is over-balanced if its weight
is greater than the average partition
weight times (1+ )
If less, under-balanced
The graph is balanced when no partition
is over-balanced
Repartitioning existing partition used
as an input to form a new partition
Terms
A vertex is clean if its current partition
is its initial partition; else dirty
Border vertex adjacent vertex in
another partition; those partitions are
neighbor partitions
TotalV sum of the sizes of the vertices
which change partitions; i.e., sum of the
sizes of the dirty vertices
3 Objectives
Maintain balance between partitions
Minimize edge cuts
Minimize TotalV
Different Schemes
Repartitioning from scratch
Cut-and-paste repartitioning: excess
vertices in an overbalanced partition
are simply swapped into one or more
underbalanced partitions in order to
bring these partitions up to balance
The method can optimize TOTALV, but
can have a negative effect on the edgecut
Different Schemes
Another method is analogous to diffusion
Concept is for vertices to move from
overbalanced to neighboring
underbalanced partitions
Example
Example (contd..)
SFC representation
One method is to define recursively
curve for a 2^k x 2^k grid composed of
four 2^(k-1) x 2^(k-1) curves
Another method is using bit interleaving
the position of a grid point along the curve
can be specified by interleaving bits of
the coordinates of the point
The interleaving function is a
characteristic of the curve
Graycode Curve
Uses same interleaving function as Zcurve
But visits points in the graycode order
Graycode two successive values differ
in only one bit
The one-bit gray code is (0,1)
Graycode Curve
The gray code list for n bits can be
generated recursively using n-1 bits
By reflecting the list (reversing the list)
[1,0]
Concatenating original with the reflected
[0,1,1,0]
Prefixing entries in the original list with 0,
and prefixing entries in the reflected list
with 1 [00,01,11,10]
Graycode Curve
3-bit gray code:
000,001,011,010,110,111,101,100
Hilbert Curve
Hilbert curve is a smooth curve
that avoids the sudden jumps in Zcurve and graycode curve
Curve composed of four curves of
previous resolution in four
quadrants
Curve in the lower left quadrant
rotated clockwise by 90 degree,
and curve in lower right quadrant
rotated anticlockwise by 90 degree