SlideShare a Scribd company logo
Delineating Sea-Level Rise
Inundation: An Exploration of
Data Structures and
Performance Optimization
CJ Grady
Thesis defense
May 10, 2017
Outline
 Introduction
 Sea level rise inundation delineation and inundation height
 Data structures for inundation height calculation
 Parallelizing inundation height calculation
 Conclusions
Introduction
 An estimated 25% of people live within 100 km and at
elevations less than 100 m
 As sea level continues to rise, it is critical to know which areas
might be inundated in order to predict and mitigate
economic and environmental impacts
 First we present an approach for calculating inundation height
that accounts for barriers based on Dijkstra’s algorithm
 Data structures
 Next we developed a parallel method for calculating
inundation height that can be deployed on supercomputing
resources
Sea Level Rise Inundation--Bathtub
Method
 Any cell with a lower elevation than a specified sea level rise is
inundated
 Pros:
 Simple computation
 Cons:
 Specific sea level rise
 Does not account for water connectivity
Inundation Height
 Uses Dijkstra’s algorithm to calculate minimum inundation
height for every cell
 Pros:
 Accounts for water connectivity
 Inundation height for every cell
 Cons:
 Computationally expensive
Calculating Inundation Height Using
Dijkstra’s Algorithm
 Inundation height is not simply elevation
 Barriers can prevent water propagation
 We used Dijkstra’s algorithm to determine the minimum sea
level rise required to inundate
 We then explored the priority queue data structure used in
the algorithm
Dijkstra’s Algorithm for inundation height
 Maintains a set of connected nodes (propagation front) in a
priority queue data structure
 Selects the connected node with the least height and removes
it from the set
 Adds the nodes connected to this newly visited node to the
connected nodes set
 Updates heights as necessary
 Repeats until the connected nodes set is empty
North Carolina DEM
𝑒𝑟𝑟𝑜𝑟 % =
𝐵𝑎𝑡ℎ𝑡𝑢𝑏 𝐼𝑛𝑢𝑛𝑑𝑎𝑡𝑖𝑜𝑛 − 𝑂𝑢𝑟 𝐼𝑛𝑢𝑛𝑑𝑎𝑡𝑖𝑜𝑛
𝑂𝑢𝑟 𝐼𝑛𝑢𝑛𝑑𝑎𝑡𝑖𝑜𝑛
Bathtub vs Method Considering Water
Connectivity
Addressing Performance With Data
Structures
 Dijkstra’s algorithm relies on a priority queue
 First implementation used a binary heap
 Fibonacci heap provides better asymptotic performance for
multiple operations
Binary Heap vs Fibonacci Heap
Operation Binary Heap Fibonacci Heap
Push Θ(log n) Θ(1)
Pop Θ(log n) * O(log n)
Reduce Key Θ(log n) Θ(1)
Find Minimum Θ(1) Θ(1)
* - Amortized cost
Binary Heap vs Fibonacci Heap
 In theory, Fibonacci Heap has better performance
 The main advantage of Fibonacci Heap is the reduce key
method
 Reduce key is not used for inundation height
 The constant associated with the pop operation is greater for
Fibonacci Heaps
 This causes Fibonacci Heap to be slower (10x in this case)
Parallelizing Inundation Height
Calculations
 The performance of our first method does not scale
 We developed a parallel approach for Dijkstra calculations
 Master / worker paradigm
 Deployed on XSEDE resources
Literature Review
 Other cost distance algorithms
 Bellman-Ford, A*
 Parallel versions of Dijkstra’s algorithm
 Parallelization of heap
 Parallelization of edge processing
 Parallel computations
 MrGeo
NGDC CRM Dataset
Florida Volume
Single Tile
Three Concepts
 Region decomposition
 Calculate-and-correct
 Parallel computations
Region Decomposition
Calculate-and-correct
 Computations are run with the information available
 As computations complete for a tile, the edges are exported
to adjacent tiles to be used as inputs
 Computations continue until no changes are made
