streaming construction of delaunay triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · streaming...

96
University of California at Berkeley Jonathan Shewchuk Delaunay Triangulations Streaming Construction of Joint work with Martin Isenburg, Yuanxin Liu, & Jack Snoeyink

Upload: others

Post on 24-Jul-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

University of California at BerkeleyJonathan Shewchuk

Delaunay TriangulationsStreaming Construction of

Joint work with Martin Isenburg, Yuanxin Liu, & Jack Snoeyink

Page 2: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Delaunay TriangulationsStreaming Construction of

Or, ‘‘How we compute supercomputer−sized Delaunay triangulations on anordinary laptop computer.’’

Page 3: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Every point set has a Delaunay triangulation. Think ofit as a function that takes a set of points and outputs atriangulation.

The Delaunay Triangulation

Page 4: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

The Delaunay Triangulation

...is a triangulation whose triangles are all Delaunay.

An triangle is Delaunay if it has an empty circumscribingcircle − one that encloses no vertex.

Page 5: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

The circumcircle of every Delaunay triangle is empty.

The Delaunay Triangulation

Page 6: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Terrain Databases and

Contouring

Geographical Information Systems

Applications of Triangulations

Rendering

Page 7: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Elevation Collection by LIDAR

Page 8: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Related Work

Amenta, Choi, & Rote [2003] use

triangulation construction.

randomized insertion ordersbiased

to improvevirtual memory performance of 3D Delaunay

Page 9: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Related Work

Amenta, Choi, & Rote [2003] use

triangulation construction.

randomized insertion ordersbiased

Agarwal, Arge, and Yi [2005] implemented

(1 billion triangles on desktop machine.)

to improvevirtual memory performance of 3D Delaunay

an external memory 2D triangulator basedon randomized divide−and−conquer.

Page 10: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Related Work

Amenta, Choi, & Rote [2003] use

triangulation construction.

randomized insertion ordersbiased

Agarwal, Arge, and Yi [2005] implemented

(1 billion triangles on desktop machine.)

Blandford, Blelloch, and Kadow [2006]implemented a 3D parallel triangulator.(10 billion tetrahedra on 64 processors.)

to improvevirtual memory performance of 3D Delaunay

an external memory 2D triangulator basedon randomized divide−and−conquer.

Page 11: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Delaunay

Page 12: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Computation

A restricted version of out−of−core computation.

Algorithm makes one (or a few) pass(es)over input stream, and writes output stream.

Page 13: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Computation

A restricted version of out−of−core computation.

Algorithm makes one (or a few) pass(es)over input stream, and writes output stream.

Processes data in memory buffer muchsmaller than the stream sizes.

Page 14: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Computation

A restricted version of out−of−core computation.

Algorithm makes one (or a few) pass(es)over input stream, and writes output stream.

Processes data in memory buffer muchsmaller than the stream sizes.

Nothing is stored temporarily to disk.

Page 15: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Advantages of Streaming

Streaming tools can run concurrently ina pipeline.

Often much faster than other out−of−corealgorithms!

Page 16: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Our Accomplishments

9 billion triangles in 6.6 hours on a laptop.

Page 17: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Our Accomplishments

9 billion triangles in 6.6 hours on a laptop.

12 times faster than Agarwal−Arge−Yi.

Page 18: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Our Accomplishments

9 billion triangles in 6.6 hours on a laptop.

800 million tetrahedra in under 3 hours.

12 times faster than Agarwal−Arge−Yi.

Page 19: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Algorithm Choice

Theconstructing Delaunay triangulations.

incremental insertion algorithm for

Page 20: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Algorithm Choice

Theconstructing Delaunay triangulations.

incremental insertion algorithm for

We have little control over the order of pointsin the input stream.

Why?

Page 21: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Algorithm Choice

Theconstructing Delaunay triangulations.

incremental insertion algorithm for

We have little control over the order of pointsin the input stream.

We modified existing, sequential Delaunaytriangulation codes (2D & 3D) for streaming.

