Internal:Metric Adaptive CDT3D: Difference between revisions

From crtc.cs.odu.edu
Jump to navigation Jump to search
Ctsolakis (talk | contribs)
mNo edit summary
Ctsolakis (talk | contribs)
 
(86 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Delta Wing  (Scitech 2018) =
<span id="Contents"></span>
= Data =
[[Internal:Adaptive CDT3D Results | Adaptive CDT3D Results ]]


[[File:Delta_wing_50k_parallel_scitech.png| 500px]]
= Integration with SU2 =
* SU2 + refine + CDT3D pipeline [http://www.cs.odu.edu/crtc/SU2/SU2_pipeline.svg]
* SU2 + refine + CDT3D, ONERAM6 invicid [http://www.cs.odu.edu/crtc/SU2/onera_invicid.pdf]


==500k Complexity ==
* SU2 + refine + CDT3D, steady laminar flow low mach number over delta wing
=== Starting from a 50K Complexity volume mesh ===
** meshes [http://www.cs.odu.edu/crtc/SU2/delta_wing.pdf]
''' Updated on 2018.05.20'''
** solution cuts of the vortex [http://www.cs.odu.edu/crtc/SU2/delta_vortex.pdf]
**  video [http://www.cs.odu.edu/crtc/SU2/delta_wing_005.ogv]


Size of intial mesh
= Improvements =
 
[[Internal:Adaptive CDT3D - Smoothing | Metric Adaptive Smoothing ]]
Vertices : 104,305
 
Tetrahedra: 581,196
 
{| class="wikitable" style="text-align: right;"
|+ All time data are given in seconds.
! rowspan="2" | # Threads
! rowspan="2" | # Tetrahedra
! rowspan="2" | # Vertices
! rowspan="2" | Reconstruct Mesh
! colspan="6" style="text-align: center;" | Mesh Refinement
! rowspan="2" | Total Time
! rowspan="2" | 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
|-
| 2
| 5,557,272
| 933,556
| 2.41
| 28
| 11.36
| 11.85
| 1.82
| 3.47
| 332.76
| 363.67
| 1.7
|-
| 4
| 5,551,696
| 932,709
| 2.48
| 30
| 6.22
| 6.86
| 1.74
| 3.57
| 177.65
| 198.52
| 1.43
|-
| 6
| 5,561,503
| 934,363
| 2.39
| 26
| 3.95
| 4.37
| 1.55
| 3.13
| 111.55
| 126.94
| 1.46
|-
| 8
| 5,563,801
| 934,630
| 2.36
| 27
| 3.27
| 3.93
| 1.66
| 3.32
| 90.57
| 105.11
| 1.47
|-
| 12
| 5,563,857
| 934,699
| 2.44
| 28
| 2.27
| 2.99
| 1.62
| 3.23
| 62.54
| 75.08
| 1.58
|-
| 16
| 5,558,467
| 933,729
| 2.68
| 27
| 1.76
| 2.88
| 1.59
| 3.26
| 46.78
| 58.96
| 1.5
|-
| 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
|}
 
{| class="wikitable" style="text-align: right;"
|+ 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'''
 
{| class="wikitable" style="text-align: right;"
|+ All time data are given in seconds.
! rowspan="2" | # Threads
! rowspan="2" | # Tetrahedra
! rowspan="2" | # Vertices
! rowspan="2" | Intitialize Bg Mesh
! rowspan="2" | Boundary Adaptation (MMGS)
! rowspan="2" | Boundary Recovery
! colspan="6" style="text-align: center;" | Mesh Refinement
! rowspan="2" | Total Time
(without MMGS)
! rowspan="2" | 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
|}
 
{| class="wikitable" style="text-align: right;"
|+ 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.
* [[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.
* commit <code> fb0f106c6b65107 </code>
* common parameters <code> --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</code>
* non-common parameters
**reconstruct <code> --meval=1 --reconstruct=1 </code>
** surf adapt <code> --brec=1 --meval=3 --nadapt=2 </code>
 
== 1M Complexity (~12M Tetrahedra) ==
=== Starting from a 50K Complexity volume mesh ===
''' Updated on 2018.05.20'''
 
Size of intial mesh
 
Vertices : 104,305
 
Tetrahedra: 581,196
 
{| class="wikitable" style="text-align: right;"
|+ All time data are given in seconds.
! rowspan="2" | # Threads
! rowspan="2" | # Tetrahedra
! rowspan="2" | # Vertices
! rowspan="2" | Reconstruct Mesh
! colspan="6" style="text-align: center;" | Mesh Refinement
! rowspan="2" | Total Time
! rowspan="2" | Memory (GB)
|-
! # Iterations
! Par. Deactivation
! Par. Vertex Creation
! Vertex Insertion
! Partition
! Par. Reconnection
|-
| 24 + 24HT
| 11,130,150                           
| 1,865,647                                                                                                             
| 2.15                                                           
| 29                                                           
| 1.94                                                           
| 6.88                                                           
| 3.53                                                           
| 8.25                                                           
| 52.12                                                           
| 74.88                                                           
| 3.53
|}
 
{| class="wikitable" style="text-align: right;"
|+ Speed
! # Threads
! # Tetrahedra/sec
! # Tetrahedra/sec/core
! # Vertices/sec
! # Vertices/sec/core
|-
| 24 + 24HT
|140,878.13
| 2,934.96
| 23,522.20
| 490.05
|}
 
==10M Complexity (~120M Tetrahedra) ==
=== Starting from a 50K Complexity volume mesh ===
''' Updated on 2018.05.20'''
 
Size of intial mesh
 
Vertices : 104,305
 
Tetrahedra: 581,196
 
{| class="wikitable" style="text-align: right;"
|+ All time data are given in seconds.
! rowspan="2" | # Threads
! rowspan="2" | # Tetrahedra
! rowspan="2" | # Vertices
! rowspan="2" | Reconstruct Mesh
! colspan="6" style="text-align: center;" | Mesh Refinement
! rowspan="2" | Total Time
! rowspan="2" | 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
 
|}
 
{| class="wikitable" style="text-align: right;"
|+ 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
|}
==100M Complexity (~1.2B Tetrahedra) ==
=== Starting from a 50K Complexity volume mesh ===
''' Updated on 2018.05.20'''
 
Size of intial mesh
 
Vertices : 104,305
 
Tetrahedra: 581,196
 
{| class="wikitable" style="text-align: right;"
|+ All time data are given in seconds.
! rowspan="2" | # Threads
! rowspan="2" | # Tetrahedra
! rowspan="2" | # Vertices
! rowspan="2" | Reconstruct Mesh
! colspan="6" style="text-align: center;" | Mesh Refinement
! rowspan="2" | Total Time
! rowspan="2" | Memory (GB)
|-
! # Iterations
! Par. Deactivation
! Par. Vertex Creation
! Vertex Insertion
! Partition
! Par. Reconnection
|-
| 24 + 24HT
| 1,096,524,832
| 183,097,400
| 2.90
| 236
| 509.81
| 950.33
| 389.19
| 4.731.73
| 14,991.60
| 21,575.50
| 247.17
|}
 
{| class="wikitable" style="text-align: right;"
|+ Speed
! # Threads
! # Tetrahedra/sec
! # Tetrahedra/sec/core
! # Vertices/sec
! # Vertices/sec/core
|-
| 24 + 24HT
| 50,795.75
| 1,058.24
| 8,481.52
| 176.70
|}


= General Notes =
= General Notes =
* smoothing : [https://onlinelibrary.wiley.com/doi/abs/10.1002/%28SICI%291097-0207%2819971115%2940%3A21%3C3979%3A%3AAID-NME251%3E3.0.CO%3B2-9 Tetrahedral Mesh Improvement Using Swapping and Smoothing, Lori A. Freitag and Carl Ollivier-Gooch ] [http://www.cs.odu.edu/crtc/internal/Christos/Freitag_et_al-1997-International_Journal_for_Numerical_Methods_in_Engineering.pdf PDF]
* [https://epubs.siam.org/doi/abs/10.1137/0715011 An Efficient Method to Solve the Minmax Problem Directly, C. Charalambous and A. R. Conn ] [http://www.cs.odu.edu/crtc/internal/Christos/Charalambous_An_Efficient_Method_To_Solve_The_Minmax_problem_directly.pdf PDF]
* [[Internal:ACDT3D_Quality_Criteria | Comparison for quality criteria for ACDT3D]]
* [[Internal:ACDT3D_Quality_Criteria | Comparison for quality criteria for ACDT3D]]
 
* [[Internal:ACDT3D_(Scitech2018)_stability_data | Stability Data for 500k]]
= Stability for 500k case=
[[#Contents | Back To Top]]
== Comparison of Quality Metric using different amount of cores and surface adaptation ==
[[File:Histogram_mean_adapt.png|500px]]
[[File:Histogram_ratio_adapt.png|500px]]
== Comparison of Quality Metric using different amount of cores and mesh reconstruction ==
[[File:Histogram_mean_reconstruct.png|500px]]
[[File:Histogram_ratio_reconstruct.png|500px]]
 
==Comparison Surface Adaptation vs Mesh Reconstruction (reproducibility) ==
 
''' TODO needs update '''
 
[[File:Histogram_mean_compare.png|500px]]
[[File:Histogram_ratio_compare.png|500px]]
 
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'''
{| class="wikitable" style="text-align: right;"
|+ All time data are given in seconds.
! rowspan="2" | # Threads
! rowspan="2" | # Tetrahedra
! rowspan="2" | # Vertices
! rowspan="2" | Intitialize Bg Mesh
! rowspan="2" | Boundary Adaptation (MMGS)
! rowspan="2" | Boundary Recovery
! colspan="6" style="text-align: center;" | Mesh Refinement
! rowspan="2" | Total Time
(without MMGS)
! rowspan="2" | 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/tree/master/delta-wing/fun3d-fv-lp2 https://github.com/UGAWG/parallel-adapt-results ]
* Input surface is the coase mesh available at [https://github.com/UGAWG/solution-adapt-cases/delta-wing/initial-grid/delta01.meshb 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 <code> --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  </code>
* using commit <code> bb7819619eb9b8831ac1d4515b9605869df72b47</code> or tag <code> Delta-wiki </code>
 
==2M Complexity ==
=== Starting from a 50K Complexity volume mesh ===
''' needs update for ordt=1 '''
 
Size of initial mesh
 
Vertices : 104,305
 
Tetrahedra: 581,196
 
{| class="wikitable" style="text-align: right;"
|+ All time data are given in seconds.
! rowspan="2" | # Threads
! rowspan="2" | # Tetrahedra
! rowspan="2" | # Vertices
! rowspan="2" | Intitialize Bg Mesh
! rowspan="2" | Reconstruct Mesh
! colspan="6" style="text-align: center;" | Mesh Refinement
! rowspan="2" | Total Time
! rowspan="2" | 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
|}
 
 
{| class="wikitable" style="text-align: right;"
|+ 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 ===
{| class="wikitable" style="text-align: right;"
|+ All time data are given in seconds.
! rowspan="2" | # Threads
! rowspan="2" | # Tetrahedra
! rowspan="2" | # Vertices
! rowspan="2" | Intitialize Bg Mesh
! rowspan="2" | Boundary Adaptation (MMGS)
! rowspan="2" | Boundary Recovery
! colspan="6" style="text-align: center;" | Mesh Refinement
! rowspan="2" | Total Time
(without MMGS)
! rowspan="2" | 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
|}
 
 
{| class="wikitable" style="text-align: right;"
|+ 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

Latest revision as of 12:42, 22 November 2018

Data

Adaptive CDT3D Results

Integration with SU2

  • SU2 + refine + CDT3D pipeline [1]
  • SU2 + refine + CDT3D, ONERAM6 invicid [2]
  • SU2 + refine + CDT3D, steady laminar flow low mach number over delta wing
    • meshes [3]
    • solution cuts of the vortex [4]
    • video [5]

Improvements

Metric Adaptive Smoothing

General Notes

Back To Top