Calculate-and-correct Initial Profile
Calculate-and-correct Inundation From
Left
Calculate-and-correct Corrected
A Complete Example
3 5 3 2 1
2 2 3 4 4
2 1 9 9 7
0 1 8 3 3
1 3 7 3 3
1 4 6 4 3
1 3 5 2 2
1 1 6 2 2
1 1 1 8 9
0 1 1 2 2
1 0 1 2 2
5 4 1 2 3
9 8 5 5 4
2 7 4 6 4
2 9 8 7 5
3 2 8 4 4
2 2 2 2 3
2 9 2 2 3
8 6 1 1 1
1 1 1 1 1
Edge Vector Export
3 5 3 2 1
2 2 3 4 4
2 1 9 9 7
0 1 8 3 3
1 3 7 3 3
1 4 6 4 3
1 3 5 2 2
1 1 6 2 2
1 1 1 8 9
0 1 1 2 2
1 0 1 2 2
5 4 1 2 3
9 8 5 5 4
2 7 4 6 4
2 9 8 7 5
3 2 8 4 4
2 2 2 2 3
2 9 2 2 3
8 6 1 1 1
1 1 1 1 1
Running:
• Top left
• Top right
• Bottom left
• Bottom right
-/3 -/5 -/3 -/2 -/1
-/2 -/2 -/3 -/4 -/4
-/2 1/1 -/9 -/9 -/7
0/0 1/1 -/8 -/3 -/3
1/1 -/3 -/7 -/3 -/3
-/1 -/4 -/6 -/4 -/3
-/1 -/3 -/5 -/2 -/2
-/1 -/1 -/6 -/2 -/2
1/1 1/1 -/1 -/8 -/9
0/0 1/1 -/1 -/2 -/2
1/1 0/0 1/1 -/2 -/2
-/5 -/4 1/1 -/2 -/3
-/9 -/8 -/5 -/5 -/4
-/2 -/7 -/4 -/6 -/4
-/2 -/9 -/8 -/7 -/5
-/3 -/2 -/8 -/4 -/4
-/2 -/2 -/2 -/2 -/3
-/2 -/9 -/2 -/2 -/3
-/8 -/6 -/1 -/1 -/1
-/1 -/1 -/1 -/1 -/1
Running:
• Top left
• Top right
• Bottom left
Idle:
• Bottom right
3/3 5/5 3/3 3/2 3/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 7/3 7/3
1/1 3/3 7/7 7/3 7/3
1/1 4/4 6/6 5/4 5/3
1/1 3/3 5/5 5/2 5/2
1/1 1/1 6/6 5/2 5/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
8/2 8/7 5/4 6/6 4/4
8/2 9/9 8/8 7/7 5/5
-/3 -/2 -/8 -/4 -/4
-/2 -/2 -/2 -/2 -/3
-/2 -/9 -/2 -/2 -/3
-/8 -/6 -/1 -/1 -/1
-/1 -/1 -/1 -/1 -/1
Running:
• Top left
• Top right
Waiting:
• Top left
• From BL
Idle:
• Bottom left
Submitted:
• Bottom right
• From BL
3/3 5/5 3/3 3/2 3/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 7/3 7/3
1/1 3/3 7/7 7/3 7/3
1/1 4/4 6/6 5/4 5/3
1/1 3/3 5/5 5/2 5/2
1/1 1/1 6/6 5/2 5/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
8/2 8/7 5/4 6/6 4/4
8/2 9/9 8/8 7/7 5/5
-/3 -/2 -/8 -/4 -/4
-/2 -/2 -/2 -/2 -/3
-/2 -/9 -/2 -/2 -/3
-/8 -/6 -/1 -/1 -/1
2/1 2/1 -/1 -/1 -/1
Running:
• Top left
• Bottom right
Waiting:
• Top left
• From BL
• From TR
• Bottom right
• From TR
Idle:
• Bottom left
• Top right
5/3
5/2
5/2
9/9
2/2
3/3 5/5 3/3 3/2 3/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 7/3 7/3
1/1 3/3 7/7 7/3 7/3
1/1 4/4 6/6 5/4 5/3
1/1 3/3 5/5 5/2 5/2
1/1 1/1 6/6 5/2 5/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
8/2 8/7 5/4 6/6 4/4
8/2 9/9 8/8 7/7 5/5
-/3 -/2 -/8 -/4 -/4
-/2 -/2 -/2 -/2 -/3
-/2 -/9 -/2 -/2 -/3
-/8 -/6 -/1 -/1 -/1
2/1 2/1 2/1 2/1 -/1
Running:
• Bottom right
Waiting:
• Bottom right
• From TR
Submitted:
• Top left
• From BL
• From TR
• Top right
• From TL
• Bottom left
• From TL
5/3
5/2
5/2
9/9
2/2
3/3 5/5 3/3 3/2 3/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 7/3 7/3
1/1 3/3 7/7 7/3 7/3
1/1 4/4 6/6 5/4 5/3
1/1 3/3 5/5 5/2 5/2
1/1 1/1 6/6 5/2 5/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
8/2 8/7 5/4 6/6 4/4
8/2 9/9 8/8 7/7 5/5
-/3 -/2 -/8 -/4 -/4
-/2 -/2 -/2 -/2 -/3
-/2 -/9 -/2 -/2 -/3
-/8 -/6 2/1 2/1 -/1
2/1 2/1 2/1 2/1 2/1
Running:
• Bottom right
• Top left
• Top right
Idle:
• Bottom left
Waiting:
• Bottom right
• From TR
5/3
5/2
5/2
9/9
2/2
1/1
5/5
9/9
8/2
8/2
1/1 3/3 7/7 7/3 7/3
1/1 4/4 6/6 5/4 5/3
3/1
4/4
7/7
7/3
7/3
3/3 5/5 3/3 2/2 1/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 7/3 7/3
1/1 3/3 7/7 5/3 7/3
1/1 4/4 6/6 5/4 5/3
1/1 3/3 5/5 5/2 5/2
1/1 1/1 6/6 5/2 5/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
7/2 7/7 5/4 6/6 4/4
7/2 9/9 8/8 7/7 5/5
-/3 -/2 -/8 -/4 -/4
-/2 -/2 -/2 -/2 -/3
-/2 -/9 2/2 2/2 -/3
-/8 -/6 2/1 2/1 2/1
2/1 2/1 2/1 2/1 2/1
Running:
• Bottom right
• Top left
Idle:
• Bottom left
• Top right
Waiting:
• Bottom right
• From TR
5/3
5/2
5/2
9/9
2/2
1/1
5/5
9/9
8/2
8/2
1/1 4/4 6/6 5/4 5/3
3/1
4/4
7/7
7/3
7/3
3/3 5/5 3/3 2/2 1/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 5/3 5/3
1/1 3/3 7/7 5/3 5/3
1/1 4/4 6/6 5/4 5/3
1/1 3/3 5/5 5/2 5/2
1/1 1/1 6/6 5/2 5/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
7/2 7/7 5/4 6/6 4/4
7/2 9/9 8/8 7/7 5/5
-/3 -/2 -/8 -/4 -/4
-/2 2/2 2/2 2/2 -/3
-/2 -/9 2/2 2/2 -/3
-/8 -/6 2/1 2/1 2/1
2/1 2/1 2/1 2/1 2/1
Running:
• Bottom right
Idle:
• Bottom left
• Top left
Waiting:
• Bottom right
• From TR
Submitted:
• Top right
• From TL
5/3
5/2
5/2
9/9
2/2
1/1
5/5
9/9
5/2
5/2
1/1 4/4 6/6 5/4 5/3
3/3 5/5 3/3 2/2 1/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 5/3 5/3
1/1 3/3 7/7 5/3 5/3
1/1 4/4 6/6 5/4 5/3
1/1 3/3 5/5 5/2 5/2
1/1 1/1 6/6 5/2 5/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
5/2 7/7 5/4 6/6 4/4
5/2 9/9 8/8 7/7 5/5
-/3 2/2 -/8 -/4 -/4
2/2 2/2 2/2 2/2 -/3
2/2 -/9 2/2 2/2 -/3
-/8 -/6 2/1 2/1 2/1
2/1 2/1 2/1 2/1 2/1
Running:
• Bottom right
Idle:
• Bottom left
• Top left
• Top right
Waiting:
• Bottom right
• From TR
5/3
2/2
2/2
9/9
2/2
1/1
4/4
7/7
5/3
5/3
3/3 5/5 3/3 2/2 1/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 5/3 5/3
1/1 3/3 7/7 5/3 5/3
1/1 4/4 6/6 5/4 5/3
1/1 3/3 5/5 5/2 5/2
1/1 1/1 6/6 5/2 5/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
5/2 7/7 5/4 6/6 4/4
5/2 9/9 8/8 7/7 5/5
3/3 2/2 8/8 4/4 4/4
2/2 2/2 2/2 2/2 3/3
2/2 9/9 2/2 2/2 3/3
8/8 6/6 2/1 2/1 2/1
2/1 2/1 2/1 2/1 2/1
Idle:
• Top left
Submitted:
• Top right
• From BR
• Bottom left
• From BR
• Bottom right
• From TR
3/3
2/2
2/2
9/9
2/2
3/3 5/5 3/3 2/2 1/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 5/3 5/3
1/1 3/3 7/7 5/3 5/3
1/1 4/4 6/6 5/4 5/3
1/1 3/3 5/5 5/2 5/2
1/1 1/1 6/6 5/2 5/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
5/2 7/7 5/4 6/6 4/4
5/2 9/9 8/8 7/7 5/5
3/3 2/2 8/8 4/4 4/4
2/2 2/2 2/2 2/2 3/3
2/2 9/9 2/2 2/2 3/3
8/8 6/6 2/1 2/1 2/1
2/1 2/1 2/1 2/1 2/1
Running:
• Top right
• Bottom left
Idle:
• Top left
• Bottom right
3/3 2/2 8/8 4/4 4/4
5/2 9/9 8/8 7/7 5/5
3/3
2/2
2/2
8/8
2/1
3/3 5/5 3/3 2/2 1/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 5/3 5/3
1/1 3/3 7/7 5/3 5/3
1/1 4/4 6/6 5/4 5/3
1/1 3/3 5/5 5/2 2/2
1/1 1/1 6/6 5/2 2/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
3/2 7/7 5/4 6/6 4/4
3/2 9/9 8/8 7/7 5/5
3/3 2/2 8/8 4/4 4/4
2/2 2/2 2/2 2/2 3/3
2/2 9/9 2/2 2/2 3/3
8/8 6/6 2/1 2/1 2/1
2/1 2/1 2/1 2/1 2/1
Running:
• Bottom left
Idle:
• Bottom right
• Top right
Submitted:
• Top left
• From TR
3/3 2/2 8/8 4/4 4/4
3/3
2/2
2/2
8/8
2/1
3/3 5/5 3/3 2/2 1/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 3/3 3/3
1/1 3/3 7/7 5/3 3/3
1/1 4/4 6/6 4/4 3/3
1/1 3/3 5/5 2/2 2/2
1/1 1/1 6/6 2/2 2/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
3/2 7/7 5/4 6/6 4/4
3/2 9/9 8/8 7/7 5/5
3/3 2/2 8/8 4/4 4/4
2/2 2/2 2/2 2/2 3/3
2/2 9/9 2/2 2/2 3/3
8/8 6/6 2/1 2/1 2/1
2/1 2/1 2/1 2/1 2/1
Running:
• Top left
Idle:
• Bottom right
• Top right
• Bottom left
Waiting:
• Top left
• From BL
3/3
2/2
2/2
8/8
2/1
1/1
5/5
9/9
3/2
3/2
3/3 5/5 3/3 2/2 1/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 3/3 3/3
1/1 3/3 7/7 3/3 3/3
1/1 4/4 6/6 4/4 3/3
1/1 3/3 5/5 2/2 2/2
1/1 1/1 6/6 2/2 2/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
3/2 7/7 5/4 6/6 4/4
3/2 9/9 8/8 7/7 5/5
3/3 2/2 8/8 4/4 4/4
2/2 2/2 2/2 2/2 3/3
2/2 9/9 2/2 2/2 3/3
8/8 6/6 2/1 2/1 2/1
2/1 2/1 2/1 2/1 2/1
Idle:
• Bottom right
• Top right
Submitted:
• Top left
• From BL
• Bottom left
• From TL
1/1
5/5
9/9
3/2
3/2
3/3 5/5 3/3 2/2 1/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 3/3 3/3
1/1 3/3 7/7 3/3 3/3
1/1 4/4 6/6 4/4 3/3
1/1 3/3 5/5 2/2 2/2
1/1 1/1 6/6 2/2 2/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
3/2 7/7 5/4 6/6 4/4
3/2 9/9 8/8 7/7 5/5
3/3 2/2 8/8 4/4 4/4
2/2 2/2 2/2 2/2 3/3
2/2 9/9 2/2 2/2 3/3
8/8 6/6 2/1 2/1 2/1
2/1 2/1 2/1 2/1 2/1
Running:
• Top left
Idle:
• Bottom right
• Top right
• Bottom left
1/1 3/3 7/7 3/3 3/3
1/1 4/4 6/6 4/4 3/3
3/3 5/5 3/3 2/2 1/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 3/3 3/3
1/1 3/3 7/7 3/3 3/3
1/1 4/4 6/6 4/4 3/3
1/1 3/3 5/5 2/2 2/2
1/1 1/1 6/6 2/2 2/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
3/2 7/7 5/4 6/6 4/4
3/2 9/9 8/8 7/7 5/5
3/3 2/2 8/8 4/4 4/4
2/2 2/2 2/2 2/2 3/3
2/2 9/9 2/2 2/2 3/3
8/8 6/6 2/1 2/1 2/1
2/1 2/1 2/1 2/1 2/1
Idle:
• Bottom right
• Top right
• Bottom left
• Top left
1/1 4/4 6/6 4/4 3/3
3/3 5/5 3/3 2/2 1/1
2/2 2/2 3/3 4/4 4/4
2/2 1/1 9/9 9/9 7/7
0/0 1/1 8/8 3/3 3/3
1/1 3/3 7/7 3/3 3/3
1/1 4/4 6/6 4/4 3/3
1/1 3/3 5/5 2/2 2/2
1/1 1/1 6/6 2/2 2/2
1/1 1/1 1/1 8/8 9/9
0/0 1/1 1/1 2/2 2/2
1/1 0/0 1/1 2/2 2/2
5/5 4/4 1/1 2/2 3/3
9/9 8/8 5/5 5/5 4/4
3/2 7/7 5/4 6/6 4/4
3/2 9/9 8/8 7/7 5/5
3/3 2/2 8/8 4/4 4/4
2/2 2/2 2/2 2/2 3/3
2/2 9/9 2/2 2/2 3/3
8/8 6/6 2/1 2/1 2/1
2/1 2/1 2/1 2/1 2/1
Expand / Contract Edge Vectors
Parallelism
 Master / worker
 Master submits computations
 Workers run computations on tiles and report back
 Updated inundation height tiles
 Edge vectors