Why?

Page 22: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Insert one vertex at a time.

Bowyer−Watson Algorithm

Page 23: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Insert one vertex at a time.Remove all triangles/tetrahedra that are no longer Delaunay.

Bowyer−Watson Algorithm

Page 24: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Insert one vertex at a time.Remove all triangles/tetrahedra that are no longer Delaunay.Retriangulate the cavity with a fan around the new vertex.

Bowyer−Watson Algorithm

Page 25: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Spatial Finalization

Page 26: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Spatial Finalization

finalization regions.Subdivide space into

Page 27: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Spatial Finalization

finalization regions.

spatial finalization tagsthat indicate ‘‘there are nomore points in this region.’’

Point stream

Finalized point stream

Inject into the stream

Subdivide space into

Page 28: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Spatial Finalization: Why?

Triangles whosecircumscribingcircles lie entirelyin finalized spacecan be written todisk immediately.

Regions not yet finalized

Finalized space

Page 29: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Triangles whosecircumscribing

Regions not yet finalized

Finalized space

circles intersectan unfinalizedregion remainin memory.

Page 30: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Delaunay Pipeline

TriangulatorFinalizer

Page 31: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

The Finalizer

Page 32: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

How to Finalize

Computebounding box.

1

Page 33: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

How to Finalize

Computebounding box.

1

Page 34: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

How to Finalize

Computebounding box.

1

Page 35: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

How to Finalize

Computebounding box.

1

Page 36: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

How to Finalize

Computebounding box.

1

Page 37: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

How to Finalize

Computebounding box.

1

Page 38: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

How to Finalize

Computebounding box.

1

Page 39: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

How to Finalize

Computebounding box.

1

Page 40: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

How to Finalize

Computebounding box.Finalization grid.

1

2

Page 41: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

1

1 1

2 2

3 4

How to Finalize

Computebounding box.Finalization grid.Count points.

1

2

Page 42: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

4

1 1

11

1

3

4 2

4

5

5

5

How to Finalize

Computebounding box.Finalization grid.Count points.

1

2

Page 43: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

1111

4 1

2 1246

5

5

5

6

7

1

6

6 7

5

How to Finalize

Computebounding box.Finalization grid.Count points.

1

2

Page 44: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

2

2 11

3

4

25

2

21

54

32

3

5

63

77

78

9

7

6

1 6

6 6

7

5

How to Finalize

Computebounding box.Finalization grid.Count points.

1

2

Page 45: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

2

1454

5

7

4 3 4 2 3

5

5

9

4 6 6 7 6

2776

63

77

78

9

7

6

1 6

6 6

7

5

7 4

How to Finalize

Computebounding box.Finalization grid.Count points.

1

2

Page 46: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

5

761

6

7

6

8

6

7 3 6

2776779

4 6 6 6 7 6 5

8

46

67

66

58

87

9

5

5

7 4

How to Finalize

Computebounding box.Finalization grid.Count points.

1

2

Page 47: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

9

6

75

761

666

7 8

9

4 6

6

7

5

2

67

7

66

8 5 7 6 8

466875

67

37

7

7 4

How to Finalize

Computebounding box.Finalization grid.Count points.Store ‘‘sprinklepoints.’’

1

2

Page 48: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

466687

86

5

2

5

7

4

6

7

7589

6

6 7664

7

73

1

79

77

6

7

6 6

7

5 7

6

6

How to Finalize

Computebounding box.Finalization grid.

Output finalizedpoints.

Count points.Store ‘‘sprinklepoints.’’

Release chunks.Inject finalizationtags.

1

2

3

Page 49: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

466687

86

5

2

5

7

4

6

7

7589

6

6 7664

7

73

1

79

776

5 5 6

5

2 3

4

6

How to Finalize

Computebounding box.Finalization grid.

Output finalizedpoints.

Count points.Store ‘‘sprinklepoints.’’

Release chunks.Inject finalizationtags.

1

2

3

Page 50: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

5 2

466687

86

5

2

5

7

