AccueilđŸ‡«đŸ‡·Chercher

LOBPCG

Le Gradient conjugué préconditionné par bloc localement optimal (acronyme anglophone LOBPCG) est une méthode utilisée pour trouver les valeurs propres les plus grandes (ou les plus petites) et les vecteurs propres correspondants d'un problÚme de valeurs propres généralisé symétrique

pour une paire de matrices hermitiennes complexes ou rĂ©elles symĂ©triques, oĂč la matrice est Ă©galement supposĂ©e dĂ©finie positive.

Caractéristiques principales[1]

  • La mĂ©thode est dite matrix-free c'est-Ă -dire qu'elle ne nĂ©cessite pas de stocker explicitement les coefficients de la matrice, mais on peut accĂ©der Ă  la matrice en Ă©valuant les produits matrice-vecteur.
  • La mĂ©thode ne nĂ©cessite pas de factorisation de matrice, mĂȘme pour un problĂšme aux valeurs propres gĂ©nĂ©ralisĂ© .
  • Le coĂ»t de calcul par itĂ©ration ainsi que l'occupation mĂ©moire sont compĂ©titifs par rapport Ă  la mĂ©thode de Lanczos, calculant une seule paire vecteur propre, valeur propre d'une matrice symĂ©trique.
  • La convergence linĂ©aire est thĂ©oriquement garantie et pratiquement observĂ©e.
  • On observe une convergence accĂ©lĂ©rĂ©e due au prĂ©conditionnement direct, contrairement Ă  la mĂ©thode de Lanczos, la matrice du prĂ©conditionneur peut ĂȘtre fixe ou varier d'une itĂ©ration Ă  l'autre mais rester symĂ©trique et dĂ©finie positive.
  • La mĂ©thode peut tirer parti de l'utilisation de techniques de dĂ©composition de domaine et d'un prĂ©conditionneur multigrille.
  • La mĂ©thode peut ĂȘtre redĂ©marrĂ©e Ă  chaud (c'est-Ă -dire que l'on utilise des vecteurs propres approchĂ©s venant d'une autre mĂ©thode pour initier le calcul) et elle calcule une approximation des vecteurs propres, valeurs propres Ă  chaque itĂ©ration.
  • La mĂ©thode est plus stable numĂ©riquement que la mĂ©thode de Lanczos, et peut fonctionner en arithmĂ©tique de faible prĂ©cision.
  • Elle est facile Ă  mettre en Ɠuvre, avec de nombreuses implantations existantes.
  • La mĂ©thode repose sur la notion de bloc et permet ainsi d'utiliser des opĂ©rations matrice-matrice trĂšs efficaces, par exemple BLAS 3.
  • La taille des blocs peut ĂȘtre ajustĂ©e pour Ă©quilibrer la vitesse de convergence par rapport aux coĂ»ts de calcul des orthogonalisations et au coĂ»t de la mĂ©thode Rayleigh-Ritz Ă  chaque itĂ©ration.

Algorithme

Version Ă  un vecteur

On commence par décrire un algorithme qui recherché un seul couple vecteur propre / valeur propre, par exemple celui correspondant à la plus petite valeur propre.

Préliminaires : rappel sur la méthode de montée ou descente de gradient pour les problÚmes de valeurs propres

La méthode effectue une maximisation (ou minimisation) itérative du quotient de Rayleigh généralisé

ce qui permet de trouver les paires vecteurs propres, valeurs propres les plus grandes (ou les plus petites) de

La direction utilisée par l'algorithme du gradient est précisément le gradient du quotient de Rayleigh généralisé, direction proportionnelle au vecteur

appelé vecteur propre résiduel . Si un préconditionneur est disponible, il est appliqué au résidu et donne le vecteur

appelé résidu préconditionné. Sans préconditionnement, on pose et donc . La méthode itérative s'écrit

ou, alternativement de maniĂšre moins concise,

Cette mĂ©thode est connue sous le nom de montĂ©e (ou descente) de gradient prĂ©conditionnĂ©e, oĂč le scalaire est le pas d'itĂ©ration. La taille optimale du pas peut ĂȘtre dĂ©terminĂ©e en maximisant le quotient de Rayleigh, c'est-Ă -dire,

(ou en cas de minimisation), auquel cas la méthode est dite localement optimale.

On note que le maximum (ou minimum) est pris pour appartenant à l'espace vectoriel de dimension deux engendré par les deux vecteurs et .

Formule de récurrence à trois termes

Pour accĂ©lĂ©rer considĂ©rablement la convergence de la montĂ©e (ou descente) de gradient prĂ©conditionnĂ©e localement optimale, un vecteur supplĂ©mentaire peut ĂȘtre ajoutĂ© Ă  la formule de rĂ©currence Ă  deux termes pour la rendre Ă  trois termes (devient une fonction de , et )

La maximisation/minimisation du quotient de Rayleigh se fait maintenant dans un espace vectoriel de dimension trois et peut ĂȘtre effectuĂ©e numĂ©riquement par la mĂ©thode Rayleigh-Ritz . L'ajout de vecteurs supplĂ©mentaires, voir, par exemple, l' extrapolation de Richardson, n'entraĂźne pas d'accĂ©lĂ©ration significative [2] mais augmente les coĂ»ts de calcul, et n'est donc gĂ©nĂ©ralement pas recommandĂ©.

Améliorations de la stabilité numérique

Au fur et Ă  mesure que les itĂ©rations convergent, les vecteurs et deviennent presque linĂ©airement dĂ©pendants, ce qui entraĂźne une perte de prĂ©cision et rend la mĂ©thode Rayleigh-Ritz numĂ©riquement instable en prĂ©sence d'erreurs d'arrondi. La perte de prĂ©cision peut ĂȘtre Ă©vitĂ©e en substituant le vecteur avec un vecteur , qui peut ĂȘtre plus Ă©loignĂ© de , dans la base du sous-espace tridimensionnel , tout en gardant le sous-espace inchangĂ© et en Ă©vitant l' orthonormalisation ou toute autre opĂ©ration supplĂ©mentaire[2]. De plus, l'orthonormalisation de la base du sous-espace tridimensionnel peut ĂȘtre nĂ©cessaire pour les problĂšmes de valeurs propres mal conditionnĂ©s afin d'amĂ©liorer la stabilitĂ© et la prĂ©cision atteignable.

Analogues du sous-espace de Krylov

Il s'agit d'une version Ă  vecteur unique de la mĂ©thode LOBPCG - une possible gĂ©nĂ©ralisation des solveurs linĂ©aires Ă  gradient conjuguĂ© prĂ©conditionnĂ©s au cas des problĂšmes de valeurs propres symĂ©triques. [2] MĂȘme dans le cas trivial et l'approximation rĂ©sultante avec sera diffĂ©rent de celui obtenu par l' algorithme de Lanczos, bien que les deux approximations appartiendront au mĂȘme sous-espace de Krylov .

Scénarios d'utilisation pratiques

L'extrĂȘme simplicitĂ© et la haute efficacitĂ© de la version Ă  vecteur unique de LOBPCG la rendent attrayante pour les applications de calcul de valeurs propres en environnement contraint en ressources de calcul, par exemple pour la dĂ©tection d'anomalies en temps rĂ©el basĂ©e sur le partitionnement spectral. On utilise aussi pour le partitionnement de graphe sur ASIC ou FPGA, ou encore pour la modĂ©lisation de phĂ©nomĂšnes physiques sur les supercalculateurs exascale du classement TOP500 .

Résumé

On cherche maintenant Ă  calculer plusieurs couples propres simultanĂ©ment. On pourrait appliquer la mĂ©thode LOBPCG Ă  un seul vecteur (dĂ©crite ci-dessus) pour avoir le couple correspondant Ă  la plus grande valeur propre (en module), notĂ© et enchaĂźner avec une dĂ©flation orthogonale pour trouver les couples suivant. Si on appelle la matrice (supposĂ©e symĂ©trique, mais on peut gĂ©nĂ©raliser on cas non-symĂ©trique) dont on cherche les couples propres, rappelons que la dĂ©flation orthogonale consiste Ă  introduire une matrice dont on peut montrer qu'elle a les mĂȘmes couples propres que sauf . Il suffit d'appliquer Ă  nouveau la mĂ©thode LOBPCG Ă  un seul vecteur pour trouver un deuxiĂšme couple propre et de rĂ©pĂ©ter cette opĂ©ration autant de fois que nĂ©cessaire.

Cependant, avec approche, chaque nouveau couple propre calculĂ© de maniĂšre approchĂ©e dĂ©pend du calcul de tous les autres couples propres prĂ©cĂ©dents et ainsi les erreurs de calcul s'accumulent et les estimations des couples propres deviennent de moins en moins bonnes. Pour amĂ©liorer cette situation, la mĂ©thode LOBPCG par bloc se propose de calculer plusieurs couples propres ensemble d'un seul bloc [2], de maniĂšre rapide, prĂ©cise et robuste des vecteurs propres. Elle amĂ©liore Ă©galement les cas oĂč l'on a plusieurs plusieurs couples propres trĂšs proches les uns des autres qui seraient trĂšs mal estimĂ©s par la dĂ©flation orthogonale (convergence trĂšs lente). La taille du bloc peut ĂȘtre ajustĂ©e pour Ă©quilibrer la stabilitĂ© numĂ©rique par rapport Ă  la vitesse de convergence et aux coĂ»ts de calcul des orthonormalisations et de la mĂ©thode Rayleigh-Ritz Ă  chaque itĂ©ration.

Principe de la méthode

L'approche par blocs dans LOBPCG remplace les vecteurs uniques et avec des vecteurs-blocs, c'est-Ă -dire des matrices et , oĂč, par exemple, chaque colonne de se rapproche de l'un des vecteurs propres. Toutes les colonnes sont itĂ©rĂ©es simultanĂ©ment, et la prochaine matrice de vecteurs propres approximatifs est dĂ©terminĂ© par la mĂ©thode Rayleigh-Ritz sur le sous-espace couvert par toutes les colonnes de matrices et . Chaque colonne de est calculĂ©e simplement comme le rĂ©sidu prĂ©conditionnĂ© pour chaque colonne de La matrice est dĂ©terminĂ©e de telle sorte que les sous-espaces engendrĂ©s par les colonnes de et de sont identiques.

Compromis entre stabilité numérique et efficacité

La mĂ©thode Rayleigh-Ritz est appliquĂ©e sur le sous-espace engendrĂ© par toutes les colonnes de matrices et , oĂč en principe une base peut ĂȘtre choisie arbitrairement. Cependant, la mĂ©thode Rayleigh-Ritz peut en pratique devenir numĂ©riquement instable si certains des vecteurs de base ne sont qu'approximativement linĂ©airement indĂ©pendant.

Le choix de la base de sous-espace devient crucial autant pour d'assurer la stabilité numérique de la méthode Rayleigh-Ritz que pour réduire à des coûts de calcul. L'approche sans doute la plus stable consiste à rendre les vecteurs de base orthogonaux, par exemple, par le processus d'orthonormalisation de Gram-Schmidt, opération coûteuse en temps de calcul. Par exemple, les implémentations LOBPCG[3] - [4], utilise une factorisation de Cholesky instable mais efficace de la matrice normale, qui est effectuée uniquement sur les matrices individuelles et , plutÎt que sur l'ensemble du sous-espace. Sur une architecture de calcul moderne, la quantité de mémoire disponible est suffisante pour se permettre d'utiliser des tailles de bloc de l'ordre de , néanmoins le temps de calcul consacré aux orthogonalisations et à la méthode Rayleigh-Ritz commence à dominer.

Verrouillage des vecteurs propres précédemment convergés

Quand on utilise une méthode par bloc itérative pour approcher les vecteurs propres, il arrive trÚs souvent qu'à l'intérieur d'un bloc, certains vecteurs propres convergent plus rapidement que d'autres. Le verrouillage des vecteurs propres déjà convergés consiste à les retirer de la boucle itérative, afin d'éliminer des calculs inutiles et d'améliorer la stabilité numérique. Une simple suppression d'un vecteur propre peut probablement entraßner la formation de son double dans des vecteurs toujours itératifs. Le fait que les vecteurs propres d'une matrice symétrique soient orthogonaux par paire suggÚre de garder tous les vecteurs itératifs orthogonaux aux vecteurs verrouillés.

Le verrouillage peut ĂȘtre mis en Ɠuvre diffĂ©remment en maintenant la prĂ©cision et la stabilitĂ© numĂ©riques tout en minimisant les coĂ»ts de calcul. Par exemple, les implĂ©mentations LOBPCG[3] - [4] - [2] - [5], sĂ©parent le verrouillage dur, c'est-Ă -dire une dĂ©flation par restriction, oĂč les vecteurs propres verrouillĂ©s servent d'entrĂ©e de code et ne changent pas, du verrouillage doux, oĂč les vecteurs verrouillĂ©s ne participent pas Ă  l'Ă©tape itĂ©rative gĂ©nĂ©ralement la plus coĂ»teuse en calcul des rĂ©sidus, mais cependant, participent pleinement Ă  la mĂ©thode Rayleigh-Ritz et peuvent donc ĂȘtre modifiĂ©s par la mĂ©thode Rayleigh-Ritz.

Théorie et pratique de la convergence

La mĂ©thode LOBPCG, par construction, assure [2] une minimisation du quotient de Rayleigh au moins aussi rapide que la descente de gradient appliquĂ© Ă  un du bloc, dont on connaĂźt la convergence thĂ©orique. Chaque vecteur propre est un point stationnaire du quotient de Rayleigh, oĂč le gradient s'annule. Ainsi, la descente du gradient peut ralentir Ă  proximitĂ© de n'importe quel vecteur propre, cependant, soit la mĂ©thode converge vers le vecteur propre avec un taux de convergence linĂ©aire ou, si ce vecteur propre est un point col, le quotient de Rayleigh itĂ©ratif est susceptible de converger vers la deuxiĂšme plus basse valeur propre. La convergence dans le pire cas a Ă©tĂ© dĂ©terminĂ©e [2] et dĂ©pend de l'Ă©cart relatif entre la valeur propre et le reste du spectre de la matrice et de la qualitĂ© du prĂ©conditionneur, s'il est prĂ©sent.

Pour une matrice quelconque, il n'y a Ă©videmment aucun moyen de prĂ©dire les vecteurs propres et donc de gĂ©nĂ©rer les premiĂšres approximations qui fonctionnent toujours bien. La solution itĂ©rative de LOBPCG peut ĂȘtre sensible aux valeurs initiales des vecteurs propres, et par exemple, mettre plus de temps Ă  converger et ralentir lorsque les paires propres suivantes doivent ĂȘtre calculĂ©es. De plus, en thĂ©orie, on ne peut pas nĂ©cessairement garantir la convergence vers le plus petit couple propre, bien que la probabilitĂ© de l'Ă©chec soit nulle. Une fonction gaussienne alĂ©atoire de bonne qualitĂ© avec une moyenne nulle est gĂ©nĂ©ralement prise pour gĂ©nĂ©rer les approximations initiales de la mĂ©thode LOBPCG. Pour fixer les valeurs approchĂ©es initiales, on peut choisir une graine fixĂ©e pour le gĂ©nĂ©rateur de nombres alĂ©atoires .

Contrairement à la méthode de Lanczos, LOBPCG présente rarement une convergence superlinéaire asymptotique dans la pratique.

Application à l'analyse en composantes principales (ACP) et à la décomposition en valeur singuliÚre (SVD)

la mĂ©thode LOBPCG peut ĂȘtre facilement adaptĂ©e au calcul de plusieurs plus grandes valeurs singuliĂšres et les vecteurs singuliers correspondants et ainsi ĂȘtre utilisĂ©e pour l'analyse en composante principale (ACP). Elle est implantĂ©e dans le module Python SciPy depuis la version 1.4.0[6].

Implémentations logicielles

Andrew Knyazev, l'auteur original de la méthode LOBPCG, a publié une implantation logicielle de référence appelée Block Locally Optimal Eigenvalue Xolvers (BLOPEX)[7] - [8] avec des interfaces vers les bibliothÚques d'algÚbre linéaire parallÚle PETSc, hypre et Parallel Hierarchical Adaptive MultiLevel method (PHAML)[9]. D'autres implantations sont disponibles dans les logiciels GNU Octave[10], MATLAB[3], Java[11], Anasazi ( Trilinos )[12], SLEPc[13] - [14], SciPy[4], Julia[15], MAGMA[16], PyTorch[17], Rust[18], OpenMP et OpenACC[19], CuPy (Une bibliothÚque de tableaux compatible NumPy pour les processeurs graphiques )[20], et NVIDIA AMGX[21]. Il existe également une implantation de LOBPCG compatible avec TensorFlow[22],

Applications

Exploration de données

Les progiciels scikit-learn et Megaman[23] utilisent LOBPCG pour adapter le regroupement spectral[24] et l'apprentissage automatique en grande dimension[25] pour les problÚmes de réduction de la dimension. NVIDIA a implanté[26] la méthode LOBPCG dans sa bibliothÚque nvGRAPH introduite dans CUDA 8. le logiciel Sphynx[27], implante un algorithme de partitionnement de graphe parallÚle hybride (CPU et GPU) à mémoire distribuée et partagée, il utilise le regroupement spectral pour le partitionnement de graphe, en calculant les vecteurs propres sur la matrice laplacienne du graphe en utilisant la méthode LOBPCG du package Anasazi de la bibliothÚques Trilinos.

Sciences des matériaux

LOBPCG est implĂ©mentĂ© dans ABINIT[28] (y compris la version CUDA ) et Octopus[29]. Il a Ă©tĂ© utilisĂ© pour des matrices de plusieurs milliards de dollars par les finalistes du prix Gordon Bell, sur le supercalculateur Earth Simulator au Japon[30] - [31]. Le modĂšle Hubbard pour les systĂšmes Ă©lectroniques fortement corrĂ©lĂ©s pour comprendre le mĂ©canisme derriĂšre la supraconductivitĂ© utilise LOBPCG pour calculer l' Ă©tat fondamental de l' hamiltonien sur l' ordinateur K.[32] Il existe des versions MATLAB[33] et Julia[34] - [35] - [36] de LOBPCG pour les Ă©quations de Kohn-Sham et la thĂ©orie de la fonctionnelle de la densitĂ© (DFT) utilisant la base des ondes simples. Les implĂ©mentations rĂ©centes incluent TTPY[37], Platypus‐QM[38], MFDn[39], ACE-Molecule[40], LACONIC.

MĂ©caniques des fluides

L'implantation de LOBPCG de la bibliothÚque BLOPEX est utilisée pour la configuration du préconditionneur dans la bibliothÚque de solveurs BDDCML (Multilevel Balancing Domain Decomposition by Constraints ), qui est incorporé dans OpenFTL (Open Finite Element Template Library) et utilisé par le simulateur Flow123d pour étudier les écoulements d'eau souterraine, de solutés et de transport de chaleur dans les milieux poreux fracturés . LOBPCG a été implémenté[41] dans LS-DYNA .

Electromagnétisme

LOBPCG est l'un des principales méthodes de recherche de valeurs propres dans PYFEMax et dans le logiciel d'éléments finis multiphysique haute performance Netgen/NGSolve. L'implantation de LOBPCG fournie par la bibliothÚque hypre est intégré à la bibliothÚque C++ MFEM (simulation par la méthode des éléments finis), qui est utilisée dans de nombreux projets, notamment BLAST, XBraid, VisIt, xSDK, et par l'institut FASTMath du SciDAC pour la conception de discrétisations exascales efficaces (CEED).

DĂ©bruitage

Un filtre passe-bas approchĂ© basĂ© sur les itĂ©rations de la mĂ©thode LOBPCG peut ĂȘtre utilisĂ© pour le dĂ©bruitage ; voir[42], par exemple, en traitement d'images.

Segmentation d'images

La segmentation d'images par regroupement spectral effectue un plongement de faible dimension à l'aide d'une matrice d'affinité entre les pixels, suivi d'un regroupement des composants des vecteurs propres dans l'espace de faible dimension, par exemple en utilisant le graphe Laplacien pour le filtrage bilatéral . La segmentation d'images via un partitionnement de graphe spectral par LOBPCG avec préconditionnement multigrille a été proposée pour la premiÚre fois dans[43] et actuellement testée dans[44] et[45]. Cette derniÚre approche a ensuite été implémentée dans Python Scikit-learn[46] qui utilise l'implantation de LOBPCG fournie par SciPy avec un préconditionnement algébrique multigrille pour résoudre le problÚme des valeurs propres pour le graphe Laplacien.

Références

  1. (en) Auteur inconnu, « Recent implementations, applications, and extensions of the Locally Optimal Block Preconditioned Conjugate Gradient method (LOBPCG) », ..
  2. Knyazev, « Toward the Optimal Preconditioned Eigensolver: Locally Optimal Block Preconditioned Conjugate Gradient Method », SIAM Journal on Scientific Computing, vol. 23, no 2,‎ , p. 517–541 (DOI 10.1137/S1064827500366124, lire en ligne).
  3. MATLAB File Exchange function LOBPCG.
  4. SciPy sparse linear algebra function lobpcg.
  5. A. Knyazev « Hard and soft locking in iterative methods for symmetric eigenvalue problems » () (DOI 10.13140/RG.2.2.11794.48327, lire en ligne)
    —Eighth Copper Mountain Conference on Iterative Methods March 28 - April 2, 2004
    .
  6. LOBPCG for SVDS in SciPy.
  7. GitHub BLOPEX.
  8. Knyazev, Argentati, Lashuk et Ovtchinnikov, « Block Locally Optimal Preconditioned Eigenvalue Xolvers (BLOPEX) in Hypre and PETSc », SIAM Journal on Scientific Computing, vol. 29, no 5,‎ , p. 2224 (DOI 10.1137/060661624, Bibcode 2007arXiv0705.2626K, arXiv 0705.2626).
  9. PHAML BLOPEX interface to LOBPCG.
  10. Octave linear-algebra function lobpcg.
  11. Java LOBPCG at Google Code.
  12. Anasazi Trilinos LOBPCG at GitHub.
  13. Native SLEPc LOBPCG.
  14. SLEPc BLOPEX interface to LOBPCG.
  15. Julia LOBPCG at GitHub.
  16. Anzt, Tomov et Dongarra, « Accelerating the LOBPCG method on GPUs using a blocked sparse matrix vector product », Proceedings of the Symposium on High Performance Computing (HPC '15). Society for Computer Simulation International, San Diego, CA, USA, hPC '15,‎ , p. 75–82 (ISBN 9781510801011, lire en ligne).
  17. PyTorch LOBPCG at GitHub.
  18. Rust LOBPCG at GitHub.
  19. Fazlay Rabbi, Christopher S. Daley, Hasan M. Aktulga et Nicholas J. Wright « Evaluation of Directive-based GPU Programming Models on a Block Eigensolver with Consideration of Large Sparse Matrices » () (lire en ligne).
  20. CuPy: A NumPy-compatible array library accelerated by CUDA LOBPCG at GitHub.
  21. NVIDIA AMGX LOBPCG at GitHub.
  22. Rakhuba, Novikov et Osedelets, « Low-rank Riemannian eigensolver for high-dimensional Hamiltonians », Journal of Computational Physics, vol. 396,‎ , p. 718–737 (DOI 10.1016/j.jcp.2019.07.003, Bibcode 2019JCoPh.396..718R, arXiv 1811.11049, lire en ligne).
  23. McQueen et al., « Megaman: Scalable Manifold Learning in Python », Journal of Machine Learning Research, vol. 17, no 148,‎ , p. 1–5 (Bibcode 2016JMLR...17..148M, lire en ligne).
  24. « Sklearn.cluster.SpectralClustering — scikit-learn 0.22.1 documentation ».
  25. « Sklearn.manifold.spectral_embedding — scikit-learn 0.22.1 documentation ».
  26. Naumov, « Fast Spectral Graph Partitioning on GPUs », NVIDIA Developer Blog,‎ (lire en ligne).
  27. « SGraph partitioning with Sphynx ».
  28. ABINIT Docs: WaveFunction OPTimisation ALGorithm.
  29. Octopus Developers Manual:LOBPCG.
  30. S. Yamada, T. Imamura et M. Machida « 16.447 TFlops and 159-Billion-dimensional Exact-diagonalization for Trapped Fermion-Hubbard Model on the Earth Simulator » () (DOI 10.1109/SC.2005.1).
  31. S. Yamada, T. Imamura, T. Kano et M. Machida « Gordon Bell finalists I—High-performance computing for exact numerical approaches to quantum many-body problems on the earth simulator » () (DOI 10.1145/1188455.1188504)
    —Proc. ACM/IEEE conference on Supercomputing (SC '06)
    .
  32. S. Yamada, T. Imamura et M. Machida « High Performance LOBPCG Method for Solving Multiple Eigenvalues of Hubbard Model: Efficiency of Communication Avoiding Neumann Expansion Preconditioner » () (DOI 10.1007/978-3-319-69953-0_14)
    —Asian Conference on Supercomputing Frontiers
    .
  33. Yang, Meza, Lee et Wang, « KSSOLV - a MATLAB toolbox for solving the Kohn-Sham equations », ACM Trans. Math. Softw., vol. 36, no 2,‎ , p. 1–35 (DOI 10.1145/1499096.1499099).
  34. Fathurrahman, Agusta, Saputro et Dipojono, « PWDFT.jl: A Julia package for electronic structure calculation using density functional theory and plane wave basis », Computer Physics Communications, vol. 256,‎ , p. 107372 (DOI 10.1016/j.cpc.2020.107372, Bibcode 2020CoPhC.25607372F).
  35. Plane wave density functional theory (PWDFT) in Julia.
  36. Density-functional toolkit (DFTK). Plane wave Density Functional Theory in Julia.
  37. Rakhuba et Oseledets, « Calculating vibrational spectra of molecules using tensor train decomposition », J. Chem. Phys., vol. 145, no 12,‎ , p. 124101 (PMID 27782616, DOI 10.1063/1.4962420, Bibcode 2016JChPh.145l4101R, arXiv 1605.08422).
  38. Takano, Nakata, Yonezawa et Nakamura, « Development of massive multilevel molecular dynamics simulation program, platypus (PLATform for dYnamic protein unified simulation), for the elucidation of protein functions », J. Comput. Chem., vol. 37, no 12,‎ , p. 1125–1132 (PMID 26940542, PMCID 4825406, DOI 10.1002/jcc.24318).
  39. Shao et al., « Accelerating Nuclear Configuration Interaction Calculations through a Preconditioned Block Iterative Eigensolver », Computer Physics Communications, vol. 222, no 1,‎ , p. 1–13 (DOI 10.1016/j.cpc.2017.09.004, Bibcode 2018CoPhC.222....1S, arXiv 1609.01689).
  40. Kang et al., « ACE-Molecule: An open-source real-space quantum chemistry package », The Journal of Chemical Physics, vol. 152, no 12,‎ , p. 124110 (PMID 32241122, DOI 10.1063/5.0002959, Bibcode 2020JChPh.152l4110K).
  41. « A Survey of Eigen Solution Methods in LS-DYNAŸ » () (lire en ligne)
    —15th International LS-DYNA Conference, Detroit
    .
  42. A. Knyazev et A. Malyshev « Accelerated graph-based spectral polynomial filters » () (DOI 10.1109/MLSP.2015.7324315, arXiv 1509.02468)
    —2015 IEEE 25th International Workshop on Machine Learning for Signal Processing (MLSP), Boston, MA
    .
  43. Andrew V. Knyazev « Modern preconditioned eigensolvers for spectral image segmentation and graph bisection » () (lire en ligne)
    —Clustering Large Data Sets; Third IEEE International Conference on Data Mining (ICDM 2003) Melbourne, Florida: IEEE Computer Society
    .
  44. Andrew V. Knyazev « Multiscale Spectral Image Segmentation Multiscale preconditioning for computing eigenvalues of graph Laplacians in image segmentation » () (DOI 10.13140/RG.2.2.35280.02565, lire en ligne)
    —Fast Manifold Learning Workshop, WM Williamburg, VA
    .
  45. Andrew V. Knyazev « Multiscale Spectral Graph Partitioning and Image Segmentation » () (lire en ligne)
    —Workshop on Algorithms for Modern Massive Datasets Stanford University and Yahoo! Research
    .
  46. « Spectral Clustering — scikit-learn documentation ».

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.