Master / Worker
Master Process
(Work Queue)
Worker Worker Worker Worker…
Master / Worker
 Uses Work Queue from Notre Dame
 Roughly one worker per core
 Can be deployed on:
 One machine
 A cluster
 Across heterogeneous resources
Parallelism
 Continuous flow of computations rather than map reduce
style
 Eliminates some resource starvation
 Locks tiles to prevent race conditions
 Master limits tasks to one per tile
Experiments
 Single layer for the NGDC dataset
 Parallelization on single machine with 1, 2, 4, 8, 12 cores and
with half degree, one degree, and two degree tile sizes
 Parallelization on XSEDE Stampede with 32, 64, 128 cores and
with half degree, one degree, and two degree tile sizes
 West coast and entire NGDC dataset
Experiments—Single Layer for the NGDC
dataset
 Merged all of the NGDC dataset
 Computations did not fit into memory
 Had to cut down data size (West Coast) to run serially
West Coast Experiment
0
1000
2000
3000
4000
5000
6000
1-0.5 1-1.0 1-2.0 2-0.5 2-1.0 2-2.0 4-0.5 4-1.0 4-2.0 8-0.5 8-1.0 8-2.0 12-0.5 12-1.0 12-2.0
RunningTime(s)
Number of Workers - Tile Size (dd)
Serial Method
West Coast Experiment Running Times
West Coast Experiment Data
Entire NGDC Dataset Experiment
 Could not run serial version on available hardware
 Ran on single machine with 1, 2, 4, 8, 12 cores
 Ran on Stampede with 32, 64, 128 cores
 Ran with half degree, one degree, and two degree tile sizes
