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