Internal:Metric Adaptive CDT3D

From crtc.cs.odu.edu
Jump to navigation Jump to search

Delta Wing (Scitech 2018)

500k Complexity

Starting from a 50K Complexity volume mesh

Updated on 2018.05.20

Size of intial mesh

Vertices : 104,305

Tetrahedra: 581,196

All time data are given in seconds.
# Threads # Tetrahedra # Vertices Reconstruct Mesh Mesh Refinement Total Time Memory (GB)
# Iterations Par. Deactivation Par. Vertex Creation Vertex Insertion Partition Par. Reconnection
1 5,516,917 926,822 2.22 28 20.95 19.44 1.65 2.85 665.49 712.60 1.31
6 5,561,503 934,363 2.39 26 3.95 4.37 1.55 3.13 111.55 126.94 1.46
12 5,563,857 934,699 2.44 28 2.27 2.99 1.62 3.23 62.54 75.08 1.58
24 5,558,489 933,876 2.43 27 1.31 2.64 1.63 3.11 32.19 43.31 1.81
24 + 12HT 5,553,184 932,833 2.45 27 1.15 2.62 1.55 3.13 27.71 38.62 2.26
24 + 24HT 5,567,259 935,267 2.35 27 1.04 2.84 1.81 3.28 24.42 35.75 2.72
Speed
# Threads # Tetrahedra/sec # Tetrahedra/sec/core # Vertices/sec # Vertices/sec/core
1 6,926.36 6,926.36 1,154.25 1,154.25
6 39,233.55 6,538.93 6,538.98 1,089.83
12 66,364.69 5,530.39 11,060.12 921.68
24 114,922.49 4,788.44 19,154.26 798.09
24 + 12HT 128,741.27 3,576.15 21,453.34 595.93
24 + 24HT 139,470.29 2,905.63 23,243.69 484.24


This approach offers no boundary adaptation.

Starting for a coarse surface mesh

Updated on 2018.05.20

All time data are given in seconds.
# Threads # Tetrahedra # Vertices Intitialize Bg Mesh Boundary Adaptation (MMGS) Boundary Recovery Mesh Refinement Total Time

(without MMGS)

Memory (GB)
# Iterations Par. Deactivation Par. Vertex Creation Vertex Insertion Partition Par. Reconnection
1 5,572,743 941,913 1.47 29.77 6.74 25 17.82 83.22 1.63 2.17 667.87 811.21 1.96
6 5,598,669 946,401 1.36 30.03 5.61 26 3.56 16.21 1.73 2.62 108.01 169.65 1.61
12 5,597,829 946,215 1.45 30.02 5.82 27 1.99 8.47 1.76 2.52 59.71 112.25 1.71
24 5,596,756 946,067 1.24 29.88 6.82 28 1.16 4.54 1.67 2.51 31.17 79.52 1.95
24 + 12HT 5,607,155 947,817 1.22 30.03 6.28 27 0.96 3.76 1.72 2.44 26.45 73.40 2.33
24 + 24HT 5,617,086 949,525 1.47 30.01 6.54 27 0.89 3.53 1.71 2.55 24.05 71.26 2.78
Speed
# Threads # Tetrahedra/sec # Tetrahedra/sec/core # Vertices/sec # Vertices/sec/core
1 6,869.67 6,869.67 1,161.12 1,161.12
6 33,001.29 5,500.22 5,578.55 929.76
12 49,869.30 4,155.78 8,429.53 702.46
24 70,381.74 2,932.57 11,897.22 495.72
24 + 12HT 76,391.76 2,121.99 12,913.04 358.70
24 + 24HT 78,825.23 1,642.19 13,324.80 277.60

Notes 2

  • Speed 35.1K test/sec (40.6K tets/sec w/o body adaptation) and 5.9K ps/sec. The mesh is about 15.2 times larger in terms of test and the speed is 1.56 larger!
  • In speed table of volume reconstruction initial number of tetrahedra and vertices is subtracted.
  • In speed table of with surface adaptation MMGS time is not included.
  • Target is 1M vertices.
  • Quality comparison starting from surface vs volume
  • in some cases boundary recovery reached a point of non-developed code. Rerunning created a different surface mesh and CDT3D was able to continue.
  • commit fb0f106c6b65107
  • common parameters --met=1 --mrecm2=1 --mrec4=1 --malign=0 --mpp=2 --qstatr=1 --outmesh=${NAME}.meshb --ndfs=0 --nthreads=$THREADS --nbuckets=20*NTHREADS --nthreadsaf=20*NTHREADS --nbucketsaf=20*NTHREADS --blockmul=500000 --nqual=0 --nminpts=30 --ordt=1 --pardeact=1 --mdse=0 --cdfn=0.55
  • non-common parameters
    • reconstruct --meval=1 --reconstruct=1
    • surf adapt --brec=1 --meval=3 --nadapt=2

10M Complexity (100M Tetrahedra)

Starting from a 50K Complexity volume mesh

Updated on 2018.05.20

Size of intial mesh

Vertices : 104,305

Tetrahedra: 581,196

All time data are given in seconds.
# Threads # Tetrahedra # Vertices Reconstruct Mesh Mesh Refinement Total Time Memory (GB)
# Iterations Par. Deactivation Par. Vertex Creation Vertex Insertion Partition Par. Reconnection
24 + 24HT 109,884,436 18,365,004 2.41 102 30.51 77.69 39.25 246.50 883.71 1280.07 25.91
Speed
# Threads # Tetrahedra/sec # Tetrahedra/sec/core # Vertices/sec # Vertices/sec/core
24 + 24HT 85,388.49 1,778.93 14,265.39 297.20