Stampede
 XSEDE (Extreme Science and Engineering Discovery
Environment) resource
 Housed at Texas Advanced Computing Center
 2+ petaFLOPs for main cluster
 6400 Compute Nodes
 Lustre file system (parallel file storage)
 Decommission began in January 2017
Stampede Deployment
M W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
W W
…
Lustre
Parallel File
Storage
1 2 4 8 12 31 63 127
Half Degree 13499 6828 3461 2290 2280 861 556 1486
One Degree 13077 6675 3402 2324 2259 905 1573 1455
Two Degree 13575 6944 3509 2474 2397 964 626 510
0
2000
4000
6000
8000
10000
12000
14000
16000
RunningTime(seconds)
Number of Workers
Half Degree One Degree Two Degree
Experiment Results
Conclusions
 Dijkstra’s algorithm allows us to calculate inundation height
from DEM
 Heap data structures significantly improve the efficiency
 Parallel implementation addresses scale up Dijkstra’s
algorithm
 Running time
 Memory footprint
 Parallelization can be applied to supercomputing resources
Future Work
 Overcome new bottlenecks in parallelization method
 Other resource may be more appropriate (such as TACC’s Wrangler)
 New framework for parallelization spatially dependent
calculations

More Related Content

Similar to Delineating sea level rise inundation

Blind Flange dimensions by Sandco Metal Industries
Blind Flange dimensions by Sandco Metal IndustriesBlind Flange dimensions by Sandco Metal Industries
Blind Flange dimensions by Sandco Metal Industries
Sunil Jain
 
Engg Ref Book
Engg Ref BookEngg Ref Book
Engg Ref Book
taskeen143
 
Pre-calculated damage.pdf
Pre-calculated damage.pdfPre-calculated damage.pdf
Pre-calculated damage.pdf
internetcustomer
 
Executive PAD. Residential Project.3
Executive PAD. Residential Project.3Executive PAD. Residential Project.3
Executive PAD. Residential Project.3Rudy De Los Reyes
 
Norm smith
Norm smithNorm smith
Norm smithNASAPMC
 
センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本
Takeshi Mikami
 
Data Analysis Assignment Help
Data Analysis Assignment HelpData Analysis Assignment Help
Data Analysis Assignment Help
Matlab Assignment Experts
 
Image scalar hw_algorithm
Image scalar hw_algorithmImage scalar hw_algorithm
Image scalar hw_algorithmsean chen
 
New CO2 10HP unit for medium and low temperature
New CO2 10HP unit for medium and low temperatureNew CO2 10HP unit for medium and low temperature
New CO2 10HP unit for medium and low temperature
ATMOsphere Conferences & Events
 
