Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

1 Load balancing issues. 2 ORTHOTROPIC HEAT EQUATION BATERY PROBLEM FROM SANDIA NATIONAL LABORATORIES 5 materials, some orthotropic some not requires.

Podobne prezentacje


Prezentacja na temat: "1 Load balancing issues. 2 ORTHOTROPIC HEAT EQUATION BATERY PROBLEM FROM SANDIA NATIONAL LABORATORIES 5 materials, some orthotropic some not requires."— Zapis prezentacji:

1 1 Load balancing issues

2 2 ORTHOTROPIC HEAT EQUATION BATERY PROBLEM FROM SANDIA NATIONAL LABORATORIES 5 materials, some orthotropic some not requires anisotropic refinements large jumps in material data generate singularities at 3-material interfaces Heat transfer coefficients for different materials Heat source values for different materials

3 3 ORTHOTROPIC HEAT EQUATION BATERY PROBLEM FROM SANDIA NATIONAL LABORATORIES 5 materials, some orthotropic some not requires anisotropic refinements large jumps in material data generate singularities at 3-material interfaces Boundary conditions on Boundary condition data for different materials

4 4 ORTHOTROPIC HEAT EQUATION BATERY PROBLEM FROM SANDIA NATIONAL LABORATORIES Variational formulation

5 5 RESULTS THE BATTERY PROBLEM The solution with the accuracy of 0.1% relative error. Exponential convergence for hp adaptation

6 6 COARSE MESH, FINE MESH AND OPTIMAL MESH Initial mesh = coarse mesh for the 1st step of the iteration Fine meshOptimal mesh Optimal mesh = coarse mesh for the 2nd step of the iteration

7 7 RESULTS THE BATTERY PROBLEM Optimal mesh obtained after parallel iterations over 15 subdomains giving the accuracy of 0.1 % relative error.

8 8 PERFORMANCE MEASURMENTS Computation times for each part of the sequential code, measured during each hp-adaptive iteration

9 9 RESULTS THE BATTERY PROBLEM Partition of hp-refined mesh into 15 processors

10 10 PERFORMANCE MEASURMENTS Computation times for each part of the parallel code, executed over 16 processors measured during each hp-adaptive iteration

11 11 PERFORMANCE MEASURMENTS Computation times for each part of the parallel code, executed over 32 processors measured during each hp-adaptive iteration

12 12 PERFORMANCE MEASURMENTS When load over one element is higher then overall load for all other elements, the optimal load balance uses only 2 processors

13 13 PERFORMANCE MEASURMENTS Load distribution over 32 processors during particular iterations Only 16 processors are working

14 14 PERFORMANCE MEASURMENTS The load balancing is performed on the level of initial mesh elements. In the Sandia battery problem, there are 16 initial mesh elements covering areas with strongest singularities. Most of hp-refinements are required in the neighborhood of these areas. Optimal load balancing needs only 16 processors.

15 15 PERFORMANCE MEASURMENTS Computation times for each part of the parallel code, executed over 16 processors measured during each hp-adaptive iteration

16 (ph,pv) oznaczają stopień aproksymacji wielomianowej w kierunkach x i y nrdof = ilość stopni swobody na elemencie = (ph+1)* (pv+1) CAŁKOWANIE NA POJEDYNCZYM ELEMENCIE 2D for m=1,ph+1 for n=1,pv+1 for j=1,nrdof for i=1,nrdof aggregate into element stiffness matrix aggregate into element load vector Dla ph=pv=p złożoność obliczeniowa O(p^6) Dla wysokich p=9 koszt całkowania na pojedynczym elemencie O(10^6)

17 17 Jak podzielić obszar na podobszary? Hilbert Space Filling Curve W przypadku dziedziny dwuwymiarowej, algorytm umieszcza całą dziedzinę obliczeniową w obszarze kwadratowym a następnie konstruuje tzw. krzywą Hilberta, która pokrywa cały obszar

