LOBPCG
Lokalnie optymalny blok wstępnie uwarunkowany gradient sprzężony ( LOBPCG ) to bezmacierzowa metoda znajdowania największych (lub najmniejszych) wartości własnych i odpowiadających im wektorów własnych symetrycznego uogólnionego problemu wartości własnych
danej pary lub rzeczywistych symetrycznych macierzy macierz jest również dodatnio .
Tło
Kantorowicz w roku zaproponował obliczenie najmniejszej wartości własnej symetrycznej przez strome zejście przy użyciu kierunku skalowanego gradientu ilorazu Rayleigha w iloczynie skalarnym , z wielkością kroku obliczoną przez zminimalizowanie ilorazu Rayleigha w wektorów , tj w lokalnie optymalny sposób. Samokish zaproponował zastosowanie a uwarunkowanie wstępne w wygenerowania kierunku uwarunkowanego , gdy zbliża się do wektora własnego , współczynnik zbieżności miedza. D'yakonov zasugerował spektralnie równoważne warunkowanie wstępne i pochodne nieasymptotyczne granice tempa konwergencji. Blok lokalnie optymalny wieloetapowy najbardziej stromy spadek dla problemów z wartością własną został opisany w. Lokalna minimalizacja ilorazu Rayleigha na podprzestrzeni rozpiętej przez bieżące przybliżenie, bieżące przybliżenie resztkowe i poprzednie przybliżenie, a także jego wersję blokową, pojawiła się w. Wstępnie uwarunkowane wersja została przeanalizowana w i.
Główne cechy
- Bezmacierzowy , tj. nie wymaga jawnego przechowywania macierzy współczynników, ale może uzyskać dostęp do macierzy poprzez ocenę iloczynów macierzowo-wektorowych.
- faktoryzacji , tj. nie wymaga dekompozycji macierzy nawet dla uogólnionego problemu wartości własnych .
- Koszty na iterację i wykorzystanie pamięci są konkurencyjne w stosunku do metody Lanczosa , obliczającej pojedynczą skrajną parę własną macierzy symetrycznej.
- Zbieżność liniowa jest teoretycznie gwarantowana i praktycznie obserwowana.
- Przyspieszona zbieżność dzięki warunkowaniu bezpośredniemu , w przeciwieństwie do metody Lanczosa , obejmującemu warunkowanie zmienne i niesymetryczne oraz stałe i dodatnio określone .
- Umożliwia trywialne włączenie wydajnej dekompozycji domen i technik wielosiatkowych poprzez wstępne uwarunkowanie.
- Ciepły start i oblicza przybliżenie wektora własnego w każdej iteracji.
- Bardziej stabilny numerycznie w porównaniu z metodą Lanczosa i może działać w arytmetyce komputerowej o niskiej precyzji.
- Łatwy do wdrożenia, z wieloma wersjami już się pojawił.
- Blokowanie pozwala na wykorzystanie wysoce wydajnych operacji macierz-macierz, np. BLAS 3.
- Rozmiar bloku można dostosować, aby zrównoważyć szybkość zbieżności z kosztami komputerowymi ortogonalizacji i metodą Rayleigha-Ritza w każdej iteracji.
Algorytm
Wersja jednowektorowa
Wstępy: Zejście gradientowe dla problemów z wartościami własnymi
Metoda wykonuje iteracyjną maksymalizację (lub minimalizację) uogólnionego ilorazu Rayleigha
co skutkuje znalezieniem największych (lub najmniejszych) par własnych
Kierunek najbardziej stromego wzniesienia, czyli gradient , uogólnionego ilorazu Rayleigha jest dodatnio proporcjonalny do wektora
resztą wektora własnego . Jeśli warunek wstępny do reszty i daje wektor
zwaną wstępnie uwarunkowaną resztą. Bez uwarunkowania wstępnego ustawiamy i tak . Metoda iteracyjna
lub, w skrócie,
jest znany jako wstępnie uwarunkowane strome wzniesienie ( zejście), gdzie skalar nazywany rozmiarem kroku. Optymalną wielkość kroku można określić maksymalizując iloraz Rayleigha, tj.
(lub w przypadku minimalizacji), w takim przypadku metoda nazywana jest lokalnie optymalną.
Nawrót trzykrotny
Aby radykalnie przyspieszyć zbieżność lokalnie optymalnego, wstępnie uwarunkowanego, najbardziej stromego wzniesienia (lub zejścia), do dwuczłonowej relacji powtarzalności można dodać jeden dodatkowy wektor , aby uczynić ją trójczłonową:
(użyj w przypadku minimalizacji). Maksymalizacja/minimalizacja ilorazu Rayleigha w trójwymiarowej podprzestrzeni może być przeprowadzona numerycznie metodą Rayleigha-Ritza . Dodanie większej liczby wektorów, patrz np. ekstrapolacja Richardsona , nie powoduje znacznego przyspieszenia, ale zwiększa koszty obliczeń, więc ogólnie nie jest zalecane.
Numeryczne ulepszenia stabilności
miarę zbiegania się iteracji wektory stają liniowo zależne powoduje utratę precyzji i powoduje, że Ritz metoda numerycznie niestabilna w obecności błędów zaokrągleń. Utraty precyzji można uniknąć, zastępując wektor wektorem ja mogą być dalej od , na podstawie trójwymiarowej podprzestrzeni , zachowując niezmienioną podprzestrzeń i unikając ortogonalizacji lub innych dodatkowych operacji. Ponadto ortogonalizacja podstawy trójwymiarowej podprzestrzeni może być potrzebna w przypadku źle uwarunkowanych problemy z wartościami własnymi w celu poprawy stabilności i osiągalnej dokładności.
Analogi podprzestrzeni Kryłowa
Jest to jednowektorowa wersja metody LOBPCG — jedna z możliwych uogólnień wstępnie uwarunkowanych liniowych solwerów gradientu sprzężonego na przypadek symetrycznych problemów z wartościami własnymi . przypadku b wynikowe przybliżenie z będzie inne niż uzyskane Lanczosa , chociaż oba przybliżenia będą należeć do tej samej podprzestrzeni Kryłowa .
Praktyczne scenariusze użycia
Ekstremalna prostota i wysoka wydajność jednowektorowej wersji LOBPCG sprawiają, że jest ona atrakcyjna dla aplikacji związanych z wartościami własnymi przy poważnych ograniczeniach sprzętowych, począwszy od wykrywania anomalii w czasie rzeczywistym w oparciu o klastry widmowe, poprzez partycjonowanie wykresów na wbudowanym ASIC lub FPGA , po modelowanie fizycznych zjawisk złożoności obliczeniowej na eksaskalowych superkomputerach TOP500 .
Wersja blokowa
Streszczenie
Kolejne pary własne można obliczać jeden po drugim za pomocą pojedynczego wektora LOBPCG uzupełnionego ortogonalną deflacją lub jednocześnie jako blok. W pierwszym podejściu niedokładności już obliczonych przybliżonych wektorów własnych dodatkowo wpływają na dokładność później obliczonych wektorów własnych, zwiększając w ten sposób błąd przy każdym nowym obliczeniu. Iteracja kilku przybliżonych wektorów własnych razem w bloku w lokalnie optymalny sposób w blokowej wersji LOBPCG. umożliwia szybkie, dokładne i niezawodne obliczanie wektorów własnych, w tym odpowiadających prawie wielokrotnym wartościom własnym, w których pojedynczy wektor LOBPCG cierpi z powodu powolnej zbieżności. Rozmiar bloku można dostosować, aby zrównoważyć stabilność numeryczną a szybkość zbieżności w stosunku do kosztów komputerowych ortogonalizacji i metody Rayleigha-Ritza w każdej iteracji.
Rdzeń projektu
Podejście blokowe _ macierze np . każda kolumna przybliża jeden z wektorów własnych. Wszystkie kolumny są iterowane jednocześnie a następna macierz przybliżonych wektorów własnych określana metodą Rayleigha-Ritza obejmującej wszystkie kolumny { . Każda kolumna jest obliczana po prostu jako wstępnie uwarunkowana reszta dla każdej kolumny ] { i są takie same.
Stabilność numeryczna a wydajność
Wynik Rayleigha-Ritza jest określony przez podprzestrzeń obejmującą wszystkie kolumny macierzy } , gdzie baza podprzestrzeni może być teoretycznie dowolna. Jednak w niedokładnej arytmetyce komputerowej metoda Rayleigha-Ritza staje się numerycznie niestabilny, jeśli niektóre wektory bazowe są w przybliżeniu liniowo zależne. Niestabilności liczbowe zwykle występują, np. jeśli niektóre wektory własne w bloku iteracyjnym osiągają już osiągalną dokładność dla danej precyzji komputera i są szczególnie widoczne w przypadku niskiej precyzji, np. pojedynczej precyzji .
Sztuka wielu różnych implementacji LOBPCG polega na zapewnieniu numerycznej stabilności metody Rayleigha-Ritza przy minimalnych kosztach obliczeniowych poprzez wybór dobrej bazy podprzestrzeni. Prawdopodobnie najbardziej stabilne podejście polegające na uczynieniu wektorów bazowych ortogonalnymi, np. za pomocą procesu Grama-Schmidta , jest również najbardziej kosztowne obliczeniowo. Na przykład implementacje ale wydajną dekompozycję Cholesky'ego normalnej macierzy , która jest wykonywana tylko na poszczególnych i , a nie na całej podprzestrzeni. Stale rosnąca ilość pamięci komputera pozwala obecnie na typowe rozmiary bloków w którym procent czasu obliczeniowego spędzanego na ortogonalizacjach i metoda zaczyna dominować.
Blokowanie wcześniej zbieżnych wektorów własnych
Metody blokowe dla problemów z wartościami własnymi, które iterują podprzestrzenie, zwykle mają niektóre iteracyjne wektory własne zbieżne szybciej niż inne, co motywuje blokowanie już zbieżnych wektorów własnych, tj. usuwanie ich z pętli iteracyjnej, w celu wyeliminowania niepotrzebnych obliczeń i poprawy stabilności numerycznej. Proste usunięcie wektora własnego może prawdopodobnie spowodować utworzenie jego duplikatu w wciąż powtarzających się wektorach. Fakt, że wektory własne symetrycznych problemów z wartościami własnymi są ortogonalne parami, sugeruje utrzymywanie wszystkich wektorów iteracyjnych ortogonalnych względem zablokowanych wektorów.
Blokowanie można zaimplementować w różny sposób, zachowując dokładność i stabilność numeryczną, jednocześnie minimalizując koszty obliczeniowe. Na przykład implementacje LOBPCG oddzielają twarde blokowanie, tj. deflację przez ograniczenie, w której zablokowane wektory własne służą jako wejście kodu i nie zmieniają się, od miękkiego blokowania, w którym zablokowane wektory nie uczestniczą w typowo najdroższym kroku iteracyjnym obliczania reszt, jednak w pełni uczestniczą w metodzie Rayleigha-Ritza, a zatem mogą być zmieniane metodą Rayleigha-Ritza.
Modyfikacje, LOBPCG II
LOBPCG obejmuje wszystkie kolumny macierzy w metodę Rayleigha-Ritza, wyniku czego } do -by- wartością własną potrzebny do rozwiązania i do przy każdej iteracji, oznacza rozmiar bloku - liczbę kolumn. W przypadku rozmiarów bloków to dominować w kosztach obliczeniowych i we / wy oraz ograniczać równoległość, w której wiele urządzeń obliczeniowych działa jednocześnie.
Oryginalny artykuł LOBPCG opisuje modyfikację, zwaną LOBPCG II, mającą na celu rozwiązanie takiego problemu, uruchamiającą jednowektorową wersję metody LOBPCG dla każdej pożądanej pary własnej z rozwiązywaniem procedury Rayleigha-Ritza 3 na 3 k {\ displaystyle problemy z przewidywaną wartością własną. Globalna procedura Rayleigha-Ritza dla wszystkich dotyczy każdej iteracji, ale tylko na kolumnach macierzy , zmniejszając liczbę niezbędnych iloczynów skalarnych do od i wielkości globalnego przewidywanego problemu z wartością własną do -by- od -by- przy każdej iteracji. Odniesienie idzie dalej, stosując algorytm LOBPCG do każdego przybliżonego wektora własnego oddzielnie, tj. uruchamiając niezablokowaną wersję metody LOBPCG dla każdej pożądanej pary własnej dla ustalonej liczby iteracji. Procedury Rayleigha-Ritza w tych przebiegach wymagają jedynie rozwiązania zestawu problemów z przewidywaną wartością własną 3 × 3. Globalna procedura Rayleigha-Ritza dla wszystkich pożądanych par własnych jest stosowana tylko okresowo na końcu ustalonej liczby niezablokowanych iteracji LOBPCG.
Takie modyfikacje mogą być mniej niezawodne w porównaniu z oryginalnym LOBPCG. Indywidualnie działające gałęzie LOBPCG pojedynczego wektora mogą nie podążać ciągłymi iteracyjnymi ścieżkami, zamiast tego odwracać i tworzyć zduplikowane przybliżenia do tego samego wektora własnego. Pojedynczy wektor LOBPCG może być nieodpowiedni dla klastrowanych wartości własnych, ale oddzielne przebiegi LOBPCG małych bloków wymagają automatycznego określenia ich rozmiarów bloków podczas procesu iteracji, ponieważ liczba klastrów wartości własnych i ich rozmiary mogą być nieznane a priori.
Teoria i praktyka konwergencji
Konstrukcja LOBPCG gwarantuje minimalizację ilorazu Rayleigha nie wolniej niż blok o najbardziej stromym spadku gradientu , który ma wszechstronną teorię zbieżności. Każdy wektor własny jest stacjonarnym punktem ilorazu Rayleigha , w którym gradient znika. Zatem opadanie gradientu może zwolnić w pobliżu dowolnego wektora własnego , jednak zagwarantowane jest albo zbieżność do wektora własnego z liniową szybkością zbieżności, albo, jeśli ten wektor własny jest punktem siodłowym , iteracja iloraz Rayleigha spadnie poniżej odpowiedniej wartości własnej i zacznie zbiegać się liniowo do następnej wartości własnej poniżej. Najgorsza wartość współczynnika konwergencji liniowej została określona i zależy od względnej luki między wartością własną a resztą widma macierzy oraz jakości kondycjonera wstępnego , jeśli jest obecny.
W przypadku ogólnej macierzy najwyraźniej nie ma sposobu na przewidzenie wektorów własnych, a tym samym wygenerowanie początkowych przybliżeń, które zawsze działają dobrze. Rozwiązanie iteracyjne LOBPCG może być wrażliwe na początkowe przybliżenia wektorów własnych, np. zbieżność trwa dłużej, zwalniając jako przechodzące pośrednie pary własne. Co więcej, teoretycznie nie można zagwarantować zbieżności koniecznie do najmniejszej pary własnej, chociaż prawdopodobieństwo pomyłki wynosi zero. Dobrej jakości losowa funkcja Gaussa ze średnią zerową jest zwykle wartością domyślną w LOBPCG do generowania początkowych przybliżeń. Aby ustalić początkowe przybliżenia, można wybrać stałe ziarno dla generatora liczb losowych .
W przeciwieństwie do metody Lanczosa , LOBPCG rzadko wykazuje w praktyce asymptotyczną zbieżność superliniową .
Analiza częściowych głównych składowych (PCA) i dekompozycja wartości osobliwych (SVD)
LOBPCG można w prosty sposób zaadaptować do obliczania kilku największych wartości osobliwych i odpowiadających im wektorów osobliwych (częściowe SVD), np. do iteracyjnego obliczania PCA , dla macierzy danych D ze średnią zerową, bez jawnego obliczania macierzy kowariancji D T D , tj. w moda bez matrixa . Głównym obliczeniem jest obliczenie funkcji iloczynu D T (DX) macierzy kowariancji D T D i wektora blokowego X , który iteracyjnie przybliża pożądane wektory osobliwe. PCA wymaga największych wartości własnych macierzy kowariancji, podczas gdy LOBPCG jest zwykle implementowany do obliczania najmniejszych. Prostym obejściem jest zanegowanie funkcji, zastąpienie -D T (DX) zamiast DT (DX) , a tym samym odwrócenie kolejności wartości własnych, ponieważ LOBPCG nie dba o to, czy macierz problemu wartości własnej jest dodatnio określona, czy nie .
LOBPCG dla PCA i SVD jest zaimplementowany w SciPy od wersji 1.4.0
Implementacje oprogramowania ogólnego
Wynalazca LOBPCG, Andrew Knyazev , opublikował referencyjną implementację o nazwie Block Locally Optimal Pre Condition Eigenvalue Xolvers (BLOPEX) z interfejsami do PETSc , hypre i Parallel Hierarchical Adaptive MultiLevel method (PHAML). Inne implementacje są dostępne np. w GNU Octave , MATLAB (w tym dla tablic rozproszonych lub kafelkowych), Java , Anasazi ( Trilinos ), SLEPc , SciPy , Julia , MAGMA, Pytorch , Rust , OpenMP i OpenACC , CuPy ( biblioteka tablic kompatybilna z NumPy , akcelerowana przez CUDA ), Google JAX i NVIDIA AMGX. LOBPCG jest zaimplementowany, ale nie jest uwzględniony w TensorFlow .
Aplikacje
Eksploracja danych
Pakiety oprogramowania scikit-learn i Megaman wykorzystują LOBPCG do skalowania klastrów widmowych i wielorakiego uczenia się za pomocą Laplace'owskich map własnych do dużych zbiorów danych. NVIDIA zaimplementowała LOBPCG w swojej bibliotece nvGRAPH wprowadzonej w CUDA 8. Sphynx, hybrydowy, równoległy partycjoner grafów z obsługą rozproszonej i współdzielonej pamięci - pierwsze narzędzie do partycjonowania grafów, które działa na procesorach graficznych w ustawieniach pamięci rozproszonej - wykorzystuje grupowanie spektralne do partycjonowania grafów , obliczanie wektorów własnych na Laplace'owska macierz wykresu przy użyciu LOBPCG z pakietu Anasazi .
Nauki o materiałach
LOBPCG jest zaimplementowany w ABINIT (w tym w wersji CUDA ) i Octopus . Został użyty do wielomiliardowych macierzy przez Nagrody Gordona Bella na superkomputerze Earth Simulator w Japonii. Model Hubbarda dla silnie skorelowanych układów elektronów w celu zrozumienia mechanizmu stojącego za nadprzewodnictwem wykorzystuje LOBPCG do obliczenia stanu podstawowego hamiltonianu na komputerze K i systemach z wieloma procesorami graficznymi.
Istnieją wersje MATLAB i Julia LOBPCG dla równań Kohna-Shama i teorii funkcjonału gęstości (DFT) wykorzystujące podstawę fali zwykłej. Ostatnie wdrożenia obejmują TTPY, Platypus-QM, MFDn, ACE-Molecule, LACONIC.
Mechanika i płyny
LOBPCG firmy BLOPEX jest używany do konfiguracji uwarunkowania wstępnego w bibliotece solwera Multilevel Balancing Domain Decomposition by Constraints (BDDC) BDDCML, która jest włączona do OpenFTL (Open Finite Element Library) i Flow123d symulatora przepływu wody podziemnej, substancji rozpuszczonej i transportu ciepła w spękanych porowatych mediach . LOBPCG został zaimplementowany w LS-DYNA .
Równania Maxwella
LOBPCG jest jednym z podstawowych narzędzi do rozwiązywania wartości własnych w PYFEMax i wysokowydajnym oprogramowaniu do multifizyki elementów skończonych Netgen/NGSolve. LOBPCG firmy hypre jest włączony do lekkiej, skalowalnej biblioteki C++ typu open source dla metod elementów skończonych MFEM , która jest używana w wielu projektach, w tym BLAST , XBraid, VisIt , xSDK, instytucie FASTMath w SciDAC oraz współprojektowaniu Centrum efektywnych dyskrecji eksaskalowych (CEED) w obliczeniach eksaskalowych Projekt.
Odszumianie
filtr dolnoprzepustowy oparty na LOBPCG może być użyty do odszumiania ; patrz np. przyspieszenie odszumiania całkowitej zmienności .
Segmentacja obrazu
Segmentacja obrazu za pomocą grupowania widmowego polega na osadzeniu niskowymiarowym przy użyciu macierzy powinowactwa między pikselami, po czym następuje grupowanie składowych wektorów własnych w przestrzeni niskowymiarowej, np. przy użyciu wykresu Laplaciana dla filtra dwustronnego . Segmentacja obrazu poprzez partycjonowanie wykresów widmowych przez LOBPCG z kondycjonowaniem wstępnym wielu siatek został po raz pierwszy zaproponowany i faktycznie przetestowany w i . To drugie podejście zostało później zaimplementowane w Pythonie scikit-learn , który wykorzystuje LOBPCG z SciPy z algebraicznymi warunkami wstępnymi multigrid do rozwiązania problemu wartości własnej dla grafu Laplaciana.
- ^ Samokisz, BA (1958). „Metoda najbardziej stromego zejścia dla problemu wartości własnej z operatorami częściowo ograniczonymi”. Izwiestija Wuzow, matematyk. (5): 105–114.
- ^ D'yakonov, EG (1996). Optymalizacja w rozwiązywaniu problemów eliptycznych . Naciśnij przycisk CRC. P. 592. ISBN 978-0-8493-2872-5 .
- Bibliografia _ _ Willoughby, Ralph A. (2002). Algorytmy Lanczosa do obliczeń dużych symetrycznych wartości własnych. Tom. 1 (przedruk oryginału z 1985 r.) . Towarzystwo Matematyki Przemysłowej i Stosowanej .
- ^ Knyazev, Andrew V. (1987). „Oszacowania szybkości konwergencji dla metod iteracyjnych dla problemu wartości własnej z symetryczną siatką”. Radziecki dziennik analizy numerycznej i modelowania matematycznego . 2 (5): 371–396. doi : 10.1515/rnam.1987.2.5.371 . S2CID 121473545 .
- ^ Knyazev, AV (1991). „Wstępnie uwarunkowana metoda gradientu koniugatu dla problemów z wartością własną i jej implementacja w podprzestrzeni”. W Albrecht, J.; Collatz, L.; Hagedorn, P.; Velte, W. (red.). Numeryczne traktowanie problemów z wartościami własnymi, tom. 5 . Międzynarodowa seria matematyki numerycznej. Tom. 96. s. 143–154. doi : 10.1007/978-3-0348-6332-2_11 . ISBN 978-3-0348-6334-6 .
- ^ Knyazev, Andrew V. (1998). „Wstępnie uwarunkowane rozwiązania własne - oksymoron?”. Transakcje elektroniczne w analizie numerycznej . 7 : 104–123.
- ^ Kniazew, Andrzej (2017). „Najnowsze implementacje, zastosowania i rozszerzenia metody gradientu koniugatu lokalnie optymalnego bloku wstępnie uwarunkowanego (LOBPCG)” . arXiv : 1708.08354 [ cs.NA ].
- ^ a b c d e f g h Knyazev, Andrew V. (2001). „W kierunku optymalnego, wstępnie uwarunkowanego rozwiązania własnego: lokalnie optymalny, wstępnie uwarunkowany blok metodą gradientu koniugatu” . SIAM Journal o obliczeniach naukowych . 23 (2): 517–541. doi : 10.1137/S1064827500366124 . S2CID 7077751 .
- ^ a b c d MATLAB Funkcja wymiany plików LOBPCG
- ^ a b c SciPy rzadka funkcja algebry liniowej lobpcg
- ^ Kniazew, A. (2004). Twarde i miękkie blokowanie w metodach iteracyjnych dla symetrycznych problemów z wartościami własnymi . Ósma konferencja Copper Mountain na temat metod iteracyjnych 28 marca - 2 kwietnia 2004 r. doi : 10.13140/RG.2.2.11794.48327 .
- ^ Wecharyński, E.; Yang, C.; Pasek, JE (2015). „Przewidywany algorytm gradientu sprzężonego z uwarunkowaniami wstępnymi do obliczania wielu skrajnych par własnych macierzy hermitowskiej” . J. Komputer. fizyka . 290 : 73–89. doi : 10.1016/j.jcp.2015.02.030 . S2CID 43741860 .
- ^ LOBPCG dla SVDS w SciPy
- Bibliografia _ _
- ^ Knyazev, AV; Argentati, MNIE; Lashuk, I.; Owczinnikow, EE (2007). „Blokuj lokalnie optymalne wstępnie uwarunkowane Xolvers wartości własnej (BLOPEX) w Hypre i PETSc”. SIAM Journal o obliczeniach naukowych . 29 (5): 2224. arXiv : 0705.2626 . Bibcode : 2007arXiv0705.2626K . doi : 10.1137/060661624 . S2CID 266 .
- ^ Interfejs PHAML BLOPEX do LOBPCG
- ^ Funkcja algebry liniowej oktawy lobpcg
- ^ Java LOBPCG w Google Code
- ^ Anasazi Trilinos LOBPCG w GitHub
- ^ Natywny SLEPc LOBPCG
- ^ Interfejs SLEPc BLOPEX do LOBPCG
- ^ Julia LOBPCG w GitHub
- ^ Anzt, Hartwig; Tomow Stanimir; Dongarra, Jack (2015). „Przyspieszenie metody LOBPCG na procesorach graficznych przy użyciu zablokowanego produktu wektora rzadkiej macierzy” . Materiały z sympozjum na temat obliczeń o wysokiej wydajności (HPC '15). Międzynarodowe Towarzystwo Symulacji Komputerowych, San Diego, Kalifornia, USA . HPC '15: 75–82. ISBN 9781510801011 .
- ^ Pytorch LOBPCG w GitHub
- ^ Rust LOBPCG w GitHub
- ^ Rabin Fazlay; Daley, Christopher S.; Aktulga, Hasan M.; Wright, Nicholas J. (2019). Ocena modeli programowania GPU opartych na dyrektywach na bloku Eigensolver z uwzględnieniem dużych rzadkich macierzy (PDF) . Siódme warsztaty na temat programowania akceleratorów przy użyciu dyrektyw, SC19: Międzynarodowa konferencja na temat obliczeń o dużej wydajności, sieci, pamięci masowej i analizy .
- ^ CuPy: biblioteka tablic kompatybilna z NumPy , przyspieszona przez CUDA LOBPCG w GitHub
- ^ Wstępne połączenie Google JAX LOBPCG w GitHub
- ^ NVIDIA AMGX LOBPCG w GitHub
- ^ Rachuba, Maksym; Nowikow, Aleksander; Osedelec, Iwan (2019). „Riemannowskie rozwiązanie własne niskiego rzędu dla wielowymiarowych hamiltonianów” . Journal of Computational Physics . 396 : 718–737. ar Xiv : 1811.11049 . Bibcode : 2019JCoPh.396..718R . doi : 10.1016/j.jcp.2019.07.003 . S2CID 119679555 .
- Bibliografia _ i in. (2016). „Megaman: skalowalna nauka wieloraka w Pythonie” . Dziennik badań nad uczeniem maszynowym . 17 (148): 1–5. Bibcode : 2016JMLR...17..148M .
- ^ "Sklearn.cluster.SpectralClustering - dokumentacja scikit-learn 0.22.1" .
- ^ "Sklearn.manifold.spectral_embedding - dokumentacja scikit-learn 0.22.1" .
- ^ Naumow, Maksym (2016). „Szybkie partycjonowanie wykresów widmowych na GPU” . Blog programistów NVIDIA .
- ^ „Partycjonowanie SGraph za pomocą Sphynx” .
- ^ ABINIT Docs: ALGorithm optymalizacji WaveFunction
- ^ Podręcznik programistów ośmiornicy: LOBPCG
- Bibliografia _ Imamura, T.; Machida, M. (2005). 16,447 TFlopów i 159 miliardów wymiarów Dokładna diagonalizacja dla uwięzionego modelu Fermiona-Hubbarda w symulatorze Ziemi . proc. Konferencja ACM/IEEE na temat superkomputerów (SC'05) . P. 44. doi : 10.1109/SC.2005.1 . ISBN 1-59593-061-2 .
- Bibliografia _ Imamura, T.; Kano, T.; Machida, M. (2006). Finaliści Gordona Bella I — Wysokowydajne obliczenia dla dokładnego numerycznego podejścia do kwantowych problemów wielociałowych na symulatorze Ziemi . proc. Konferencja ACM/IEEE na temat superkomputerów (SC '06). P. 47. doi : 10.1145/1188455.1188504 . ISBN 0769527000 .
- Bibliografia _ Imamura, T.; Machida, M. (2018). Wysokowydajna metoda LOBPCG do rozwiązywania wielu wartości własnych modelu Hubbarda: efektywność komunikacji z unikaniem warunku wstępnego ekspansji Neumanna . Azjatycka konferencja na temat granic superkomputerów. Yokota R., Wu W. (red.) Supercomputing Frontiers. SCFA 2018. Notatki z wykładów z informatyki, tom 10776. Springer, Cham . s. 243–256. doi : 10.1007/978-3-319-69953-0_14 .
- Bibliografia _ Imamura, T.; Machida, M. (2022). Wysokowydajna równoległa metoda LOBPCG dla dużego hamiltonianu wyprowadzona z modelu Hubbarda w systemach z wieloma procesorami graficznymi . SupercomputingAsia (SCA).
- Bibliografia _ Meza, JC; Lee, B.; Wang, L.-W. (2009). „KSSOLV - zestaw narzędzi MATLAB do rozwiązywania równań Kohna-Shama” . ACM Trans. Matematyka oprogramowanie _ 36 (2): 1–35. doi : 10.1145/1499096.1499099 . S2CID 624897 .
- Bibliografia _ Agusta, Mohammad Kemal; Saputro, Adhitya Gandaryus; Dipojono, Hermawan Kresno (2020). „PWDFT.jl: Pakiet Julii do obliczania struktury elektronicznej przy użyciu teorii funkcjonału gęstości i podstawy fali płaskiej” . Komunikacja w dziedzinie fizyki komputerowej . 256 : 107372. Bibcode : 2020CoPhC.25607372F . doi : 10.1016/j.cpc.2020.107372 . S2CID 219517717 .
- ^ Teoria funkcjonału gęstości fali płaskiej (PWDFT) w Julii
- ^ Zestaw narzędzi funkcji gęstości (DFTK). Teoria funkcjonału gęstości fali płaskiej w Julii
- ^ Rachuba, Maksym; Oseleniec, Iwan (2016). „Obliczanie widm wibracyjnych cząsteczek przy użyciu rozkładu ciągu tensorowego”. J. Chem. fizyka . 145 (12): 124101. arXiv : 1605.08422 . Bibcode : 2016JChPh.145l4101R . doi : 10.1063/1.4962420 . PMID 27782616 . S2CID 44797395 .
- Bibliografia _ Nakata, Kazuto; Yonezawa, Yasushige; Nakamura, Haruki (2016). „Opracowanie ogromnego, wielopoziomowego programu do symulacji dynamiki molekularnej, dziobak (PLATform for dYnamic protein ujednoliconej symulacji), w celu wyjaśnienia funkcji białek” . J. Komputer. chemia . 37 (12): 1125–1132. doi : 10.1002/jcc.24318 . PMC 4825406 . PMID 26940542 .
- Bibliografia _ i in. (2018). „Przyspieszenie obliczeń interakcji konfiguracji jądrowej za pomocą wstępnie uwarunkowanego bloku iteracyjnego rozwiązania własnego”. Komunikacja w dziedzinie fizyki komputerowej . 222 (1): 1–13. ar Xiv : 1609.01689 . Bibcode : 2018CoPhC.222....1S . doi : 10.1016/j.cpc.2017.09.004 . S2CID 13996642 .
- Bibliografia _ i in. (2020). „ACE-Molecule: pakiet chemii kwantowej o otwartym kodzie źródłowym w przestrzeni rzeczywistej” . The Journal of Chemical Physics . 152 (12): 124110. Bibcode : 2020JChPh.152l4110K . doi : 10.1063/5.0002959 . PMID 32241122 . S2CID 214768088 .
- ^ Baczewski, Andrzej Dawid; Brickson, Mitchell Ian; Campbell, Quinn; Jacobson, Noe Tobiasz; Maurer, Leon (2020-09-01). Kwantowy koprocesor analogowy do symulacji skorelowanych systemów elektronowych (raport). Stany Zjednoczone: Sandia National Lab. (SNL-NM). doi : 10.2172/1671166 . OSTI 1671166 .
- ^ Przegląd metod rozwiązania Eigen w LS-DYNA® . 15. Międzynarodowa Konferencja LS-DYNA, Detroit. 2018.
- ^ Knyazev, A.; Małyszew, A. (2015). Przyspieszone spektralne filtry wielomianowe oparte na wykresach . 2015 IEEE 25th International Workshop on Machine Learning for Signal Processing (MLSP), Boston, MA. s. 1–6. ar Xiv : 1509.02468 . doi : 10.1109/MLSP.2015.7324315 .
- ^ Knyazev, Andrew V. (2003). Boley; Dhillon; Ghosh; Kogan (red.). Nowoczesne wstępnie uwarunkowane solwery własne do segmentacji obrazu widmowego i bisekcji wykresu . klastrowanie dużych zbiorów danych; Trzecia międzynarodowa konferencja IEEE na temat eksploracji danych (ICDM 2003) Melbourne, Floryda: IEEE Computer Society. s. 59–62.
- ^ Knyazev, Andrew V. (2006). Multiscale Spectral Image Segmentation Wieloskalowe uwarunkowania wstępne do obliczania wartości własnych grafów Laplace'a w segmentacji obrazu . Warsztaty szybkiego uczenia się wielorakości, WM Williamburg, Wirginia. doi : 10.13140/RG.2.2.35280.02565 .
- ^ Knyazev, Andrew V. (2006). Wieloskalowe partycjonowanie grafów widmowych i segmentacja obrazu . Warsztaty na temat algorytmów dla nowoczesnych masowych zbiorów danych Uniwersytet Stanforda i Yahoo! Badania.
- ^ „Klasterowanie widmowe — dokumentacja scikit-learn” .