Confronting the partition function (Chapter 18 in Deep learning by Ian Goodfe...
Confronting the partition function (Chapter 18 in Deep learning by Ian Goodfe...Confronting the partition function (Chapter 18 in Deep learning by Ian Goodfe...
Confronting the partition function (Chapter 18 in Deep learning by Ian Goodfe...
Tomoki Tanimura
 
El Chase Storyboards
El Chase StoryboardsEl Chase Storyboards
El Chase Storyboards
Raymundo Mendoza Landa
 
Flow Product Development
Flow Product DevelopmentFlow Product Development
Flow Product Development
Pablo Domingo
 
Tesis doctoral reparaxion civil y delito
Tesis doctoral reparaxion civil y delitoTesis doctoral reparaxion civil y delito
Tesis doctoral reparaxion civil y delito
Wilfredo Surichaqui Rojas
 
Historical IBM quarterly dividend rates and payable and records dates.
Historical IBM quarterly dividend rates and payable and records dates. Historical IBM quarterly dividend rates and payable and records dates.
Historical IBM quarterly dividend rates and payable and records dates. QuarterlyEarningsReports3
 
Computer notes - Mergesort
Computer notes - MergesortComputer notes - Mergesort
Computer notes - Mergesort
ecomputernotes
 
Tongyue Product Catalogue
Tongyue Product CatalogueTongyue Product Catalogue
Tongyue Product CatalogueJason Huang
 

Similar to Delineating sea level rise inundation (20)

Blind Flange dimensions by Sandco Metal Industries
Blind Flange dimensions by Sandco Metal IndustriesBlind Flange dimensions by Sandco Metal Industries
Blind Flange dimensions by Sandco Metal Industries
 
Engg Ref Book
Engg Ref BookEngg Ref Book
Engg Ref Book
 
Pre-calculated damage.pdf
Pre-calculated damage.pdfPre-calculated damage.pdf
Pre-calculated damage.pdf
 
Executive PAD. Residential Project.3
Executive PAD. Residential Project.3Executive PAD. Residential Project.3
Executive PAD. Residential Project.3
 
Engg ref book
Engg ref bookEngg ref book
Engg ref book
 
Sanitary Adapters
Sanitary AdaptersSanitary Adapters
Sanitary Adapters
 
Norm smith
Norm smithNorm smith
Norm smith
 
センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本センサーによるデータ計測と異常検知の基本
センサーによるデータ計測と異常検知の基本
 
Data Analysis Assignment Help
Data Analysis Assignment HelpData Analysis Assignment Help
Data Analysis Assignment Help
 
Image scalar hw_algorithm
Image scalar hw_algorithmImage scalar hw_algorithm
Image scalar hw_algorithm
 
New CO2 10HP unit for medium and low temperature
New CO2 10HP unit for medium and low temperatureNew CO2 10HP unit for medium and low temperature
New CO2 10HP unit for medium and low temperature
 
Confronting the partition function (Chapter 18 in Deep learning by Ian Goodfe...
Confronting the partition function (Chapter 18 in Deep learning by Ian Goodfe...Confronting the partition function (Chapter 18 in Deep learning by Ian Goodfe...
Confronting the partition function (Chapter 18 in Deep learning by Ian Goodfe...
 
El Chase Storyboards
El Chase StoryboardsEl Chase Storyboards
El Chase Storyboards
 
Flow Product Development
Flow Product DevelopmentFlow Product Development
Flow Product Development
 
Tesis doctoral reparaxion civil y delito
Tesis doctoral reparaxion civil y delitoTesis doctoral reparaxion civil y delito
Tesis doctoral reparaxion civil y delito
 
Cocktail namta sudtai
Cocktail namta sudtaiCocktail namta sudtai
Cocktail namta sudtai
 
Wais r record form continuation
Wais r record form continuationWais r record form continuation
Wais r record form continuation
 
Historical IBM quarterly dividend rates and payable and records dates.
Historical IBM quarterly dividend rates and payable and records dates. Historical IBM quarterly dividend rates and payable and records dates.
Historical IBM quarterly dividend rates and payable and records dates.
 
Computer notes - Mergesort
Computer notes - MergesortComputer notes - Mergesort
Computer notes - Mergesort
 
Tongyue Product Catalogue
Tongyue Product CatalogueTongyue Product Catalogue
Tongyue Product Catalogue
 

Recently uploaded

May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 

Recently uploaded (20)

May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 

Delineating sea level rise inundation

  • 1. Delineating Sea-Level Rise Inundation: An Exploration of Data Structures and Performance Optimization CJ Grady Thesis defense May 10, 2017
  • 2. Outline  Introduction  Sea level rise inundation delineation and inundation height  Data structures for inundation height calculation  Parallelizing inundation height calculation  Conclusions
  • 3. Introduction  An estimated 25% of people live within 100 km and at elevations less than 100 m  As sea level continues to rise, it is critical to know which areas might be inundated in order to predict and mitigate economic and environmental impacts  First we present an approach for calculating inundation height that accounts for barriers based on Dijkstra’s algorithm  Data structures  Next we developed a parallel method for calculating inundation height that can be deployed on supercomputing resources
  • 4. Sea Level Rise Inundation--Bathtub Method  Any cell with a lower elevation than a specified sea level rise is inundated  Pros:  Simple computation  Cons:  Specific sea level rise  Does not account for water connectivity
  • 5. Inundation Height  Uses Dijkstra’s algorithm to calculate minimum inundation height for every cell  Pros:  Accounts for water connectivity  Inundation height for every cell  Cons:  Computationally expensive
  • 6. Calculating Inundation Height Using Dijkstra’s Algorithm  Inundation height is not simply elevation  Barriers can prevent water propagation  We used Dijkstra’s algorithm to determine the minimum sea level rise required to inundate  We then explored the priority queue data structure used in the algorithm
  • 7. Dijkstra’s Algorithm for inundation height  Maintains a set of connected nodes (propagation front) in a priority queue data structure  Selects the connected node with the least height and removes it from the set  Adds the nodes connected to this newly visited node to the connected nodes set  Updates heights as necessary  Repeats until the connected nodes set is empty
  • 8.
  • 10. 𝑒𝑟𝑟𝑜𝑟 % = 𝐵𝑎𝑡ℎ𝑡𝑢𝑏 𝐼𝑛𝑢𝑛𝑑𝑎𝑡𝑖𝑜𝑛 − 𝑂𝑢𝑟 𝐼𝑛𝑢𝑛𝑑𝑎𝑡𝑖𝑜𝑛 𝑂𝑢𝑟 𝐼𝑛𝑢𝑛𝑑𝑎𝑡𝑖𝑜𝑛 Bathtub vs Method Considering Water Connectivity
  • 11. Addressing Performance With Data Structures  Dijkstra’s algorithm relies on a priority queue  First implementation used a binary heap  Fibonacci heap provides better asymptotic performance for multiple operations
  • 12. Binary Heap vs Fibonacci Heap Operation Binary Heap Fibonacci Heap Push Θ(log n) Θ(1) Pop Θ(log n) * O(log n) Reduce Key Θ(log n) Θ(1) Find Minimum Θ(1) Θ(1) * - Amortized cost
  • 13. Binary Heap vs Fibonacci Heap  In theory, Fibonacci Heap has better performance  The main advantage of Fibonacci Heap is the reduce key method  Reduce key is not used for inundation height  The constant associated with the pop operation is greater for Fibonacci Heaps  This causes Fibonacci Heap to be slower (10x in this case)
  • 14. Parallelizing Inundation Height Calculations  The performance of our first method does not scale  We developed a parallel approach for Dijkstra calculations  Master / worker paradigm  Deployed on XSEDE resources
  • 15. Literature Review  Other cost distance algorithms  Bellman-Ford, A*  Parallel versions of Dijkstra’s algorithm  Parallelization of heap  Parallelization of edge processing  Parallel computations  MrGeo
  • 19. Three Concepts  Region decomposition  Calculate-and-correct  Parallel computations
  • 21. Calculate-and-correct  Computations are run with the information available  As computations complete for a tile, the edges are exported to adjacent tiles to be used as inputs  Computations continue until no changes are made
  • 26. 3 5 3 2 1 2 2 3 4 4 2 1 9 9 7 0 1 8 3 3 1 3 7 3 3 1 4 6 4 3 1 3 5 2 2 1 1 6 2 2 1 1 1 8 9 0 1 1 2 2 1 0 1 2 2 5 4 1 2 3 9 8 5 5 4 2 7 4 6 4 2 9 8 7 5 3 2 8 4 4 2 2 2 2 3 2 9 2 2 3 8 6 1 1 1 1 1 1 1 1
  • 28. 3 5 3 2 1 2 2 3 4 4 2 1 9 9 7 0 1 8 3 3 1 3 7 3 3 1 4 6 4 3 1 3 5 2 2 1 1 6 2 2 1 1 1 8 9 0 1 1 2 2 1 0 1 2 2 5 4 1 2 3 9 8 5 5 4 2 7 4 6 4 2 9 8 7 5 3 2 8 4 4 2 2 2 2 3 2 9 2 2 3 8 6 1 1 1 1 1 1 1 1 Running: • Top left • Top right • Bottom left • Bottom right
  • 29. -/3 -/5 -/3 -/2 -/1 -/2 -/2 -/3 -/4 -/4 -/2 1/1 -/9 -/9 -/7 0/0 1/1 -/8 -/3 -/3 1/1 -/3 -/7 -/3 -/3 -/1 -/4 -/6 -/4 -/3 -/1 -/3 -/5 -/2 -/2 -/1 -/1 -/6 -/2 -/2 1/1 1/1 -/1 -/8 -/9 0/0 1/1 -/1 -/2 -/2 1/1 0/0 1/1 -/2 -/2 -/5 -/4 1/1 -/2 -/3 -/9 -/8 -/5 -/5 -/4 -/2 -/7 -/4 -/6 -/4 -/2 -/9 -/8 -/7 -/5 -/3 -/2 -/8 -/4 -/4 -/2 -/2 -/2 -/2 -/3 -/2 -/9 -/2 -/2 -/3 -/8 -/6 -/1 -/1 -/1 -/1 -/1 -/1 -/1 -/1 Running: • Top left • Top right • Bottom left Idle: • Bottom right
  • 30. 3/3 5/5 3/3 3/2 3/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 7/3 7/3 1/1 3/3 7/7 7/3 7/3 1/1 4/4 6/6 5/4 5/3 1/1 3/3 5/5 5/2 5/2 1/1 1/1 6/6 5/2 5/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 8/2 8/7 5/4 6/6 4/4 8/2 9/9 8/8 7/7 5/5 -/3 -/2 -/8 -/4 -/4 -/2 -/2 -/2 -/2 -/3 -/2 -/9 -/2 -/2 -/3 -/8 -/6 -/1 -/1 -/1 -/1 -/1 -/1 -/1 -/1 Running: • Top left • Top right Waiting: • Top left • From BL Idle: • Bottom left Submitted: • Bottom right • From BL
  • 31. 3/3 5/5 3/3 3/2 3/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 7/3 7/3 1/1 3/3 7/7 7/3 7/3 1/1 4/4 6/6 5/4 5/3 1/1 3/3 5/5 5/2 5/2 1/1 1/1 6/6 5/2 5/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 8/2 8/7 5/4 6/6 4/4 8/2 9/9 8/8 7/7 5/5 -/3 -/2 -/8 -/4 -/4 -/2 -/2 -/2 -/2 -/3 -/2 -/9 -/2 -/2 -/3 -/8 -/6 -/1 -/1 -/1 2/1 2/1 -/1 -/1 -/1 Running: • Top left • Bottom right Waiting: • Top left • From BL • From TR • Bottom right • From TR Idle: • Bottom left • Top right 5/3 5/2 5/2 9/9 2/2
  • 32. 3/3 5/5 3/3 3/2 3/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 7/3 7/3 1/1 3/3 7/7 7/3 7/3 1/1 4/4 6/6 5/4 5/3 1/1 3/3 5/5 5/2 5/2 1/1 1/1 6/6 5/2 5/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 8/2 8/7 5/4 6/6 4/4 8/2 9/9 8/8 7/7 5/5 -/3 -/2 -/8 -/4 -/4 -/2 -/2 -/2 -/2 -/3 -/2 -/9 -/2 -/2 -/3 -/8 -/6 -/1 -/1 -/1 2/1 2/1 2/1 2/1 -/1 Running: • Bottom right Waiting: • Bottom right • From TR Submitted: • Top left • From BL • From TR • Top right • From TL • Bottom left • From TL 5/3 5/2 5/2 9/9 2/2
  • 33. 3/3 5/5 3/3 3/2 3/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 7/3 7/3 1/1 3/3 7/7 7/3 7/3 1/1 4/4 6/6 5/4 5/3 1/1 3/3 5/5 5/2 5/2 1/1 1/1 6/6 5/2 5/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 8/2 8/7 5/4 6/6 4/4 8/2 9/9 8/8 7/7 5/5 -/3 -/2 -/8 -/4 -/4 -/2 -/2 -/2 -/2 -/3 -/2 -/9 -/2 -/2 -/3 -/8 -/6 2/1 2/1 -/1 2/1 2/1 2/1 2/1 2/1 Running: • Bottom right • Top left • Top right Idle: • Bottom left Waiting: • Bottom right • From TR 5/3 5/2 5/2 9/9 2/2 1/1 5/5 9/9 8/2 8/2 1/1 3/3 7/7 7/3 7/3 1/1 4/4 6/6 5/4 5/3 3/1 4/4 7/7 7/3 7/3
  • 34. 3/3 5/5 3/3 2/2 1/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 7/3 7/3 1/1 3/3 7/7 5/3 7/3 1/1 4/4 6/6 5/4 5/3 1/1 3/3 5/5 5/2 5/2 1/1 1/1 6/6 5/2 5/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 7/2 7/7 5/4 6/6 4/4 7/2 9/9 8/8 7/7 5/5 -/3 -/2 -/8 -/4 -/4 -/2 -/2 -/2 -/2 -/3 -/2 -/9 2/2 2/2 -/3 -/8 -/6 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 Running: • Bottom right • Top left Idle: • Bottom left • Top right Waiting: • Bottom right • From TR 5/3 5/2 5/2 9/9 2/2 1/1 5/5 9/9 8/2 8/2 1/1 4/4 6/6 5/4 5/3 3/1 4/4 7/7 7/3 7/3
  • 35. 3/3 5/5 3/3 2/2 1/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 5/3 5/3 1/1 3/3 7/7 5/3 5/3 1/1 4/4 6/6 5/4 5/3 1/1 3/3 5/5 5/2 5/2 1/1 1/1 6/6 5/2 5/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 7/2 7/7 5/4 6/6 4/4 7/2 9/9 8/8 7/7 5/5 -/3 -/2 -/8 -/4 -/4 -/2 2/2 2/2 2/2 -/3 -/2 -/9 2/2 2/2 -/3 -/8 -/6 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 Running: • Bottom right Idle: • Bottom left • Top left Waiting: • Bottom right • From TR Submitted: • Top right • From TL 5/3 5/2 5/2 9/9 2/2 1/1 5/5 9/9 5/2 5/2 1/1 4/4 6/6 5/4 5/3
  • 36. 3/3 5/5 3/3 2/2 1/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 5/3 5/3 1/1 3/3 7/7 5/3 5/3 1/1 4/4 6/6 5/4 5/3 1/1 3/3 5/5 5/2 5/2 1/1 1/1 6/6 5/2 5/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 5/2 7/7 5/4 6/6 4/4 5/2 9/9 8/8 7/7 5/5 -/3 2/2 -/8 -/4 -/4 2/2 2/2 2/2 2/2 -/3 2/2 -/9 2/2 2/2 -/3 -/8 -/6 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 Running: • Bottom right Idle: • Bottom left • Top left • Top right Waiting: • Bottom right • From TR 5/3 2/2 2/2 9/9 2/2 1/1 4/4 7/7 5/3 5/3
  • 37. 3/3 5/5 3/3 2/2 1/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 5/3 5/3 1/1 3/3 7/7 5/3 5/3 1/1 4/4 6/6 5/4 5/3 1/1 3/3 5/5 5/2 5/2 1/1 1/1 6/6 5/2 5/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 5/2 7/7 5/4 6/6 4/4 5/2 9/9 8/8 7/7 5/5 3/3 2/2 8/8 4/4 4/4 2/2 2/2 2/2 2/2 3/3 2/2 9/9 2/2 2/2 3/3 8/8 6/6 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 Idle: • Top left Submitted: • Top right • From BR • Bottom left • From BR • Bottom right • From TR 3/3 2/2 2/2 9/9 2/2
  • 38. 3/3 5/5 3/3 2/2 1/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 5/3 5/3 1/1 3/3 7/7 5/3 5/3 1/1 4/4 6/6 5/4 5/3 1/1 3/3 5/5 5/2 5/2 1/1 1/1 6/6 5/2 5/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 5/2 7/7 5/4 6/6 4/4 5/2 9/9 8/8 7/7 5/5 3/3 2/2 8/8 4/4 4/4 2/2 2/2 2/2 2/2 3/3 2/2 9/9 2/2 2/2 3/3 8/8 6/6 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 Running: • Top right • Bottom left Idle: • Top left • Bottom right 3/3 2/2 8/8 4/4 4/4 5/2 9/9 8/8 7/7 5/5 3/3 2/2 2/2 8/8 2/1
  • 39. 3/3 5/5 3/3 2/2 1/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 5/3 5/3 1/1 3/3 7/7 5/3 5/3 1/1 4/4 6/6 5/4 5/3 1/1 3/3 5/5 5/2 2/2 1/1 1/1 6/6 5/2 2/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 3/2 7/7 5/4 6/6 4/4 3/2 9/9 8/8 7/7 5/5 3/3 2/2 8/8 4/4 4/4 2/2 2/2 2/2 2/2 3/3 2/2 9/9 2/2 2/2 3/3 8/8 6/6 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 Running: • Bottom left Idle: • Bottom right • Top right Submitted: • Top left • From TR 3/3 2/2 8/8 4/4 4/4 3/3 2/2 2/2 8/8 2/1
  • 40. 3/3 5/5 3/3 2/2 1/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 3/3 3/3 1/1 3/3 7/7 5/3 3/3 1/1 4/4 6/6 4/4 3/3 1/1 3/3 5/5 2/2 2/2 1/1 1/1 6/6 2/2 2/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 3/2 7/7 5/4 6/6 4/4 3/2 9/9 8/8 7/7 5/5 3/3 2/2 8/8 4/4 4/4 2/2 2/2 2/2 2/2 3/3 2/2 9/9 2/2 2/2 3/3 8/8 6/6 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 Running: • Top left Idle: • Bottom right • Top right • Bottom left Waiting: • Top left • From BL 3/3 2/2 2/2 8/8 2/1 1/1 5/5 9/9 3/2 3/2
  • 41. 3/3 5/5 3/3 2/2 1/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 3/3 3/3 1/1 3/3 7/7 3/3 3/3 1/1 4/4 6/6 4/4 3/3 1/1 3/3 5/5 2/2 2/2 1/1 1/1 6/6 2/2 2/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 3/2 7/7 5/4 6/6 4/4 3/2 9/9 8/8 7/7 5/5 3/3 2/2 8/8 4/4 4/4 2/2 2/2 2/2 2/2 3/3 2/2 9/9 2/2 2/2 3/3 8/8 6/6 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 Idle: • Bottom right • Top right Submitted: • Top left • From BL • Bottom left • From TL 1/1 5/5 9/9 3/2 3/2
  • 42. 3/3 5/5 3/3 2/2 1/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 3/3 3/3 1/1 3/3 7/7 3/3 3/3 1/1 4/4 6/6 4/4 3/3 1/1 3/3 5/5 2/2 2/2 1/1 1/1 6/6 2/2 2/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 3/2 7/7 5/4 6/6 4/4 3/2 9/9 8/8 7/7 5/5 3/3 2/2 8/8 4/4 4/4 2/2 2/2 2/2 2/2 3/3 2/2 9/9 2/2 2/2 3/3 8/8 6/6 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 Running: • Top left Idle: • Bottom right • Top right • Bottom left 1/1 3/3 7/7 3/3 3/3 1/1 4/4 6/6 4/4 3/3
  • 43. 3/3 5/5 3/3 2/2 1/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 3/3 3/3 1/1 3/3 7/7 3/3 3/3 1/1 4/4 6/6 4/4 3/3 1/1 3/3 5/5 2/2 2/2 1/1 1/1 6/6 2/2 2/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 3/2 7/7 5/4 6/6 4/4 3/2 9/9 8/8 7/7 5/5 3/3 2/2 8/8 4/4 4/4 2/2 2/2 2/2 2/2 3/3 2/2 9/9 2/2 2/2 3/3 8/8 6/6 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1 Idle: • Bottom right • Top right • Bottom left • Top left 1/1 4/4 6/6 4/4 3/3
  • 44. 3/3 5/5 3/3 2/2 1/1 2/2 2/2 3/3 4/4 4/4 2/2 1/1 9/9 9/9 7/7 0/0 1/1 8/8 3/3 3/3 1/1 3/3 7/7 3/3 3/3 1/1 4/4 6/6 4/4 3/3 1/1 3/3 5/5 2/2 2/2 1/1 1/1 6/6 2/2 2/2 1/1 1/1 1/1 8/8 9/9 0/0 1/1 1/1 2/2 2/2 1/1 0/0 1/1 2/2 2/2 5/5 4/4 1/1 2/2 3/3 9/9 8/8 5/5 5/5 4/4 3/2 7/7 5/4 6/6 4/4 3/2 9/9 8/8 7/7 5/5 3/3 2/2 8/8 4/4 4/4 2/2 2/2 2/2 2/2 3/3 2/2 9/9 2/2 2/2 3/3 8/8 6/6 2/1 2/1 2/1 2/1 2/1 2/1 2/1 2/1
  • 45. Expand / Contract Edge Vectors
  • 46. Parallelism  Master / worker  Master submits computations  Workers run computations on tiles and report back  Updated inundation height tiles  Edge vectors
  • 47. Master / Worker Master Process (Work Queue) Worker Worker Worker Worker…
  • 48. Master / Worker  Uses Work Queue from Notre Dame  Roughly one worker per core  Can be deployed on:  One machine  A cluster  Across heterogeneous resources
  • 49. Parallelism  Continuous flow of computations rather than map reduce style  Eliminates some resource starvation  Locks tiles to prevent race conditions  Master limits tasks to one per tile
  • 50. Experiments  Single layer for the NGDC dataset  Parallelization on single machine with 1, 2, 4, 8, 12 cores and with half degree, one degree, and two degree tile sizes  Parallelization on XSEDE Stampede with 32, 64, 128 cores and with half degree, one degree, and two degree tile sizes  West coast and entire NGDC dataset
  • 51. Experiments—Single Layer for the NGDC dataset  Merged all of the NGDC dataset  Computations did not fit into memory  Had to cut down data size (West Coast) to run serially
  • 53. 0 1000 2000 3000 4000 5000 6000 1-0.5 1-1.0 1-2.0 2-0.5 2-1.0 2-2.0 4-0.5 4-1.0 4-2.0 8-0.5 8-1.0 8-2.0 12-0.5 12-1.0 12-2.0 RunningTime(s) Number of Workers - Tile Size (dd) Serial Method West Coast Experiment Running Times
  • 55. Entire NGDC Dataset Experiment  Could not run serial version on available hardware  Ran on single machine with 1, 2, 4, 8, 12 cores  Ran on Stampede with 32, 64, 128 cores  Ran with half degree, one degree, and two degree tile sizes
  • 56. Stampede  XSEDE (Extreme Science and Engineering Discovery Environment) resource  Housed at Texas Advanced Computing Center  2+ petaFLOPs for main cluster  6400 Compute Nodes  Lustre file system (parallel file storage)  Decommission began in January 2017
  • 57. Stampede Deployment M W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W … Lustre Parallel File Storage
  • 58. 1 2 4 8 12 31 63 127 Half Degree 13499 6828 3461 2290 2280 861 556 1486 One Degree 13077 6675 3402 2324 2259 905 1573 1455 Two Degree 13575 6944 3509 2474 2397 964 626 510 0 2000 4000 6000 8000 10000 12000 14000 16000 RunningTime(seconds) Number of Workers Half Degree One Degree Two Degree Experiment Results
  • 59. Conclusions  Dijkstra’s algorithm allows us to calculate inundation height from DEM  Heap data structures significantly improve the efficiency  Parallel implementation addresses scale up Dijkstra’s algorithm  Running time  Memory footprint  Parallelization can be applied to supercomputing resources
  • 60. Future Work  Overcome new bottlenecks in parallelization method  Other resource may be more appropriate (such as TACC’s Wrangler)  New framework for parallelization spatially dependent calculations

Editor's Notes

  1. Explain the bathtub method. Why it’s fast and what the problem it is (water connectivity)
  2. Explain how we apply Dijkstra’s algorithm for inundation height and step through this diagram. - Surface - Source cells - Initial connected cells - After first cell is selected - Second - Third - Fourth
  3. Introduce the dataset for the first paper. North Carolina DEM 46 million land cells (86 million total) LiDAR based DEM with 30 meter spatial resolution
  4. This graphic shows the error percentage between the bathtub method and our cost distance based implementation Number of cells determined to be inundated that shouldn’t be
  5. Why target the heap? Every cell goes through it
  6. Point out the reduce key operation
  7. Binary heap was still 5000+ seconds
  8. Rather than getting faster, processing resources have become more parallel. Multi-cores GPUs Coprocessors Need to take advantage of these resources for scaling
  9. Heap parallelization tries to operate on items that are not likely to collide Parallel edge processing processes all edges from a node at once What is MrGeo and why this is different
  10. Image of NGDC CRM dataset (now NCEI – National Centers for Environmental Information) 10 volumes 9 are 3 arc seconds 1 (southern California) is 1 arc second Data is distributed as one raster per volume except for southern California volume (tiles)
  11. Image of one volume (Florida). Hard lines show 1 degree sections
  12. Single tile from the Florida volume
  13. Introduce the approach Based on three concepts Briefly explain each
  14. Same florida image. We split it up along the degree lines (as well as half and two degree tiles)
  15. Profile view of an example surface
  16. Water comes in from left. Follows profile Dotted lines show inundation height above profile height
  17. Calculations are corrected when water comes in from other side
  18. Surface and surface divided into regions
  19. Exploded view
  20. For computations to flow between tiles, we have to export edge vectors Oval around edge to be exported Blue shows edge attached to adjacent tile
  21. Every tile submitted for source cell run
  22. Bottom right tile finished, no source cells, no changes Other tiles are running and this shows an approximation of their progress as the bottom right tile finishes
  23. Bottom left has finished. Top left and right may be done as well but the bottom left reports that it is finished to the master first. Export edges to top left and bottom right
  24. Top right finishes. Exports edges for bottom right (already running) and top left (running)
  25. Top left finishes. Resubmits with waiting edges. Submits top right and bottom right
  26. Bottom left finishes immediately since no cells are changed. Does not export vectors
  27. Top right changes 3 cells and finishes. Exported vector between top right and bottom right is updated
  28. Top left finishes. Edge between top left and bottom left is not exported because none of the cells are less than the incoming vector. Vector is exported to top right
  29. Top right finishes. Updates the edge between top right and bottom right.
  30. Bottom right finishes. Exports edges to bottom left and top right. Resubmits bottom right with edge from top right
  31. Bottom right finishes immediately since no cells can be changed
  32. Top right finishes and exports edge to top left
  33. Bottom left finishes and exports edge to top left (not bottom right) Top left has to wait because it is running
  34. Top left finishes. Exports edge to bottom left. Does not export edge to top right. Resubmits top left with edge from bottom left
  35. Bottom left finishes immediately as no cells are changed
  36. Top left finishes without changes. Computations are finished
  37. Final cost surface
  38. Our method allows for adjacent tiles to have different resolutions Edges can be expanded or contracted to match resolution of adjacent tile Southern California volume is case where this is needed
  39. When a worker finishes a task it starts the next available
  40. Volumes 6, 7, 8
  41. Line is serial version 1 core is slower but can do bigger study areas
  42. Full results from west coast experiment
  43. Master process and N – 1 workers Jobs are allocated entire machines (16 cores each) so N is a multiple of 16
  44. We can claim success though
  45. We can claim success though