18 18 Jak skonstruować krzywą Hilberta? Dzielimy kwadrat na 4 mniejsze kwadraty. Rysujemy krzywą łączącą środki poszczególnych kwadratów. Otrzymujemy krzywą H1.

19 19 Jak skonstruować krzywą Hilberta? Jeśli potrzebujemy większą dokładność krzywej Hilberta, to na każdym z tych czterech kwadratów konstruujemy podobne krzywe Hilberta i następnie łączymy je w całość. Otrzymujemy w ten sposób krzywą H2

20 20 Jak skonstruować krzywą Hilberta? W jaki sposób określać orientacje krzywych? Ogólna reguła: Jeśli segment krzywej Hilberta z poprzedniego kroku który zagęszczamy ma następującą orientacje: to wówczas orientacja nowych krzywych będzie następująca:

21 21 Jak podzielić obszar na podobszary? Hilbert Space Filling Curve W naszym przypadku krzywa Hilberta H2 przechodzi przez wszystkie elementy skończone w obszarze siatki

22 22 Jak podzielić obszar na podobszary? Hilbert Space Filling Curve Wybieramy podział na odpowiednią liczbę podobszarów

23 23 Jak podzielić obszar na podobszary? Hilbert space filling curve Umieszczamy siatkę problemu trójwymiarowego w kostce.

24 24 Jak podzielić obszar na podobszary? Hilbert space filling curve Dzielimy kostkę na 8 mniejszych kostek Łączymy środki kostek zgodnie ze wzorcem:

25 25 Jak podzielić obszar na podobszary? Hilbert space filling curve Następnie jeśli potrzebujemy większą dokładność, to z każdą mniejszą kostką postępujemy analogicznie.

26 26 Jak podzielić obszar na podobszary? Hilbert space filling curve Następnie jeśli potrzebujemy większą dokładność, to z każdą mniejszą kostką postępujemy analogicznie.

27 27 Jak podzielić obszar na podobszary? Hilbert space filling curve Następnie dzielimy krzywą Hilberta na równe kawałki, i według tego podziału dzielimy obszar obliczeniowy, np. na 3 lub 7 podobszarów

28 28 Jak podzielić obszar na podobszary? Hilbert space filling curve Gdy siatka obliczeniowa nie jest regularna (np. zawiera elementy o różnej wielkości oraz elementy o różnym stopniu aproksymacji wielomianowej) wówczas optymalny podział uzyskany metodą krzywej Hilberta również wygląda nieregularnie

29 29 Jak podzielić obszar na podobszary? Recursive bisection direction = (1,0,0) nbeg = 1; nend = number_of_elements; call bisection(direction,nbeg,nend,nlevel ) recursive subroutine bisection(direction,ibeg,iend,ilevel) call sort_elements_along_direction(direction,ibeg,iend) call rotate_direction(direction) ihalf = (iend+ibeg)/2 if(ihalf>ibeg)then nbeg = ibeg; nhalf = ihalf; nlevel = ilevel+1; call bisection(direction,nbeg,nhalf,nlevel) endif if(ihalf<iend)then nend = iend; nhalf = ihalf+1; nlevel = ilevel+1; call bisection(direction,nhalf,nend,nlevel) endif

30 30 Jak podzielić obszar na podobszary? Biblioteki udostępniające algorytmy podziału obszaru obliczeniowego: ZOLTAN http://www.cs.sandia.gov/Zoltanhttp://www.cs.sandia.gov/Zoltan ParMETIS http://glaros.dtc.umn.edu/gkhome/metis/parmetishttp://glaros.dtc.umn.edu/gkhome/metis/parmetis Jostle http://staffweb.cms.gre.ac.uk/~c.walshaw/jostle/http://staffweb.cms.gre.ac.uk/~c.walshaw/jostle/


Pobierz ppt "1 Load balancing issues. 2 ORTHOTROPIC HEAT EQUATION BATERY PROBLEM FROM SANDIA NATIONAL LABORATORIES 5 materials, some orthotropic some not requires."

Podobne prezentacje


Reklamy Google