Optymalizacja algorytmów wyznaczania całek dwuelektronowych w

Transkrypt

Optymalizacja algorytmów wyznaczania całek dwuelektronowych w
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Optymalizacja algorytmów
wyznaczania calek dwuelektronowych
w bazach gaussowskich dla przypadków
baz silnie skontraktowanych lub baz
zawierajacych
funkcje o dużym l.
,
Marcin Makowski
algorytmów wyznaczania calek dwuelektronowyc
April 11, Optymalizacja
2006
Marcin Makowski
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
1
Rzeczy podstawowe
2
Odrobina historii
3
Nowoczesne podejścia
4
Znaki drogowe optymalizacji
5
Przypadek slabej kontrakcji i dużego l
6
Przypadek silnej kontrakcji i malego l
7
Podsumowanie
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Czym sa, ERI?
Funkcje gaussowskie
Gijk (rA , a) = xAi yAj zAk exp(−arA2 )
Glm (rA , a) = Slm (xA , yA , zA )exp(−arA2 )
ERI
Z
gpqrs = (pq|rs) =
−1
χpA (1)χqB (1)r12
χrC (2)χsD (2)d1d2
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Dlaczego warto sie, tym zaja,ć?
HF, hybrydowe DFT: budowa macierzy Focka
post-SCF: transformacja AO → MO
Metody direct: zapis/odczyt na/z dysku vs przeliczanie w
miare, potrzeb
Fitowanie gestości:
dwu- i trójcentrowe calki dwuelektronowe
,
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Szczególne wlasności 1
Skontraktowane GTO
GCµlm (rA ) =
X
GPνlm (rA , aν )dνµ
ν
zmniejszenie liczby funkcji bazy z niewielka, utrata, dokladności
wspólczynniki kontrakcji i eksponenty funkcji prymitywnych
identyczne dla calej powloki
powloki uogólnione: prymitywy wspólne dla funkcji o różnym l
powloki sp (L) obecne w popularnych bazach Pople’owskich
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Szczególne wlasności 2
Funkcje kartezjańskie vs sferyczne
jednoznaczna, ale nieodwracalna transformacja z bazy
kartezjańskiej do sferycznej
bazy sferyczne sa, krótsze
problem kontaminacji funkcjami s
problem liniowych zależności w bazie
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Rzeczy do zapamietania
,
obliczenia wykonywane dla czwórek powlok
segmentowe, ogólne kontrakcje
jeden prymityw wnosi wklad do jednej kontrakcji (bazy
Pople’owskie)
jeden prymityw wnosi wklad do wielu kontrakcji (bazy ANO,
cc)
możliwe powloki o pojedynczym l lub l w pewnym zakresie
możliwe bazy kartezjańskie lub sferyczne
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Proste sztuczki
GPT
2
exp(−axA2 )exp(−bxB2 ) = exp(−µxAB
)exp(−pxP2 )
ab
a+b
aAx + bBx
= Ax − Bx , Px =
p
p = a + b, µ =
XAB
Transformacja Laplace’a
−1
r12
1
=√
π
Marcin Makowski
Z
∞
−∞
2 2
exp(−r12
t )dt
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Koniec matematyki
calki (ss|ss): Boys 1950, PRS, A200, 542
5
2π 2
2
(ss|ss) = √
K xyz K xyz FN (αRPQ
)
pq p + q ab cd
N
x
2
Kab
= exp(−µxAB
), α =
Z
Fn (x) =
pq
p+q
1
t 2n exp(−xt 2 )dt
0
ogólny przypadek: Taketa, Huzinaga, O-Ohata 1966, JPSJ,
21, 2313
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Japoński lacznik
,
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Pierwsza generacja silników calkowych 1
Schemat McMurchie-Davidsona 1978, JCP, 26, 218
wprowadzone funkcje Hermite-Gaussa (kartezjańskie pochodne
funkcji gaussowskich)
rozwiniecie
kartezjańskich funkcji gaussowskich na funkcje
,
Hermite-Gaussa
wyznaczenie ERI dla H-G i transformacja do oryginalnej bazy
Schemat Rysa 1983, JCC, 4, 154
bez funkcji Boysa - zastapione
przez kwadrature, Gaussa-Rysa
,
Z 1
2
gpqrs =
fL (t 2 )exp(−αRPQ
t 2 )dt
0
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Pierwsza generacja silników calkowych 2
Schemat Obary-Saiki 1986, JCP, 84, 3963
wyprowadzony ze schematu MD, ale unika pośrednich calek
dla funkcji Hermite’a
N
bezpośrednio z funkcji Boysa: AN
000000000000 = (ss|ss)
N
AN
i+1,j,k,l = XPA Ai,j,k,l −
+
i
α N+1
α
(AN
XPQ AN+1
i−1,j,k,l − Ai−1,j,k,l )
i,j,k,l +
p
2p
p
α N+1
j
k
l
(AN
AN+1
AN+1
i,j−1,k,l − Ai,j−1,k,l )+
i,j,k−1,l +
2p
p
2(p + q)
2(p + q) i,j,k,l−1
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Dlaczego koniec historii nie nastapi
, l?
Czas to pieniadz,
wiec
,
, starano sie:
,
zminimalizować liczbe, operacji arytmetycznych
przesunać
po prymitywach
, koszt poza p etle
,
uprościć kodowanie
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Udoskonalony schemat OS
wertykalna rekursja (VR, Head-Gordon, Pople 1988, JCP, 89,
5777)
N
AN
i+1 = XPA Ai −
α
i
α
XPQ AN+1
+ (AN
− AN+1 )
i
p
2p i−1 p i−1
transfer (ET, Lindh et al. 1991, JCP, 95, 5889)
Ai,k+1 = −
bXAB + dXCD
i
k
p
Ai,k + Ai−1,k + Ai,k−1 − Ai+1,k
q
2q
2q
q
horyzontalna rekursja (HR, Head-Gordon, Pople 1988, JCP,
89, 5777)
Ai,j+1 = Ai+1,j + XAB Aij
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Algorytm OS1
Wyznacz podstawowe wielkości dwu- i czterocentrowe
N
Wyznacz FN i stad
, A0
Zastosuj VR
Zastosuj ET
Skontraktuj w bra i kecie
Zastosuj HR do pierwszego elektronu
Przetransformuj (opcjonalnie) do bazy sferycznej dla
pierwszego elektronu
Zastosuj HR do drugiego elektronu
Przetransformuj (opcjonalnie) do bazy sferycznej dla drugiego
elektronu
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Inne nowoczesne algorytmy
PRISM (Gill et al. 1991, IJQC, 40, 753)
wiele możliwych ścieżek (TTTCC, CCTTT, . . . ), OS, MD jako
szczególne przypadki
wczesna kontrakcja - użycie przeskalowanych calek
Schemat ACE (Ishida 1996, IJQC, 59, 209)
bazuje na oryginalnej pracy Takety, Huzinagi . . .
sprytna separacja wielkości charakterystycznych dla
prymitywów i opisujacych
geometrie,
,
rekurencje wymierzone w minmalizacje, liczby operacji w petli
,
po czwórkach prymitywów
Metoda Pople’a-Hehre (1978, JCP, 27, 161)
wykorzystuje lokalna, symetrie,
rotacje miedzy
lokalnymi ukladami wspólrzednych
,
,
wydajna dla funkcji s i p
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Efektywność dla przypadku malych l
FLOPS – x - petla:
prymitywy(ket), prymitywy(bra), y - petla:
,
,
kontrakcje(ket/bra), prymitywy(bra/ket), z - petla:
,
kontrakcje(braket)
p4
LRL
GHP
ACE
MD
DRK
PH
x
836
300
75
1100
904
220
y
30
610
205
600
30
2300
z
330
680
2318
0
330
4000
Marcin Makowski
sp 4
LRL
GHP
ACE
MD
DRK
PH
x
851
450
155
1500
1056
220
y
30
1300
774
1700
30
2300
z
800
1700
4548
0
800
4000
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Efektywność dla przypadku dużych l
d4
LRL
GHP
ACE
MD
DRK
x
12800
2450
327
27300
14660
y
30
25800
2281
24000
30
z
11300
28900
163000
0
11300
Marcin Makowski
f4
LRL
GHP
ACE
MD
DRK
x
79000
11000
861
342000
113140
y
30
600000
11327
383000
30
z
135000
600000
4146000
0
135000
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Podstawowe cele
minimalizacja liczby operacji zmiennoprzecinkowych i liczby
operacji na pamieci
, (MOPS).
uproszczenie logiki
minimalizacja liczby operacji na liczbach calkowitych
(indeksowanie itp.)
zachowanie ogólności
automatyzacja generacji optymalnego kodu
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Proste triki
Permutacja powlok w ramach czwórki
(sd|sf ) → (fs|ds)
Mapowanie indeksów cześci
katowej
,
,
0, x, y , z, x 2 , xy , xz, y 2 , yz, z 2 , ....
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
VR 1
N
AN
i+1 = XPA Ai −
α
i
α
XPQ AN+1
+ (AN
− AN+1 )
i
p
2p i−1 p i−1
N
zaczynajac
, od A0 , N ≤ ltotal → wszystkie
0
Aix ,iy ,iz , ix + iy + iz ≤ ltotal
standardowe podejście - generuj w petlach
wszystkie:
,
AN
ijk , ix + iy + iz + N ≤ ltotal
inkrementujac
, ix + iy + iz w każdej makroiteracji
Ale . . .
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
VR 2
nie wszystkie pośrednie wielkości sa, naprawde, potrzebne
nawet, jeśli jakaś wielkość jest niezbedna,
to moga, istnieć
,
różne ścieżki do niej prowadzace
,
(x 2 y )0 = YPA (x 2 )0 −
(x 2 y )0 = XPA (xy )0 −
α
YPQ (x 2 )1
p
α
1
α
XPQ (xy )1 + ((y )0 − (y )1 )
p
2p
p
problem znalezienia optymalnego algorytmu(kodu) dla
konkretnego ltotal jest otwarty
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
VR 3
problem do rozwiazania
w ramach teorii grafów
,
wyczerpujace
przeszukiwanie przestrzeni rozwiazań
zawsze
,
,
możliwe, ale jego koszt jest wykladniczy
dla prostszej dwuelementowej rekursji w schemacie MD
cześciowe
rozwiazanie
znane: Gill et al. (1991, IJQC, 40, 809)
,
,
tutaj heurystyczne, przybliżone rozwiazanie,
prawdopodobnie
,
bliskie optymalnemu
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
VR 4 - recepta
idź od końcowych wielkości (bottom-up), dla których N = 0,
wybierajac
, rekursje, w najmniejszej niezerowej skladowej
kartezjańskiej, zapamietaj
wybór
,
jeśli dwie(lub trzy) skladowe identyczne, wybierz leżac
, a,
najbardziej na prawo w trójce (x,y,z)
dodaj wszystkie potrzebne wielkości do aktualnego roboczego
zbioru
powtórz procedure, na aktualnym roboczym zbiorze lub
N
zatrzymaj sie,
, jeśli jedynymi jego elementami sa, A0
uporzadkuj
potrzebne wielkości, tak aby iść po po powlokach
,
wygeneruj indywidualne rekursje
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
VR 5
przeprowadzone dla ltotal ≤ 16
rozwiazania
dla l sa, podzbiorami rozwiazań
dla l + 1
,
,
liczba FLOPS i MOPS zredukowana od 20% (przypadek
(pp|pp)) do 50% (przypadek (gg|gg))
zminimalizowana liczba rozgalezień,
usuniety
narzut na petle
,
,
,
liczba operacji na pamieci
, może być dalej zmniejszona przez
rekursywna, eliminacje, wielkości używanych później tylko
jednokrotnie
cena - dużo wiekszy
rozmiar kodu - niewielki klopot dla
,
wspólczesnych komputerów i kompilatorów
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
ET 1
Ai,k+1 = −
i
k
p
bXAB + dXCD
Ai,k + Ai−1,k + Ai,k−1 − Ai+1,k
q
2q
2q
q
zaczyna od Ai0 , 0 ≤ li ≤ ltotal
potrzebne wszystkie Aik , lmin1 ≤ li ≤ lmaxket , lmin3 ≤ lk ≤ lmaxbra
standardowe rozwiazanie
- generuj w petlach
wielkości dla
,
,
wszystkich par powlok takich, że:
Aik , 0 ≤ li + lk ≤ ltotal , 0 ≤ lk ≤ lmaxbra
inkrementujac
, lk w każdej makroiteracji
ale . . .
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
ET 2
nie wszystkie pary powlok rzeczywiście potrzebne
Dla każdego lk tylko podzbiór takich i, dla których
li ≥ lmin1 − lk
jeśli nawet jakaś wielkość jest potrzebna, to moga, istnieć
różne ścieżki
(0, x 2 y ) = −
(0, x 2 y ) = −
bYAB + dYCD
p
(0, x 2 ) − (y , x 2 )
q
q
bXAB + dXCD
1
p
(0, xy ) + (0, y ) − (x, xy )
q
2q
q
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
ET - recepta
zewnetrzna
petla
skonstruowana tak, że idziemy tylko po
,
,
potrzebnych parach powlok
dla indywidualnych wielkości w każdej parze powlok:
znajdowana optymalna ścieżka
generowana odpowiednia rekursja
Zyski na wydajności podobnego rzedu
jak dla VR
,
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Porównanie - koszt dla petli
po prymitywach
,
Type
p4
(sp)4
d4
f4
LRL
836
851
12800
79000
Marcin Makowski
Tu
652
652
8551
51638
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
HR
Ai,j+1 = Ai+1,j + XAB Aij
startuje z Ai0 , l1 ≤ li ≤ l1 + l2
potrzebne Aij , li = l1 , lj = l2
idee rozwiazania
podobne jak dla VR
,
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
HR - recepta
rozepnij drzewo transferów dla docelowej klasy (ij|
wybierz kierunek rekursji dla indywidualnych wielkości
usuń zbedne
pośrednie wielkości
,
usuń rekursywnie zbedne
odwolania do pamieci
,
,
zoptymalizuj wyrażenia
M. Makowski, Simple yet powerful techniques for optimization of
horizontal recursion steps in Gaussian type two electron integral
evaluation algorithms, IJQC, przyjeta
do druku
,
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
HR - teoretyczna efektywność
(ab|
(sd|
(sf|
(pd|
(pf|
(dd|
(df|
(fd|
(ff|
Standard
36(72)
128(256)
90(180)
282(564)
168(336)
498(996)
270(540)
776(1552)
Lindh
158
638
Opt(MOPS)
33(36)
104(84)
99(108)
312(252)
198(216)
624(504)
330(360)
1040(840)
Marcin Makowski
Opt(FLOPS)
30(60)
90(180)
76(152)
198(396)
150(300)
378(756)
246(492)
602(1204)
Tu
27(42)
82(115)
76(129)
192(318)
148(258)
370(630)
243(429)
590(1038)
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
HR - rzeczywista wydajność
(ab|cd)
(dd|dd) (-O)
(ff|ff) (-O)
(dd|dd) (-O3)
(ff|ff) (-O3)
Standard
1.0
1.0
1.0
1.0
Marcin Makowski
Opt(MOPS)
0.68
0.58
0.76
0.68
Tu
0.59
0.45
0.70
0.58
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Idee
maksymalne zmniejszenie kosztu w petlach
po prymitywach
,
tylko (xs|ys) potrzebne
inne z horyzontalnej rekursji po skontraktowaniu bra i keta
tożsamości:
b
XPA = − XAB
p
d
XQC = − XCD
q
d
b
XPQ = − XAB + XAC + XCD
p
q
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Jak otrzymać wydajny algorytm?
przydaje sie, oprogramowanie do przeksztalceń algebraicznych
kontrakcja jest operacja, liniowa,, wiec
, można odseparować
bra-, ket-, braket zależne i zależne tylko od geometrii w
iloczynach i sumach
można znaleźć zbiór wspólnych wielkości dla konkretnego typu
czwórki powlok
i postepować
jak nastepuje:
,
,
ket- i bra-zależne obliczyć w petlach
po parach prymitywów
,
po
czwórkach
prymitywów
braket zależne obliczyć w petli
,
skontraktować w kecie
dodać(wymnożyć) z bra-zależnymi
skontraktować w bra
wygenerować (xs|ys)
wykorzystać HR, transformować do sferycznych itd.
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Najprostszy przypadek: ((sp)s|ss)
(ss|ss) = A00
b
αb
α
αd
XAB A10 − XAC A10 −
XCD A10
(px s|ss) = − XAB A00 +
p
pp
p
pq
b
αb
α
αd
YAB A10 − YAC A10 −
YCD A10
(py s|ss) = − YAB A00 +
p
pp
p
pq
b
αb
α
αd
(pz s|ss) = − ZAB A00 +
ZAB A10 − ZAC A10 −
ZCD A10
p
pp
p
pq
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Najprostszy przypadek: ((sp)s|ss) - rozwiazanie
,
petla:
bra(prymitywy), ket(prymitywy)
,
αd 1
α
A00 , − A10 , −
A
p
pq 0
petla:
bra(prymitywy), ket(kontrakcje)
,
α
b
− (A00 − A10 )
p
p
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Szczypta porównań
(ps|ps)
PH
ACE
Tu
x
19
18
16
y
74
17
12
z
90
93
93
Marcin Makowski
(sp)4
PH
ACE
Tu
x
220
155
49
y
2300
774
151
z
4000
4548
4548
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Wyznaczanie funkcji Boysa
Asymptotyczne przybliżenia dla malych i dużych argumentów
Tabularyzacja polaczona
z rozwinieciem
Taylora lub
,
,
Czebyszewa
Rekurencje : Fn → Fn+1 , Fn → Fn−1
MOPS vs FLOPS
Istotna wydajność funkcji wbudowanych (sqrt, exp)
Efektywność sprzeżona
z organizacja, innych cześci (etc . . . )
,
Rozwiazanie:
automatyczna generacja wielu wersji kodu, ocena
,
wydajności w konkretnym przypadku (architektura, kompilator,
zestaw testów) i wybór najlepszej opcji (ATBFE - w fazie
rozwojowej)
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Rzeczywista wydajność - opis testów
Porównanie z:
Molcas (OS1 polaczony
z podejściem opartym na
,
wielomianach Rysa)
Gamess (Schemat Rysa)
Gamess (BEST: PH lub ERIC lub Rys)
Uklady i bazy:
od metanu do fullerenów i polipeptydów
od STO-3G do aug-cc-pVDZ
Kompilatory i architektury:
gcc(g++) - NIEDOIDA; gcc(g77), ifort - zewnetrzne
pakiety
,
Athlon XP, Pentium 4
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Rzeczywista wydajność - wyniki
Porównujac
, ze schematem Rysa(GAMESS), OS1(Molcas):
nigdy gorsza
przyspieszenie do 3-4 razy
Porównujac
, z opcja, BEST w GAMESS-ie
w najgorszym przypadku dwa razy wolniej (ale nie wszystkie
przypadki dla silnej kontrakcji zaimplementowane)
przyspieszenie do 2 razy
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc
Plan
Rzeczy podstawowe
Odrobina historii
Nowoczesne podejścia
Znaki drogowe optymalizacji
Przypadek slabej kontrakcji i dużego l
Przypadek silnej kontrakcji i malego l
Podsumowanie
Przyszlość
implementacja - w pelni funkcjonalna, kilka optymalizacji do
zrobienia
zastosowanie do fitowania gestości
- rozwojowe
,
zastosowanie template metaprogramming - na razie jedynie
idea
Marcin Makowski
Optymalizacja algorytmów wyznaczania calek dwuelektronowyc

Podobne dokumenty