4

6

7

7589

6

6 7664

8 6 7

736

5

44

42

1 1 2

5

How to Finalize

Computebounding box.Finalization grid.

Output finalizedpoints.

Count points.Store ‘‘sprinklepoints.’’

Release chunks.Inject finalizationtags.

1

2

3

Page 51: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

5

761

66

7

2

466687

86

5

2

5

7

46

6

7

6

7589

553

6

1

634

3

1

2

6

4

How to Finalize

Computebounding box.Finalization grid.

Output finalizedpoints.

Count points.Store ‘‘sprinklepoints.’’

Release chunks.Inject finalizationtags.

1

2

3

Page 52: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

5

761

666

7 8 7

79 7

3 6

2

4

1

66687

4

86545

5

7

5

24

23

5

5

1

232

How to Finalize

Computebounding box.Finalization grid.

Output finalizedpoints.

Count points.Store ‘‘sprinklepoints.’’

Release chunks.Inject finalizationtags.

1

2

3

Page 53: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

9

5

761

666

7 8 7

79

4 6

7

3 6 8 3

7 2

67

7

6

5

6

2

434253

2 7

3

211

1

How to Finalize

Computebounding box.Finalization grid.

Output finalizedpoints.

Count points.Store ‘‘sprinklepoints.’’

Release chunks.Inject finalizationtags.

1

2

3

Page 54: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

9

6

5

761

666

7 8 7

79

4 6

7

3 6 8 3

7

5

2

67

7

66

8 5 7 6 8

466875

6

2

How to Finalize

Computebounding box.Finalization grid.

Output finalizedpoints.

Count points.Store ‘‘sprinklepoints.’’

Release chunks.Inject finalizationtags.

1

2

3

Page 55: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

9

6

75

761

666

7 8 7

79

4 6

7

3 6 8 3

7

5

2

67

7

66

8 5 7 6 8

466875

6

How to Finalize

Computebounding box.Finalization grid.

Output finalizedpoints.

Count points.Store ‘‘sprinklepoints.’’

Release chunks.Inject finalizationtags.

1

2

3

Page 56: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

pointsofchunk

pointsofchunk

Streaming Point Format# npoints 22514# bb_min_f 0 0 192.25

# datatype SP_FLOATv 0 3 193.1v 0.4375 3.5 193.11v 0.59375 4 193.09v 0.6875 4.5 193.11v 0.90625 2.5 193.13v 0.90625 4.5 193.07x cell 2732v 0 7.5 192.91v 0.21875 9 192.93v 0.53125 9 192.99v 0.8125 7.5 192.96v 0.9375 9 193.04v 1.03125 9.5 193.06v 1.65625 8.5 193.04x cell 2740v 0.21875 0 193.06

# bb_max_f 122.5 158.5 215.7

finalization tag

finalization tag

Page 57: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Spatial CoherenceThe correlation between the proximity of points inspace and their proximity in the stream.

Page 58: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Spatial CoherenceThe correlation between the proximity of points inspace and their proximity in the stream.

Page 59: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Spatial CoherenceThe correlation between the proximity of points inspace and their proximity in the stream.

Page 60: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Spatial CoherenceThe correlation between the proximity of points inspace and their proximity in the stream.

Page 61: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Danger: Potential Quadratic Time

Page 62: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Danger: Potential Quadratic Time

Page 63: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Danger: Potential Quadratic Time

Page 64: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Danger: Potential Quadratic Time

Page 65: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Danger: Potential Quadratic Time

Page 66: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Danger: Potential Quadratic Time

Page 67: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Danger: Potential Quadratic Time

Page 68: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Point Reordering by Finalizer

Chunking:all points arrive, then releasing them together.

Buffering points in a region until

Points in a chunk are randomly reordered.

Page 69: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Point Reordering by Finalizer

Chunking:all points arrive, then releasing them together.

Buffering points in a region until

Points in a chunk are randomly reordered.

Sprinkling: Promoting a small random sampleof ‘‘sprinkle points’’ to earlier in the stream.

