Internal:Metric Adaptive CDT3D: Difference between revisions

From crtc.cs.odu.edu
Jump to navigation Jump to search
Ctsolakis (talk | contribs)
Ctsolakis (talk | contribs)
 
(39 intermediate revisions by the same user not shown)
Line 1: Line 1:
<span id="Contents"></span>
<span id="Contents"></span>
= Delta Wing  (Scitech 2018) =
= 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]
** 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]


''' Updated on 2018.05.22'''
= Improvements =
 
[[Internal:Adaptive CDT3D - Smoothing | Metric Adaptive Smoothing ]]
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
|-
|-
| 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
|-
| 2
| 13,682.94
| 6,841.47
| 2,280.23
| 1,140.11
|-
| 4
| 25,037.78
| 6,259.44
| 4,172.90
| 1,043.22
|-
| 6
| 39,233.55
| 6,538.93
| 6,538.98
| 1,089.83
|-
| 8
| 47,403.72
| 5,925.46
| 7,899.58
| 987.45
|-
| 12
| 66,364.69
| 5,530.39
| 11,060.12
| 921.68
|-
| 16
| 84,417.76
| 5,276.11
| 14,067.57
| 879.22
|-
| 24
| 114,922.49
| 4,788.44
| 19,154.26
| 798.09
|-
| 24 + 12HT
| 128,741.27
| &mdash;
| 21,453.34
| &mdash;
|-
| 24 + 24HT
| 139,470.29
| &mdash;
| 23,243.69
| &mdash;
|}
 
 
This approach offers no boundary adaptation.
[[#Contents | Back To Top]]
 
===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
| &mdash;
| 12,913.04
| &mdash;
|-
| 24 + 24HT
| 78,825.23
| &mdash;
| 13,324.80
| &mdash;
|}
[[#Contents | Back To Top]]
 
===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>
[[#Contents | Back To Top]]
 
== 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
|}
[[#Contents | Back To Top]]
==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
| &mdash;
| 14,265.39
| &mdash;
|}
[[#Contents | Back To Top]]
 
==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
|}
[[#Contents | Back To Top]]
== Scalable complexity ==
 
{| class="wikitable" style="text-align: right;
! # Threads
! # Initial Complexity
! # Target Complexity
|-
| 1
| 50k
| 500k
|-
| 2
| 500k
| 1M
|-
| 4
| 1M
| 2M
|-
| 8
| 2M
| 4M
|-
| 16
| 4M
| 8M
|-
| 32
| 8M
| 16M
|}
=== coreV2-23-himem (Turing cluster) ===
{| class="wikitable" style="text-align: right;"
|+ All time data are given in seconds ( himem node on turing).
! rowspan="2" | # Threads
! rowspan="2" | Initial #Tetrahedra
! rowspan="2" | Inital #Vertices
! 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
| 581,196
| 104,305
| 5,516,764
| 926,798
| 2.68
| 28
| 26.15
| 21.28
| 1.62
| 3.29
| 806.01
| 861.03
| 1.83
|-
| 2
| 5,516,764
| 926,798
| 11,539,471
| 1,933,053
| 35.36
| 17
| 25.25
| 24.78
| 3.12
| 6.01
| 598.95
| 693.48
| 4.06
|-
| 4
| 11,539,471
| 1,933,053
| 23,144,340
| 3,871,241
| 70.92
| 19
| 31.84
| 27.21
| 5.85
| 11.88
| 596.05
| 743.76
| 6.93
|-
| 8
| 23,144,340
| 3,871,241
| 46,382,851
| 7,749,804
| 204.57
| 22
| 46.69
| 23.43
| 7.33
| 17.03
| 535.20
| 834.24
| 14.20
|-
| 16
| 46,382,851
| 7,749,804
| 92,749,306
| 15,487,503
| 317.11
| 27
| 70.50
| 40.30
| 27.93
| 65.46
| 696.53
| 1,217.84
| 29.08
|-
| 32
| 92,749,306
| 15,487,503
| 185,408,908
| 30,946,344
| 618.62
| 56
| 136.99
| 85.39
| 50.42
| 216.3
| 883.8
| 1,991.52
| 59.46
|}
 
{| class="wikitable" style="text-align: right;
! # Threads
! # Tetrahedra/sec
! # Tetrahedra/sec/core
! # Vertices/sec
! # Vertices/sec/core
|-
| 1
| 5,732.17
| 5,732.17
| 955.24
| 955.24
|-
| 2
| 8,684.76
| 4,342.38
| 1,451.02
| 725.51
|-
| 4
| 15,602.98
| 3,900.74
| 2,605.93
| 651.48
|-
| 8
| 27,855.91
| 3,481.99
| 4,649.22
| 581.15
|-
| 16
| 38,072.70
| 2,379.54
| 6,353.63
| 397.10
|-
| 32
| 46,527.08
| 1,453.97
| 7,762.33
| 242.57
|}
 
=== crtc-gpu ===
{| class="wikitable" style="text-align: right;"
|+ All time data are given in seconds (crtc-gpu in lab).
! rowspan="2" | # Threads
! rowspan="2" | Initial #Tetrahedra
! rowspan="2" | Inital #Vertices
! 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
| 581,196
| 104,305
| 5,516,897
| 926,820
| 2.24
| 28
| 21.14
| 19.25
| 1.55
| 3.07
| 676.20
| 723.45
| 1.82
|-
| 2
| 5,516,897
| 926,820
| 11,542,316
| 1,933,496
| 30.28
| 17
| 17.66
| 18.13
| 1.94
| 3.41
| 416.84
| 488.26
| 3.94
|-
| 4
| 11,542,316
| 1,933,496
| 23,159,373
| 3,873,738
| 61.72
| 18
| 22.58
| 20.86
| 4.93
| 10.48
| 418.44
| 539.00
| 6.96
|-
| 8
| 23,159,373
| 3,873,738
| 46,405,798
| 7,753,398
| 168.19
| 23
| 36.93
| 26.19
| 8.29
| 20.88
| 475.23
| 735.71
| 14.34
|-
| 16
| 46,405,798
| 7,753,398
| 92,786,435
| 15,493,130
| 305.83
| 32
| 62.40
| 35.86
| 15.78
| 50.83
| 561.35
| 1,032.06
| 29.41
|-
| 24
| 92,786,435
| 15,493,130
| 144,584,441
| 24,132,712
| 546.54
| 36
| 134.26
| 41.90
| 23.26
| 76.29
| 493.90
| 1,316.15
| 45.19
|-
| 24 + 12HT
| 144,584,441
| 24,132,712
| 215,865,522
| 36,034,558
| 1,172.70
| 34
| 216.46
| 57.87
| 30.66
| 109.77
| 585.90
| 2,173.36
| 67.39
|-
| 24 + 24HT
| 215,865,522
| 36,034,558
| 322,632,552
| 53,862,057
| 1,447.57
| 50
| 284.30
| 94.22
| 36.90
| 239.08
| 885.71
| 2,987.80
| 100.32
|}
 
{| class="wikitable" style="text-align: right;
! # Threads
! # Tetrahedra/sec
! # Tetrahedra/sec/core
! # Vertices/sec
! # Vertices/sec/core
|-
|-
| 1
| 6,822.45
| 6,822.45
| 1,136.93
| 1,136.93
|-
| 2
| 12,340.60
| 6,170.30
| 2,061.76
| 1,030.88
|-
| 4
| 21,552.98
| 5,388.25
| 3,599.71
| 899.93
|-
| 8
| 31,597.27
| 3,949.66
| 5,273.35
| 659.17
|-
| 16
| 44,939.86
| 2,808.74
| 7,499.30
| 468.71
|-
| 24
| 39,355.70
| 1,639.82
| 6,564.28
| 273.51
|-
| 24 + 12HT
| 32,797.64
| &mdash;
| 5,476.24
| &mdash;
|-
| 24 + 24HT
| 35,734.33
| &mdash;
| 5,966.76
| &mdash;
|}
 
=== Specifications ===
{| class="wikitable" style="text-align: center;
!width="11%"| hostname
!width="4%"| nodes
!width="7%"| memory (GB)
!width="7%"| cache (MB)
!width="20%"| Model Name
!width="4%"| Turbo
!width="8%"| Cores per node
!width="9%"| Threads per core
!width="5%"| sockets
!width="9%"| Cores per socket
!width="10%"| NUMA-nodes
|-
| coreV2-23-himem-*
| 4
| 757
| 16
| Intel® Xeon® E5-4610 v2 @ 2.30GHz
| 2.70GHz
| 32
| 1
| 4
| 8
| [0-7],[8-15],[16-23],[24-31]
|-
| crtc-gpu
| 1
| 757
| 30
| Intel® Xeon® E5-2697 v2 @ 2.70GHz
| 3.50GHz
| 24
| 2
| 2
| 12
| [0,2,..46],[1,3..47]
|}
 
=== Notes ===
In speed table the  initial number of tetrahedra and vertices is subtracted.
 
[[#Contents | Back To Top]]
== Scalable complexity (In-memory) ==
 
{| class="wikitable" style="text-align: right;
! # Threads
! # Initial Complexity
! # Target Complexity
|-
| 1
| 50k
| 500k
|-
| 2
| 500k
| 1M
|-
| 4
| 1M
| 2M
|-
| 8
| 2M
| 4M
|-
| 16
| 4M
| 8M
|-
| 32
| 8M
| 16M
|}
<!--
=== coreV2-23-himem (Turing cluster) ===
{| class="wikitable" style="text-align: right;"
|+ All time data are given in seconds ( himem node on turing).
! rowspan="2" | # Threads
! rowspan="2" | Initial #Tetrahedra
! rowspan="2" | Inital #Vertices
! 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
| 581,196
| 104,305
| 5,516,764
| 926,798
| 2.68
| 28
| 26.15
| 21.28
| 1.62
| 3.29
| 806.01
| 861.03
| 1.83
|-
| 2
| 5,516,764
| 926,798
| 11,539,471
| 1,933,053
| 35.36
| 17
| 25.25
| 24.78
| 3.12
| 6.01
| 598.95
| 693.48
| 4.06
|-
| 4
| 11,539,471
| 1,933,053
| 23,144,340
| 3,871,241
| 70.92
| 19
| 31.84
| 27.21
| 5.85
| 11.88
| 596.05
| 743.76
| 6.93
|-
| 8
| 23,144,340
| 3,871,241
| 46,382,851
| 7,749,804
| 204.57
| 22
| 46.69
| 23.43
| 7.33
| 17.03
| 535.20
| 834.24
| 14.20
|-
| 16
| 46,382,851
| 7,749,804
| 92,749,306
| 15,487,503
| 317.11
| 27
| 70.50
| 40.30
| 27.93
| 65.46
| 696.53
| 1,217.84
| 29.08
|-
| 32
| 92,749,306
| 15,487,503
| 185,408,908
| 30,946,344
| 618.62
| 56
| 136.99
| 85.39
| 50.42
| 216.3
| 883.8
| 1,991.52
| 59.46
|}
 
{| class="wikitable" style="text-align: right;
! # Threads
! # Tetrahedra/sec
! # Tetrahedra/sec/core
! # Vertices/sec
! # Vertices/sec/core
|-
| 1
| 5,732.17
| 5,732.17
| 955.24
| 955.24
|-
| 2
| 8,684.76
| 4,342.38
| 1,451.02
| 725.51
|-
| 4
| 15,602.98
| 3,900.74
| 2,605.93
| 651.48
|-
| 8
| 27,855.91
| 3,481.99
| 4,649.22
| 581.15
|-
| 16
| 38,072.70
| 2,379.54
| 6,353.63
| 397.10
|-
| 32
| 46,527.08
| 1,453.97
| 7,762.33
| 242.57
|}
 
-->
=== crtc-gpu ===
{| class="wikitable" style="text-align: right;"
|+ All time data are given in seconds (crtc-gpu in lab).
! rowspan="2" | # Threads
! rowspan="2" | Initial #Tetrahedra
! rowspan="2" | Inital #Vertices
! 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
| 581,196
| 104,305
| 5,518,302
| 927,037
| 2.32
| 28
| 21.14
| 19.69
| 1.86
| 3.03
| 666.85
| 714.9
| 1.31
|-
| 2
| 5,518,302
| 927,037
| 11,545,330
| 1,933,909
| 1.14
| 20
| 19.83
| 19.71
| 2.09
| 5.39
| 434.2
| 482.37
| 2.88
|-
| 4
| 11,545,330
| 1,933,909
| 23,149,586
| 3,872,172
| 2.25
| 18
| 26.56
| 21.44
| 4.52
| 11.76
| 427.75
| 494.27
| 6.17
|-
| 8
| 23,149,586
| 3,872,172
| 46,385,466
| 7,750,277
| 4.43
| 22
| 40.99
| 27.85
| 9.14
| 26.85
| 479.93
| 589.2
| 12.74
|-
| 16
| 46,385,466
| 7,750,277
| 92,735,435
| 15,485,328
| 8.78
| 24
| 68.22
| 32.9
| 21.54
| 60.03
| 511.3
| 702.77
| 26.31
|-
| 24
| 92,735,435
| 15,485,328
| 144,597,166
| 24,134,542
| 16.3
| 24
| 148.9
| 36.53
| 22.98
| 70.57
| 441.35
| 736.64
| 38.73
|-
| 24 + 12HT
| 144,597,166
| 24,134,542
| 215,870,539
| 36,035,622
| 26.36
| 31
| 234.19
| 55.68
| 32.39
| 117.05
| 560.93
| 1026.59
| 56.71
|-
| 24 + 24HT
| 215,870,539
| 36,035,622
| 283,765,240
| 47,382,178
| 38.57
| 43
| 366.23
| 66.06
| 31.75
| 175.54
| 625.97
| 1,304.12
| 71.24
|}
 
{| class="wikitable" style="text-align: right;
! # Threads
! # Tetrahedra/sec
! # Tetrahedra/sec/core
! # Vertices/sec
! # Vertices/sec/core
|-
|1
| 6,906.01
| 6,906.01
| 1,150.84
| 1,150.84
|-
| 2
| 12,494.62
| 6,247.31
| 2,087.34
| 1,043.67
|-
| 4
| 23,477.56
| 5,869.39
| 3,921.47
| 980.37
|-
| 8
| 39,436.32
| 4,929.54
| 6,581.98
| 822.75
|-
| 16
| 65,953.25
| 4,122.08
| 11,006.52
| 687.91
|-
| 24
| 70,403.09
| 2,933.46
| 11,741.44
| 489.23
|-
| 24 +12HT
| 69,427.30
| &mdash;
| 11,592.83
| &mdash;
|-
| 24 +24HT
| 52,061.70
| &mdash;
| 8,700.55
| &mdash;
|}
 
=== Notes ===
* Memory pools where transferred from one run to the next one .
* Total time for modifying the complexity in this series of tests is 334.899 secs ( using 48 OpenMP threads)
 
 
[[#Contents | Back To Top]]
 
= Cube (polar-2 metric)  (Scitech 2018) =
=== Starting from a 8K Complexity volume mesh ===
''' Updated on 2018.05.22'''
 
Size of intial mesh
 
Vertices : 17,767
 
Tetrahedra: 91,414
 
{| 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,824,738
| 981,297
| 0.47
| 37
| 29.47
| 31.40
| 2.27
| 6.38
| 978.43
| 1,048.43
| 1.85
|-
| 2
| 5,849,206
| 985,342
| 0.86
| 39
| 15.98
| 18.39
| 2.01
| 6.54
| 468.29
| 512.08
| 1.77
|-
| 4
| 5,858,367
| 986,927
| 0.77
| 39
| 8.32
| 9.92
| 1.94
| 6.86
| 244.80
| 272.62
| 1.43
|-
| 8
| 5,877,203
| 990,141
| 0.73
| 42
| 4.64
| 5.97
| 1.87
| 7.33
| 134.06
| 154.6
| 1.55
|-
| 16
| 5,878,983
| 990,525
| 0.74
| 49
| 2.84
| 4.40
| 1.85
| 8.14
| 80.86
| 98.82
| 1.63
|}
 
{| class="wikitable" style="text-align: right;"
|+ Speed
! # Threads
! # Tetrahedra/sec
! # Tetrahedra/sec/core
! # Vertices/sec
! # Vertices/sec/core
|-
| 1
| 5,468.49
| 5,468.49
| 919.02
| 919.02
|-
| 2
| 11,243.93
| 5,621.97
| 1,889.50
| 944.75
|-
| 4
| 21,153.81
| 5,288.45
| 3,554.98
| 888.75
|-
| 8
| 37,424.25
| 4,678.03
| 6,289.61
| 786.20
|-
| 16
| 58,566.78
| 3,660.42
| 9,843.74
| 615.23
|}
 
 
This approach offers no boundary adaptation.


= 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]]
[[#Contents | Back To Top]]
[[#Contents | Back To Top]]
= Stability for 500k case=
== Comparison of Quality Metric using different amount of cores and surface adaptation ==
[[File:Histogram_mean_adapt.png|500px]]
[[File:Histogram_ratio_adapt.png|500px]]
[[#Contents | Back To Top]]
== Comparison of Quality Metric using different amount of cores and mesh reconstruction ==
[[File:Histogram_mean_reconstruct.png|500px]]
[[File:Histogram_ratio_reconstruct.png|500px]]
[[#Contents | Back To Top]]
==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
|}
[[#Contents | Back To Top]]
=== 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>
[[#Contents | Back To Top]]
==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
|}
[[#Contents | Back To Top]]
=== 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
|}
[[#Contents | Back To Top]]
=== 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