General Notes

Stability for 500k case

Comparison of Quality Metric using different amount of cores and surface adaptation

Comparison of Quality Metric using different amount of cores and mesh reconstruction

Comparison Surface Adaptation vs Mesh Reconstruction (reproducibility)

TODO needs update

Surface adaptation offers better edge lengths but mesh reconstruction slightly better mean ratio quality

Need update

50k Complexity

Starting from a coarse surface mesh

TODO needs update

All time data are given in seconds.
# Threads # Tetrahedra # Vertices Intitialize Bg Mesh Boundary Adaptation (MMGS) Boundary Recovery Mesh Refinement Total Time

(without MMGS)

Memory (GB)
# Iterations Par. Deactivation Par. Vertex Creation Vertex Insertion Partition Par. Reconnection
1 357,165 62,177 1.44 6.32 0.36 20 2.09 11.92 0.09 1.26 57.35 80.97 0.44
6 361,037 62,795 1.49 6.23 0.35 21 0.51 2.78 0.11 1.45 14.06 27.12 0.63
12 363,278 63,198 1.41 6.27 0.33 22 0.32 1.55 0.11 1.62 8.24 19.99 0.86
24 363,756 63,270 1.49 6.26 0.33 22 0.2 0.88 0.11 1.6 5.13 16.15 1.31

Notes 1

  • Speed 22.5K test/sec and 3.9 ps/sec
  • according to Mike's email mesh should be around 100k vertices
  • Metric Input Data available at https://github.com/UGAWG/parallel-adapt-results
  • Input surface is the coase mesh available at https://github.com/UGAWG/solution-adapt-cases
  • The experiments performed on a DELL workstation with Linux Red Hat Enterprise, 24 hardware cores Intel® Xeon® CPU E5-2697v2@2.70 GHz, and 757 GB RAM
  • Memory is measured at the end of Mesh refinement and thus it may reach a slightly higher value before the point of measurement
  • parameters --brec=2 --met=1 --meval=3 --mrecm2=1 --mrec4=1 --nadapt=2 --malign=0 --mpp=2 --ndfs=0 --nthreads=$THREADS --nbuckets=20*$THREADS --nthreadsaf=20*$THREADS --nbucketsaf=20*${THREADS} --blockmul=500000 --nqual=0 --nminpts=30 --ordt=0 --pardeact=1 --mdse=0
  • using commit bb7819619eb9b8831ac1d4515b9605869df72b47 or tag Delta-wiki

2M Complexity

Starting from a 50K Complexity volume mesh

needs update for ordt=1

Size of initial mesh

Vertices : 104,305

Tetrahedra: 581,196

All time data are given in seconds.
# Threads # Tetrahedra # Vertices Intitialize Bg Mesh Reconstruct Mesh Mesh Refinement Total Time Memory (GB)
# Iterations Par. Deactivation Par. Vertex Creation Vertex Insertion Partition Par. Reconnection
1 21,865,792 3,660,818 1.22 2.02 26 176.15 515.30 7.25 149.05 7,643.51 8,495.57 6.97
6 21,953,024 3,675,913 1.28 2.04 32 53.90 124.95 7.40 231.48 1,340.84 1,762.97 6.49
12 21,960,752 3,677,185 1.16 2.02 32 29.69 70.13 7.01 239.09 702.43 1,052.64 6.41
24 21,966,402 3,678,089 1.34 2.02 29 15.04 38.25 6.33 214.75 332.75 611.56 6.68


Speed
# Threads # Tetrahedra/sec # Tetrahedra/sec/core # Vertices/sec # Vertices/sec/core
1 2,573.72 2,573.72 418.63 418.63
6 12,451.97 2,075.33 2,025.90 337.65
12 20,862.00 1,738.50 3,394.21 282.85
24 35,917.69 1,496.57 5,843.72 243.49

Starting from a coarse Surface mesh

All time data are given in seconds.
# Threads # Tetrahedra # Vertices Intitialize Bg Mesh Boundary Adaptation (MMGS) Boundary Recovery Mesh Refinement Total Time

(without MMGS)

Memory (GB)
# Iterations Par. Deactivation Par. Vertex Creation Vertex Insertion Partition Par. Reconnection
1 21,972,547 3,697,482 1.44 75.89 36.64 28 167.11 402.53 7.59 144.66 7,305.68 8,143.17 7.04
6 22,097,857 3,718,978 1.47 75.71 36.00 31 51.16 99.82 8.98 198.95 1,331.57 1,805.32 5.93
12 22,096,517 3,718,207 1.46 75.68 38.99 32 28.09 54.64 8.3 214.43 685.94 1,109.18 6.0
24 22,094,983 3,718,117 1.36 76.06 38.96 30 14.43 29.23 7.38 201.29 331.19 701.51 6.04


Speed
# Threads # Tetrahedra/sec # Tetrahedra/sec/core # Vertices/sec # Vertices/sec/core
1 2,698.28 2,698.28 454.06 454.06
6 12,240.41 2,040.07 2,060.01 343.34
12 19,921.49 1,660.12 3,352.21 279.35
24 31,496.32 1,312.35 5,300.16 220.84

Notes 3

  • In speed table of volume reconstruction the initial number of tetrahedra and vertices is subtracted.
  • In speed table with surface adaptation MMGS time is not included.
  • parameters same as above