Circumvents danger of quadratic behavior.

Page 70: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

The Triangulator

Page 71: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Delaunay Triangulation

When point arrives:

triangle.Locate enclosing

triangulation.Update

Regions not yet finalized

Finalized space

Page 72: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Delaunay Triangulation

When point arrives:

triangle.Locate enclosing

triangulation.Update

When tag arrives:

triangles.Identify final

Write them out &free their memory.

Regions not yet finalized

Page 73: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Delaunay Triangulation

When point arrives:

triangle.Locate enclosing

Start at newesttriangle.

Page 74: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Delaunay Triangulation

When point arrives:

triangle.Locate enclosing

Start at newesttriangle.Walk to point.

Page 75: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Delaunay Triangulation

When point arrives:

triangle.Locate enclosing

Start at newesttriangle.Walk to point.

Page 76: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Delaunay Triangulation

When point arrives:

triangle.Locate enclosing

Start at newesttriangle.Walk to point.If that fails,restart fromcell triangle.If that fails,do exhaustivesearch.

Page 77: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Delaunay Triangulation

When point arrives:

triangle.Locate enclosing

triangulation.Update

Page 78: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Delaunay Triangulation

When tag arrives:

triangles.Identify final

Only these triangles

New triangles(since last tag).

need to be checked:

for this tag.Triangles waiting

Page 79: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Delaunay Triangulation

When tag arrives:

triangles.Identify final

Checked trianglesthat aren’t final areassigned a tag towait for.

Page 80: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Results

Page 81: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Results

Us: 12 min finalize + 36 min triang. = 48 min.

Agarwal−Arge−Yi:3 hr sort + 7.5 hr triang. = 10.5 hr.

Page 82: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Results

107 min finalize + 278 min triang. = 6 hr 25 min.425 MB finalize + 11 MB triang. = 436 MB.

Page 83: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

3D

Page 84: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

tetrahedra

& 795 MB.in 2:41 hrs

points.)finalized(Pre−

815 million

3D Streaming Delaunay

Page 85: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

for surface scans.Circumspheresare too big.

3D Streaming Delaunay

Does not work

Page 86: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Delaunay triangulation of a random sample.

3D Streaming Delaunay

Future work: spherical finalization regions from

Page 87: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Delaunay triangulation of a random sample.

3D Streaming Delaunay

Future work: spherical finalization regions from

Page 88: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Conclusions

Page 89: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

sorting doesn’t help.

Conclusions

Most real−world points sets have lots ofspatial coherence

Page 90: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

sorting doesn’t help.

Conclusions

Most real−world points sets have lots ofspatial coherence

Like aikido: Use your opponent’s spatialcoherence against him.

Page 91: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

sorting doesn’t help.

Conclusions

Most real−world points sets have lots ofspatial coherence

Like aikido: Use your opponent’s spatialcoherence against him.

Not an external memory algorithm!No temporary storage to disk.

Page 92: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

sorting doesn’t help.

Conclusions

Most real−world points sets have lots ofspatial coherence

Like aikido: Use your opponent’s spatialcoherence against him.

Not an external memory algorithm!No temporary storage to disk.

12 times faster than best previous 2D approach.

Page 93: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

sorting doesn’t help.

Conclusions

Most real−world points sets have lots ofspatial coherence

Like aikido: Use your opponent’s spatialcoherence against him.

Not an external memory algorithm!No temporary storage to disk.

Streaming triangulation can be piped directlyto another streaming application.

12 times faster than best previous 2D approach.

Page 94: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Digital Elevation Maps

Page 95: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Streaming Contour Extraction

Page 96: Streaming Construction of Delaunay Triangulationsjrs/papers/dtstalk.pdf · 2007-09-04 · Streaming Computation A restricted version of out−of−core computation. Algorithm makes

Thanks

Kevin Yi at Duke supplied the Neuse RiverBasin data.

Martin Isenburg & Yuanxin ‘‘Leo’’ Liu did mostof the programming.