zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady...
TRANSCRIPT
![Page 1: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/1.jpg)
Zaawansowanemetodyobliczeńnumerycznych
2018
![Page 2: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/2.jpg)
Zaawansowane…?
• Algorytmy(skuteczniejsze)• Dokładnośćobliczeń!• Szybkośćobliczeń• Obliczeniarównoległe• Paradygmatyprogramowania• Językiprogramowania• Biblioteki• Narzędziaprogramisty• Elementyteoriiobliczeń
�2
![Page 3: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/3.jpg)
…przykłady
• MnożeniemacierzyA1A2…An-1An• Numeryczneobliczaniepochodnych,całek.MetodaRichardsona.
• Obliczaniepinapprocesorach.• Fortran,java,prolog,haskel,…• Typydefiniowane,parametryzowane• BLAS,Lapack,BLACS,MKL,itd.• make,gawk,sed,emacs• Problemstopu.MaszynaTuringa.Rozstrzygalność.
�3
![Page 4: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/4.jpg)
MNOŻENIE2MACIERZY-KOSZTMnożeniemacierzy
�4
![Page 5: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/5.jpg)
Macierze.PseudokodC=ABKosztmnożenia2macierzy.(Cormen,Leiserson,Rivest)
MATRIX-MULTIPLY(A, B)1 if columns[A] ≠ rows[B]2 then error "incompatible dimensions"3 else for i ← 1 to rows[A]4 do for j ← 1 to columns[B]5 do C[i, j] ← 06 for k ← 1 to columns[A]7. do C[i, j] ← C[i, j] + A[i, k] ° B[k, j]8 return C
KOSZT: ~ p*q*r
�5
![Page 6: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/6.jpg)
MNOŻENIEWIELUMACIERZYMnożeniemacierzy
�6
![Page 7: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/7.jpg)
TEST(2-3minuty)
Proszepoliczyć
JAKIJESTKOSZTMNOŻENIA
A1(300,10)A2(10,300)A3(300,10)?
�7
![Page 8: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/8.jpg)
A1(300,10)A2(10,300)A3(300,10)
• [A1(300,10)xA2(10,300)]xA3(300,10)=>• 300*10*300+300*300*10=1800000
• A1(300,10)x[A2(10,300)xA3(300,10)]• 10*300*10+300*10*10=60000
• 1800000/60000=3000razyszybciej!�8
![Page 9: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/9.jpg)
ALGORYTMMnożeniemacierzy
�9
![Page 10: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/10.jpg)
A1A2A3A4A5
�10
![Page 11: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/11.jpg)
MEMOIZATION-WYNIKIPOWTARZANE
Mnożeniemacierzy
�11
![Page 12: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/12.jpg)
memoization(WIKIPEDIA)
N o t t o b e c o n f u s e d w i t h Memorization.
In computing, memoization or memoisation is an optimization technique used primarily to speed up computer programs by storing the results of expensive function calls and returning the cached result when the same inputs occur again.
�12
![Page 13: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/13.jpg)
Silnia…Consider the following pseudocode function to calculate the factorial of n:
function factorial (n is a non-negative integer) if n is 0 then return 1 [by the convention that 0! = 1] else return factorial(n – 1) times n [recursively invoke factorial with the parameter 1 less than n] end ifend function
�13
![Page 14: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/14.jpg)
Silnia…
Depending on the machine, this cost might be the sum of:
1. The cost to set up the functional call stack frame.2. The cost to compare n to 0.3. The cost to subtract 1 from n.4. The cost to set up the recursive call stack frame. (As
above.)5. The cost to multiply the result of the recursive call to factorial by n.
6. The cost to store the return result so that it may be used by the calling context.
�14
![Page 15: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/15.jpg)
Silnia…A memoized version of the factorial function follows:
function factorial (n is a non-negative integer) if n is 0 then return 1 [by the convention that 0! = 1] else if n is in lookup-table then return lookup-table-value-for-n else let x = factorial(n – 1) times n [recursively invoke factorial with the parameter 1 less than n] store x in lookup-table in the nth slot [remember the result of n! for later] return x end ifend function
�15
![Page 16: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/16.jpg)
POWRÓTDOMACIERZYMnożeniemacierzy
�16
![Page 17: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/17.jpg)
A1A2A3A4A5
�17�17
![Page 18: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/18.jpg)
A1A2A3A4A5
�18
![Page 19: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/19.jpg)
A1A2A3A4A5
�19
m(i,j)=0jeślii=j=min[m(i,k)+m(k+1,j)+pipk+1pj+1]jeślii<j (*)
![Page 20: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/20.jpg)
Pseudokod…
MATRIX-CHAIN-ORDER(p)1 n ← length[p] - 12 for i ← 1 to n3 do m[i, i] ← 04 for l ← 2 to n ▹l is the chain length.5 do for i ← 1 to n - l + 16 do j ← i + l - 17 m[i, j] ← ∞8 for k ← i to j - 19 do q ← m[i, k] + m[k + 1, j] + pi-1 pkpj10 if q < m[i, j]11 then m[i, j] ← q12 s[i, j] ← k13 return m and sMATRIX-CHAIN-ORDERdeterminestheoptimalnumberofscalarmultiplicationsneededtocomputeamatrix-chainproduct.
�20
![Page 21: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/21.jpg)
MATRIX-CHAIN-ORDER
Thealgorithmfirstcomputesm[i,i]=0fori=1,2,...,n(theminimumcostsforchainsoflength1)inlines2-3.Itthenusesrecurrence(*)tocomputem[i,i+1]fori=1,2,...,n-1(theminimumcostsforchainsoflengthl=2)duringthefirstexecutionoftheloopinlines4-12.Thesecondtimethroughtheloop,itcomputesm[i,i+2]fori=1,2,...,n-2(theminimumcostsforchainsoflengthl=3),andsoforth.Ateachstep,them[i,j]costcomputedinlines9-12dependsonlyontableentriesm[i,k]andm[k+1,j]alreadycomputed.
�21
![Page 22: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/22.jpg)
Pseudokod…
PRINT-OPTIMAL-PARENS(s, i, j)1 if i = j2 then print "A"i3 else print "("4 PRINT-OPTIMAL-PARENS(s, i, s[i, j])5 PRINT-OPTIMAL-PARENS(s, s[i, j] + 1, j)6 print ")"
�22
![Page 23: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/23.jpg)
Constructinganoptimalsolution
AlthoughMATRIX-CHAIN-ORDERdeterminestheoptimalnumberofscalarmultiplicationsneededtocomputeamatrix-chainproduct,itdoesnotdirectlyshowhowtomultiplythematrices.Itisnotdifficulttoconstructanoptimalsolutionfromthecomputedinformationstoredinthetables[1…n,1…n].Eachentrys[i,j]recordsthevalueofksuchthattheoptimalparenthesizationofAiAi+1…AjsplitstheproductbetweenAkandAk+1.Thus,weknowthatthefinalmatrixmultiplicationincomputingA1…AnoptimallyisA1…As[1,n]As[1,n]+1…An.Theearliermatrixmultiplicationscanbecomputedrecursively,sinces[1,s[1,n]]determinesthelastmatrixmultiplicationincomputingA1‥As[1,n],ands[s[1,n]+1,n]determinesthelastmatrixmultiplicationincomputingAs[1,n]+1‥An.Thefollowingrecursiveprocedureprintsanoptimalparenthesizationof〈Ai,Ai+1,...,Aj〉,giventhestablecomputedbyMATRIX-CHAIN-ORDERandtheindicesiandj.TheinitialcallPRINT-OPTIMAL-PARENS(s,1,n)printsanoptimalparenthesizationof〈A1,A2,...,An.
�23
![Page 24: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/24.jpg)
PROGRAMOWANIEDYNAMICZNE(PDLUBDP)
Mnożeniemacierzy
�24
![Page 25: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/25.jpg)
Zadania(Cormen,…,15.2.1,15.2.2)
• Znaleźćoptymalnąkolejnośćmnożeniaciągumacierzy,którychwymiarytworząsekwencję〈5,10,3,12,5,50,6〉.
• PodaćrekurencyjnyalgorytmMATRIX-CHAIN-MULTIPLY(A,s,i,j),wykonującyoptymalnemnożenieciągumacierzyA1,A2,...,An mając tablicę s otrzymaną w algorytmie MATRIX-CHAIN-ORDER i indeksy i, j. (Wywołanie początkowe: MATRIX-CHAIN-MULTIPLY(A, s, 1, n))
�25
![Page 26: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/26.jpg)
OBLICZENIA-TYPYObliczeniarównoległe
�26
![Page 27: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/27.jpg)
OBLICZENIARÓWNOLEGŁE
�27
![Page 28: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/28.jpg)
Podział• Przetwarzanie
– KomputerVonNeumanna RAM<-->CPU<-->I/O
– Potokowe,wektorowe RAM+wieleinstrukcjijednocześnie<-->CPU<-->I/O
– Równoległe RAM+wielezadań<-->wielePU<-->I/O
• Architekturakomputerów
• Zadaniowość
�28
JohnvonNeumann(~1940;LANLarch.)
![Page 29: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/29.jpg)
Podziałzewzgl.nazadania
• SISD• SIMD• MISD• MIMD
S=single,I=instruction(s),M=multi,D=data(rysunki:https://computing.llnl.gov/tutorials/parallel_comp/#Abstract)
�29
![Page 30: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/30.jpg)
SISD
�30
![Page 31: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/31.jpg)
SIMD
�31
![Page 32: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/32.jpg)
MISD
�32
![Page 33: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/33.jpg)
MIMD
�33
![Page 34: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/34.jpg)
Podziałzewzgl.napamięć
• Wieleprocesorów– Pamięćwspółdzielona,dzielona,wspólna(shared) (openMP)– Pamięćrozproszona,prywatna
(MessagePassingInterface=MPI) –Mieszaninapowyższych
�34
![Page 35: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/35.jpg)
Wspólnapamięć(UMA)
�35
UMA-Uniformmemoryarchitecture
![Page 36: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/36.jpg)
Pamięćdzielona(NUMA)
�36
NUMA-Nonuniformmemoryarchitecture
![Page 37: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/37.jpg)
Pamięćrozproszona
�37
Distributedmemoryarchitecture
![Page 38: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/38.jpg)
PrawoAmdahl’a
�38
1przyspieszenieobliczeńS=—————1-r
r=ułamekprogramu,którymożnaurównoleglić
-Jeśliprogramniemożebyćrównoległytor=0iS=1
-Jeślicałyprogramjestrównoległytor=1iS=∞
- Jeśli50%programudasieurównoleglićtor=0.5,aS=2
- Jeśliliczbaprocesorówwynosipto1
S=————-r/p+s
gdziesjestułamkiemprocesówsekwencyjnych
![Page 39: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/39.jpg)
PrawoAmdahl’a
• PrzyspieszenieobliczeńrównoległychSp=liczbaprocesoróws=ułamekprocesówsekwencyjnych r=ułamekprocesówrównoległych
S = tsekw/trów = (s + r)/[s + r/p] = 1/[s + (1 - s)/p] --> 1/s, p --> ∞
• Wydajność(efficiency)procesoraP.E.=S/p.P.E. = 1/[p s + (1 - s)]
�39
![Page 40: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/40.jpg)
PrawoAmdahl’a
�40
przyspieszenie S ------------------------------------- p r = .50 r = .90 r = .95 r = .99 ----- ------- ------- ------- ------- 10 1.82 5.26 6.89 9.17 100 1.98 9.17 16.80 50.25 1,000 1.99 9.91 19.62 90.99 10,000 1.99 9.91 19.96 99.02100,000 1.99 9.99 19.99 99.90
![Page 41: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/41.jpg)
PrawoAmdahl’a-przyspieszenie
200 400 600 800 1000n
20
40
60
80
Ss=0.01
s=0.02
s=0.10
p -liczbaprocesorów
przyspieszenieS
�41
![Page 42: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/42.jpg)
Paradygmatyprogramowaniarównoległego
• Macropipelining-potoki.Przykład.
FFTPracaIFFTzewspółczynnikamiFouriera
PU PUPUStrumień
zadań
�42
![Page 43: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/43.jpg)
dodawanie…
• Policzyća[i]=a[i]+a[(i-1MODn)+2],gdziei=1,…,n,a(i)=i.(Inaczej:Dodaćprzesuniętecyklicznieo1wlewoelementymacierzyadoa)
• 1.Wektorowo(f90)
Integer, parameter :: n=100Integer, dimension(n) :: a, aright Do i=1, n a(i) = iEnd Doaright = cshift(a, shift=-1, dim=1)a = a + aright ! Wektorowe dodawanie
�43
![Page 44: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/44.jpg)
dodawanie…
• 2.Równolegle(f90+MPI)
Integer, parameter :: n=100Integer :: VecElem, RVecElemInteger :: MyNode, RNode, LNodeMyNode = whoami() + 1 ! Numery procesów startują z 0VecElem = MyNodeRNode = Mod(MyNode+1,n)+1 ! Nie Rnode = MyNode+1LNode = Mod(MyNode-1+n,n)+1 ! Nie Lnode = MyNode-1Call SentAndGet(VecElem, Lnode, RVecElem, RNode)VecElem = VecElem + RVecElem…! Zbieranie wyników
�44
![Page 45: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/45.jpg)
Zadania
• Zadanie.ZapisaćpoprzedniprogramwjęzykuClubC++.
• PodzielićpracęnadproblememIsingazHamiltonianem
H = K Σi,j si.sjKażdyspinsioddziałujezbezpośrednimisąsiadaminasieci2DoWwęzłachitopologii torusa,napprocesorów.Wykonaćodpowiednirysunek.
�45
![Page 46: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/46.jpg)
PRZYKŁADYAteraz
�46
![Page 47: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/47.jpg)
Maszynywektorowe(potok)
a(i-1),b(i-1)
a(i+3),b(i+3)
a(i),b(i)
a(i+1),b(i+1)
a(i+2),b(i+2)
a(i+3),b(i+3)
JustujeformatDodajemantysyWyrównujepotęgiPorównujepotęgi
! fortranFor i=1 to N do c(i) = a(i) + b(i)End do
1.013x104->0.1013x103->1.013x1040.92x104+0.093x1040.92x104+0.93x103
POTOKDANYCH OPERACJA
CPU
PRZYKŁAD
�47
![Page 48: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/48.jpg)
program hello include 'mpif.h'
integer rank, size, ierror, tag, status(MPI_STATUS_SIZE) character(12) message call MPI_INIT(ierror)
call MPI_COMM_SIZE(MPI_COMM_WORLD, size, ierror) call MPI_COMM_RANK(MPI_COMM_WORLD, rank, ierror)
tag = 100 if (rank .eq. 0) then
message = 'Hello, world'
do i=1, size-1 call MPI_SEND(message, 12, MPI_CHARACTER, i, tag, &
MPI_COMM_WORLD, ierror) enddo
else call MPI_RECV(message, 12, MPI_CHARACTER, 0, tag, &
MPI_COMM_WORLD, status, ierror)
endif print*, 'node', rank, ':', message
call MPI_FINALIZE(ierror)end program hello
Hello(MPI)
�48
![Page 49: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/49.jpg)
Wyliczyćwartośćπ wedługformuły:
π =4
1+ x2dx
0
1
∫
π-MPI
�49
![Page 50: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/50.jpg)
Fortran,π -MPI—1
�50
![Page 51: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/51.jpg)
Fortran,π -MPI—2
�51
![Page 52: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/52.jpg)
Fortran,π -MPI—3
�52
![Page 53: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/53.jpg)
Zadanie
• Napiszprogramobliczeńrównoległych„pi”(lubszkicprogramuwjęzykuludzkim),wykorzystującygeneratorliczblosowychonazwieRand().
• Obliczpi(równolegle),używającRand()ibiorącpoduwagęstosunekpólkwadratuoboku1iokręguopromieniu1.
Patrz:https://pl.wikipedia.org/wiki/Igła_Buffonahttp://mathworld.wolfram.com/BuffonsNeedleProblem.html
�53
![Page 54: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/54.jpg)
!Sekwencyjny(1proces)doj=1,ndoi=1,na(i,j)=FUNC(i,j)enddoenddoFUNCTIONFUNC(I,J)!Cośrobimyza(i,j)END
Macierze(MPI)
i,j
1 n1
n
�54
![Page 55: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/55.jpg)
Równoległy(4procesy)doj=mystart,myenddoi=1,na(i,j)=FUNC(i,j)enddoenddoFUNCTIONFUNC(I,J)!Cośrobimyza(I,j)END
Macierze
mystart myend
�55
![Page 56: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/56.jpg)
SkurczowyalgorytmMD
• MD=moleculardynamics• Zespółn(>>1)oddziałującychczastek.SiłaFidziałanacząstkęi-tą.Równaniaruchu
d2ri(t)/dt2=Fi(R)/mi,gdzier,R,F–wektoryZnaleźćcharakterystykifizyczneukładu.(algorytmskurczowy-->systolicalgorithm)
�56
![Page 57: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/57.jpg)
SkurczowyalgorytmMD
lok
Lat
lok
Lat
lok
Lat
lok
Lat
lok
Lat…
Węzeł:1 2 3 P-1 p
lok=cząstkiprzydzielonedowęzłąLat=cząstki„wędrujące”p=liczbawęzłów
�57
![Page 58: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/58.jpg)
SkurczowyalgorytmMDROUTINENodeStepREPEATCalculateforcesonlocalpartsPerformleap-frogstepforlocalpartUNTILProgramstopsEndRoutineNodeStep
ROUTINECalculateforcesonlocalpartsCalculatecontributionsfromlocalpartsCopylocalparticlesfromrightneighbourandloadintotravelingparticlesDOK=1,p-1Sendtravelingparticlestotheleft(moduloPBC)ReceivedatafromrightneighbourandloadintotravelingparticlesCalculatecontributionstolocalforcesfromtravelingparticlesENDDOENDROUTINECalculateforcesonlocalparts
�58
![Page 59: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/59.jpg)
Modelobliczeńtypumaster-slave
• Procesmaster–rozdzielazadania,rejestrujewynikipracyprocesówslave
• Zadaniawykonywaneprzezprocesyslavemogąbyćróżne(instrukcje
�59
![Page 60: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/60.jpg)
Problemzfizykifazystałej
(MC=MonteCarlo)• Ztw.Blochawynika,żerównanieSchroedingeradlaposzczególnychwektorówBlochakwstrefieBrillouinamożnarozwiązaćniezależnie.JeśliznamyefektywnypotencjałelektronutomasternakazujeniewolnikomzdiagonalizowaćHamiltoniandlaróżnychwektorówk,którewcześniejjeotrzymały,niezależnie.Podiagonalizacjiniewolnikwysyławynikidomistrza,aten,naichpodstawieobliczanp.gęstośćładunku…Jeśliniewolnikówjestmniejniżwektorówk,toposkończeniuswoichobliczeńniewolnikdostajenowekidziaładalej.Poobliczeniuostatniegokmasterliczycopotrzeba.
�60
![Page 61: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/61.jpg)
Literatura
-DesigningandBuildingParallelPrograms".IanFoster.http://www.mcs.anl.gov/~itf/dbpp/
-OverviewofRecentSupercomputers.A.J.vanderSteen,JackDongarra.OverviewRecentSupercomputers.2008.pdf
-MortenHjorth-Jensen.COMPUTATIONALPHYSICS.UniversityofOslo,Fall2008.(Internetedition)
�61
![Page 62: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/62.jpg)
Problemy?
�62
![Page 63: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/63.jpg)
�63
![Page 64: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/64.jpg)
A2A3A4A5
A1A2A3A4A5
A1A2
A3A4
A1A2
A3
A1A2
A2A3
A4
A2A3
A3A4
A5
A3A4 A4A5
A1A2A3A4A5
�64
![Page 65: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/65.jpg)
�65
![Page 66: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/66.jpg)
Przykład
• Inicjujemya[i]=i, i=1,…,N i wykonujemy dodawanie:
FOR i = 1 TO N DO a[i] = a[i] + a[((i − 1) MOD N) + 2];END DO
�66
![Page 67: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/67.jpg)
Data-parallelmodel1 INTEGER, PARAMETER :: N=100 ! Declaration of ! array size2 INTEGER, DIMENSION(N) :: A, ARight ! Declare arrays3 DO I=1, N ! Initialise A4 A(I)=I5 END DO6 ARight=CSHIFT(A, SHIFT=-1, DIM = 1) ! Circular shift ! of A7 A = A + ARight ! Add A and ! ARight ! result stored ! in B
�67
![Page 68: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/68.jpg)
Message-passingmodel1 INTEGER, PARAMETER :: N =100 ! Declaration of ! array size2 INTEGER :: VecElem, RVecElem ! Elements of ! the vector3 INTEGER :: MyNode, RightNode, & ! Variables to LeftNode ! contain node ! addresses4 MyNode = whoami() ! Determine node ! address5 VecElem = MyNode ! Initialise ! vector element6 RightNode = MOD(MyNode+1, N)+1 ! Address of ! right neighbour7 LeftNode = MOD(Mynode-1+N, N)+1 ! Address of left ! neighbour8 CALL send&get(VecElem, LeftNode, & ! Circular RVecElem, RightNode) ! left-shift9 VecElem = VecElem + RVecElem ! Calculate sum
�68
![Page 69: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/69.jpg)
Dynamikamolekularna(MD)
• N>>1cząstekoddziałującychparami• Fi(R)=∑ij,j≠i F(|ri-rj|)nij;n-wektorjednostkowy• Równaniaruchu:d2ri(t)/dt2=Fi(R)/mi
• Procedura:• inicjuj• rozpocznijsymulację;dorównowagi• kontynuuj.
�69
![Page 70: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/70.jpg)
AlgorytmVerleta
Całkowanierównańruchu:
r(t +h)=2r(t)−r(t −h)+h2F[r(t)]/m
r(h)=r(0)+hv(0)+(h2/2)F[r(t=0)](m ≡1),v(t)=[r(t +h)−r(t −h)]/2+O(h2)
�70
![Page 71: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/71.jpg)
Prędkościowyalg.Verleta
(bardziejstabilnyalgorytmcałkowania)Definicja
v(t)=[r(t+h)−r(t−h)]/2pozwalaobliczaćjednocześnie
r(t+h)=r(t)+hv(t)+h2F(t)/2,v(t+h)=v(t)+h[F(t+h)+F(t)]/2.
�71
![Page 72: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/72.jpg)
Siły
czasobliczaniasiłᯈ O(N2)
(npzpotencjałuLenarda-Jonesa)
�72
![Page 73: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/73.jpg)
MDparallel
�73
Cząstki Cząstki
Siły Siły
Układcząstek.SiłyLennarda–Jonesa.Dynamikawg.algorytmuVerleta
![Page 74: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/74.jpg)
ProstyalgorytmMD
�74
Send particles in slice to the right neighbour;Receive guest particles from left neighbour;FOR all particle pairs in present slice DO Calculate forces for particles in present slice due to particles in this slice and store their values;END FOR;FOR all particles in present slice DO FOR all particles received from left neighbour DO Calculate forces between ‘resident’ and ‘guest’ particle; Store force on resident particle in resident force array; Store force on ‘guest’ particle in a sending array END FOR;END FOR;Send forces on guest particles to left neighbour;Receive forces on resident particles from right neighbour;Add these last forces to total forces on resident particles;Move particles according to Verlet algorithm.
![Page 75: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/75.jpg)
Algorytmskurczowy(systolicalg.)
�75
travel
local
travel
local
travel
local
travel
local
travel
local
Algorytmsystoliczny(skurczowy)obliczaniasiłwukładziezoddziaływaniamiparcząstek
...
![Page 76: Zaawansowane metody obliczeń numerycznychkft.umcs.lublin.pl/baran/epk/zmon/zmon.pdf… przykłady • Mnożenie macierzy A 1 A 2 … A n-1 A n • Numeryczne obliczanie pochodnych,](https://reader030.vdocuments.mx/reader030/viewer/2022040400/5e6dbafcf7a40d0f194f1240/html5/thumbnails/76.jpg)
AlgorytmskurczowyROUTINE NodeStep REPEAT Calculate_forces_on_local_particles; Perform leap-frog step for local particles; UNTIL Program stops;END ROUTINE NodeStep;
ROUTINE Calculate_forces_on_local_particles Calculate contributions from local particles; Copy local particles to travelling particles; DO K = 1, P − 1 Send travelling particles to the left (modulo PBC); Receive data from right neighbour and load into memory used by travelling particles; Calculate contributions to local forces from travelling particles; END DOEND ROUTINE Calculate_forces_on_local_particles;
�76