Internal:Metric Adaptive CDT3D: Difference between revisions
Jump to navigation
Jump to search
→Notes 2: add clarifications |
|||
| Line 334: | Line 334: | ||
===Notes 2=== | ===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! | * 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 tets is subtracted. | |||
* In speed table of with surface adaptation MMGS time is not included. | |||
* [[Internal:ACDT3D#Comparison_Surface_Adaptation_vs_Mesh_Reconstruction_(reproducibility)| Quality comparison starting from surface vs volume]] | * [[Internal:ACDT3D#Comparison_Surface_Adaptation_vs_Mesh_Reconstruction_(reproducibility)| 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. | * in some cases boundary recovery reached a point of non-developed code. Rerunning created a different surface mesh and CDT3D was able to continue. | ||
Revision as of 09:54, 18 May 2018
Delta Wing (Scitech 2018)
50k Complexity
Starting from a coarse surface mesh
TODO needs update
| # 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
bb7819619eb9b8831ac1d4515b9605869df72b47or tagDelta-wiki
500k Complexity
Starting from a 50K Complexity volume mesh
Size of intial mesh
Vertices : 104,305
Tetrahedra: 581,196
| # 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 | 5,466,298 | 918,571 | 1.17 | 2.02 | 25 | 43.68 | 121.19 | 1.65 | 36.80 | 1,544.07 | 1,751.65 | 1.90 |
| 6 | 5,510,057 | 925,969 | 1.48 | 2.02 | 25 | 10.86 | 29.01 | 1.51 | 43.20 | 233.74 | 322.88 | 1.84 |
| 12 | 5,516,846 | 926,995 | 1.16 | 2.02 | 28 | 6.64 | 18.11 | 1.49 | 51.67 | 134.58 | 216.75 | 1.92 |
| 24 | 5,528,216 | 928,833 | 1.16 | 2.02 | 26 | 3.68 | 9.42 | 1.51 | 47.82 | 69.23 | 135.92 | 2.15 |
| # Threads | # Tetrahedra/sec | # Tetrahedra/sec/cores | # Vertices/sec | # Vertices/sec/cores |
|---|---|---|---|---|
| 1 | 3,120.32 | 3,120.32 | 464.86 | 464.86 |
| 6 | 17,063.54 | 2,843.92 | 2,544.80 | 424.13 |
| 12 | 25,449.90 | 2,120.82 | 3,795.57 | 316.30 |
| 24 | 40,668.30 | 1,694.51 | 6,066.27 | 252.76 |
This approach offers no boundary adaptation.
Starting for a coarse surface mesh
| # 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,591,132 | 944,921 | 1.18 | 29.83 | 6.64 | 25 | 37.81 | 100.53 | 1.68 | 31.26 | 1312.99 | 1522.47 | 1.96 |
| 6 | 5,612,549 | 948,750 | 1.19 | 30.72 | 6.50 | 25 | 10.36 | 25.56 | 2.08 | 40.25 | 239.71 | 356.97 | 1.72 |
| 12 | 5,609,318 | 948,236 | 1.26 | 29.93 | 5.72 | 27 | 6.08 | 14.41 | 1.77 | 44.13 | 132.19 | 236.05 | 1.79 |
| 24 | 5,625,028 | 950,712 | 1.47 | 29.76 | 6.21 | 26 | 3.19 | 7.67 | 1.68 | 42.16 | 67.32 | 160.01 | 2.09 |
| # Threads | # Tetrahedra/sec | # Tetrahedra/sec/cores | # Vertices/sec | # Vertices/sec/cores |
|---|---|---|---|---|
| 1 | 3,672.41 | 3,672.41 | 620.65 | 620.65 |
| 6 | 15,722.75 | 2,620.46 | 2,657.79 | 442.96 |
| 12 | 23,763.26 | 1,980.27 | 4,017.10 | 334.76 |
| 24 | 35,154.23 | 1,464.76 | 5,941.58 | 247.57 |
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 tets is subtracted.
- In speed table of with surface adaptation MMGS time is not included.
- 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
b53ed9b - parameters
--met=1 --meval=3 --mrecm2=1 --mrec4=1 --nadapt=1 --reconstruct=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=0 --pardeact=1 --mdse=0 --cdfn=0.55
2M Complexity
Starting from a 50K Complexity volume mesh
Size of initial mesh
Vertices : 104,305
Tetrahedra: 581,196
| # 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 |
Starting from a coarse Surface mesh
| # 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 |
General Notes
- smoothing : Tetrahedral Mesh Improvement Using Swapping and Smoothing, Lori A. Freitag and Carl Ollivier-Gooch PDF
- An Efficient Method to Solve the Minmax Problem Directly, C. Charalambous and A. R. Conn PDF
- Comparison for quality criteria for ACDT3D
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