290 likes | 301 Views
This study focuses on the use of Peano Space-Filling Curve for parallelisation of multi-resolution grids, including domain partitioning, tree representation, and traversal strategies.
E N D
A Parallelisation Approach for Multi-Resolution Grids Based Upon the Peano Space-Filling Curve Student: Adriana Bocoi Advisor: Dipl.-Inf.Tobias Weinzierl
Content • Domain discretisation • Trees [Computer representation] • Space-Filling Curves [Traversal] • Parallelisation Adriana Bocoi - Peano space filling curve
Solving Real Life Problems • Model the real life problem • Usually we end up with PDE (Partial Differential Equations) • Consider the domain • Discretise (grid) • Solve the discrete problem Adriana Bocoi - Peano space filling curve
Parallel computing is the division of one task into a set of subtasks assigned to multiple processors in order to obtain results faster or to reduce memory requirements per processor. Example: input:a={2,3,4}, b={5,6,1} result: c=a+b={7,9,5} Serial Parallel (3 processors) Parallelisation Adriana Bocoi - Peano space filling curve
Domain Partitioning Domain partitioning is the process of dividing a domain into two or more regions. Adriana Bocoi - Peano space filling curve
Domain Partitioning Which is better ? Adriana Bocoi - Peano space filling curve
Domain Partitioning We have (regarding partition quality):stripes < squareWhich is optimal ?Minimum length/maximum surface -> circlethus: stripes < square < circle Adriana Bocoi - Peano space filling curve
Domain Partitioning • Types of structured grids: • Regular grids • Adaptive grids Adriana Bocoi - Peano space filling curve
Pro’s and Con’s Adriana Bocoi - Peano space filling curve
Conclusion Grids If we can find a way to memorise and work with adaptive grids efficiently, they can help us to make more precise computations with less effort (memory and computation). Adriana Bocoi - Peano space filling curve
Content • Domain discretisation • Trees [Computer representation] • Space-Filling Curves [Traversal] • Parallelisation Adriana Bocoi - Peano space filling curve
Data structure - Trees ! Recursivity => Tree data structure Adriana Bocoi - Peano space filling curve
Data structure - Trees ! • Terms that we encounter: • Quadtrees(2D) bipartition • Octrees (3D) • Space Trees • Refinement trees – representation of the refinement process that created the grid [1] Adriana Bocoi - Peano space filling curve
How to read from that structure • We have two traversals: BFS DFS (Breadth First Search) (Depth First Search) Adriana Bocoi - Peano space filling curve
Ordering Deterministic algorithm (Where to go next ?) Adriana Bocoi - Peano space filling curve
Content • Domain discretisation • Trees [Computer representation] • Space-Filling Curves [Traversal] • Parallelisation Adriana Bocoi - Peano space filling curve
We need an unique ordering We have space filling curves to define the order of the children The Peano Space - Filling Curve Adriana Bocoi - Peano space filling curve
How does this actually help ? We obtain a traversal of the tree given by the Peano Space - Filling Curve. Adriana Bocoi - Peano space filling curve
What do we have till now ? • Adaptive grids • Methods to handle them on the computer • Data Structure: Tree Structure • Ordering: Peano Space-Filling Curve Adriana Bocoi - Peano space filling curve
Content • Domain discretisation • Trees [Computer representation] • Space-Filling Curves [Traversal] • Parallelisation Adriana Bocoi - Peano space filling curve
Remember the domain partitioning • Regular grid • Adaptive grid Adriana Bocoi - Peano space filling curve
Parallelisation What is wrong? • Regular grids – nothing • Adaptive grids - One processor has to do more work than the other three! [Load imbalance] Adriana Bocoi - Peano space filling curve
We want a well-balanced workload distribution! Load balancing is a technique to spread work between processors in order to get better resource utilisation and, thus, decrease computing time. Adriana Bocoi - Peano space filling curve
Partition strategy • split the grid <=> split the tree • One strategy [1]: • p processors • n nodes in the tree • we get approx. [n/p] nodes for each processor Adriana Bocoi - Peano space filling curve
How do we find it ? • Example: Adriana Bocoi - Peano space filling curve
How good is the partition ? • The papers in this field [2] tell us that actually domain partitioning using Peano Space-Filling Curves is besides a constant as good as an optimal partitioning (circle). rectangle < square < peano SFC < circle Adriana Bocoi - Peano space filling curve
Why Peano and not other SFC ? Because of the 3D projection propriety: Adriana Bocoi - Peano space filling curve
Conclusion Partitioned Domain + Trees as data structure + Peano space filling curve for ordering + Splitting strategy = Good parallelisation Adriana Bocoi - Peano space filling curve