stringtranslate.com

ЛОБПКГ

Локально-оптимальный блочно-предобусловленный сопряженный градиент ( LOBPCG ) — это безматричный метод нахождения наибольших (или наименьших) собственных значений и соответствующих собственных векторов симметричной обобщенной задачи на собственные значения.

для заданной пары комплексных эрмитовых или действительных симметричных матриц, где матрица также предполагается положительно-определенной .

Фон

Канторович в 1948 году предложил вычислять наименьшее собственное значение симметричной матрицы методом наискорейшего спуска , используя направление масштабированного градиента отношения Рэлея в скалярном произведении , с размером шага, вычисляемым путем минимизации отношения Рэлея в линейной оболочке векторов и , т.е. локально оптимальным образом. Самокиш [1] предложил применять предобуславливатель к вектору невязки для генерации предобуславливающего направления и вывел асимптотические, при приближении к собственному вектору , границы скорости сходимости. Дьяконов предложил [2] спектрально эквивалентное предобуславливание и вывел неасимптотические границы скорости сходимости. Блочный локально оптимальный многошаговый наискорейший спуск для задач на собственные значения был описан в . [3] Локальная минимизация отношения Рэлея на подпространстве, охватываемом текущим приближением, текущей невязкой и предыдущим приближением, а также его блочная версия, появились в . [4] Предобуславливающая версия была проанализирована в [5] и . [6]

Основные характеристики

Источник: [7]

Алгоритм

Одновекторная версия

Предварительные данные:Градиентный спускдля задач на собственные значения

Метод выполняет итеративную максимизацию (или минимизацию) обобщенного отношения Рэлея.

что приводит к нахождению наибольших (или наименьших) собственных пар

Направление самого крутого подъема, то есть градиент , обобщенного отношения Рэлея положительно пропорционально вектору

называется собственным вектором остатка . Если доступен предварительный обуславливатель , он применяется к остатку и дает вектор

называется предобусловленным остатком. Без предобусловливания мы устанавливаем и так . Итерационный метод

или, короче говоря,

известен как предобусловленный крутейший подъем (или спуск), где скаляр называется размером шага. Оптимальный размер шага может быть определен путем максимизации отношения Рэлея, т.е.

(или в случае минимизации), в этом случае метод называется локально оптимальным.

Трехкратное повторение

Чтобы значительно ускорить сходимость локально оптимального предобусловленного наискорейшего подъема (или спуска), можно добавить один дополнительный вектор к двухчленному рекуррентному соотношению , сделав его трехчленным:

(используйте в случае минимизации). Максимизация/минимизация отношения Рэлея в 3-мерном подпространстве может быть выполнена численно методом Рэлея–Ритца . Добавление большего количества векторов, см., например, экстраполяцию Ричардсона , не приводит к значительному ускорению [8] , но увеличивает затраты на вычисления, поэтому обычно не рекомендуется.

Улучшения числовой стабильности

По мере того как итерации сходятся, векторы и становятся почти линейно зависимыми , что приводит к потере точности и делает метод Рэлея–Ритца численно неустойчивым при наличии ошибок округления. Потери точности можно избежать, заменив вектор вектором , который может быть дальше от , в базисе трехмерного подпространства , сохраняя при этом подпространство неизменным и избегая ортогонализации или любых других дополнительных операций. [8] Кроме того, ортогонализация базиса трехмерного подпространства может потребоваться для плохо обусловленных задач на собственные значения для повышения устойчивости и достижимой точности.

Аналоги подпространства Крылова

Это одновекторная версия метода LOBPCG — одно из возможных обобщений предобусловленных линейных решателей сопряженных градиентов на случай симметричных задач на собственные значения . [8] Даже в тривиальном случае и полученное приближение с будет отличаться от полученного алгоритмом Ланцоша , хотя оба приближения будут принадлежать одному и тому же подпространству Крылова .

Практические сценарии использования

Чрезвычайная простота и высокая эффективность одновекторной версии LOBPCG делают ее привлекательной для приложений, связанных с собственными значениями, в условиях жестких аппаратных ограничений: от обнаружения аномалий в реальном времени на основе спектральной кластеризации с помощью разбиения графа на встроенные микросхемы ASIC или FPGA до моделирования физических явлений рекордной вычислительной сложности на суперкомпьютерах класса exascale TOP500 .

Блочная версия

Краткое содержание

Последующие собственные пары могут быть вычислены по одной с помощью одновекторного LOBPCG, дополненного ортогональной дефляцией, или одновременно в виде блока. В первом подходе неточности в уже вычисленных приближенных собственных векторах аддитивно влияют на точность впоследствии вычисленных собственных векторов, тем самым увеличивая ошибку с каждым новым вычислением. Итерация нескольких приближенных собственных векторов вместе в блоке локально оптимальным образом в блочной версии LOBPCG. [8] позволяет быстро, точно и надежно вычислять собственные векторы, включая те, которые соответствуют почти множественным собственным значениям, где одновекторный LOBPCG страдает от медленной сходимости. Размер блока можно настроить для баланса между численной устойчивостью, скоростью сходимости и затратами на компьютер ортогонализаций и метода Рэлея-Ритца на каждой итерации.

Основная конструкция

Блочный подход в LOBPCG заменяет одиночные векторы и на блочные векторы, т. е. матрицы и , где, например, каждый столбец аппроксимирует один из собственных векторов. Все столбцы итерируются одновременно, и следующая матрица аппроксимированных собственных векторов определяется методом Рэлея–Ритца на подпространстве, охватываемом всеми столбцами матриц и . Каждый столбец вычисляется просто как предобусловленный остаток для каждого столбца Матрица определяется таким образом, что подпространства, охватываемые столбцами и , являются одинаковыми.

Числовая стабильность против эффективности

Результат метода Рэлея–Ритца определяется подпространством, охватываемым всеми столбцами матриц и , где базис подпространства теоретически может быть произвольным. Однако в неточной компьютерной арифметике метод Рэлея–Ритца становится численно неустойчивым, если некоторые из базисных векторов приблизительно линейно зависимы. Числовые нестабильности обычно возникают, например, если некоторые из собственных векторов в итеративном блоке уже достигают достижимой точности для заданной компьютерной точности и особенно заметны при низкой точности, например, одинарной точности .

Искусство множественной реализации LOBPCG заключается в обеспечении численной устойчивости метода Рэлея–Ритца при минимальных вычислительных затратах путем выбора хорошего базиса подпространства. Возможно, наиболее стабильный подход, заключающийся в ортогональности базисных векторов, например, с помощью процесса Грама–Шмидта , также является наиболее вычислительно затратным. Например, реализации LOBPCG, [9] [10] используют нестабильное, но эффективное разложение Холецкого нормальной матрицы , которое выполняется только на отдельных матрицах и , а не на всем подпространстве. Постоянно растущий объем компьютерной памяти позволяет в настоящее время использовать типичные размеры блоков в диапазоне, где процент времени вычислений тратится на ортогонализацию, и метод Рэлея–Ритца начинает доминировать.

Блокировка ранее сходящихся собственных векторов

Блочные методы для задач на собственные значения, которые итерируют подпространства, обычно имеют некоторые итерационные собственные векторы, сходящиеся быстрее, чем другие, что мотивирует блокировку уже сходящихся собственных векторов, т. е. удаление их из итеративного цикла, чтобы исключить ненужные вычисления и улучшить численную устойчивость. Простое удаление собственного вектора может, вероятно, привести к формированию его дубликата в все еще итерирующих векторах. Тот факт, что собственные векторы симметричных задач на собственные значения попарно ортогональны, предполагает сохранение всех итерационных векторов ортогональны заблокированным векторам.

Блокировка может быть реализована по-разному, сохраняя численную точность и стабильность при минимизации затрат на вычисления. Например, реализации LOBPCG [9] [10] следуют [8] [11], разделяя жесткую блокировку, т. е. дефляцию ограничением, где заблокированные собственные векторы служат входными данными кода и не изменяются, от мягкой блокировки, где заблокированные векторы не участвуют в типично самом затратном итеративном шаге вычисления остатков, однако полностью участвуют в методе Рэлея—Ритца и, таким образом, могут быть изменены методом Рэлея—Ритца.

Модификации, LOBPCG II

LOBPCG включает все столбцы матриц и в метод Рэлея–Ритца , что приводит к проблеме с точностью до собственного значения, которую необходимо решить, и к скалярным произведениям, которые необходимо вычислить на каждой итерации, где обозначает размер блока — количество столбцов. Для больших размеров блока это начинает доминировать над затратами на вычисления и ввод-вывод и ограничивать распараллеливание, когда несколько вычислительных устройств работают одновременно.

В оригинальной статье LOBPCG [8] описывается модификация, называемая LOBPCG II, для решения такой проблемы, запускающей одновекторную версию метода LOBPCG для каждой желаемой собственной пары с процедурой Рэлея-Ритца, решающей задачи на спроецированные собственные значения размером 3 на 3. Глобальная процедура Рэлея-Ритца для всех собственных пар выполняется на каждой итерации, но только на столбцах матрицы , тем самым уменьшая количество необходимых скалярных произведений до от и размер глобальной задачи на спроецированные собственные значения до -by- от -by- на каждой итерации. Ссылка [12] идет дальше, применяя алгоритм LOBPCG к каждому приближенному собственному вектору отдельно, т. е. запуская неблокированную версию метода LOBPCG для каждой желаемой собственной пары для фиксированного числа итераций. Процедуры Рэлея-Ритца в этих запусках должны решать только набор задач на спроецированные собственные значения размером 3 × 3. Глобальная процедура Рэлея-Ритца для всех желаемых собственных пар применяется только периодически в конце фиксированного числа незаблокированных итераций LOBPCG.

Такие модификации могут быть менее надежными по сравнению с исходным LOBPCG. Отдельно работающие ветви одновекторного LOBPCG могут не следовать непрерывным итеративным путям, переворачиваясь вместо этого и создавая дублированные приближения к одному и тому же собственному вектору. Одновекторный LOBPCG может быть непригоден для кластеризованных собственных значений, но отдельные запуски LOBPCG с малыми блоками требуют автоматического определения их размеров блоков в процессе итераций, поскольку количество кластеров собственных значений и их размеры могут быть неизвестны априори.

Теория и практика конвергенции

LOBPCG по построению гарантированно [8] минимизирует отношение Рэлея не медленнее, чем блочный наискорейший градиентный спуск , который имеет всеобъемлющую теорию сходимости. Каждый собственный вектор является стационарной точкой отношения Рэлея , где градиент обращается в нуль. Таким образом, градиентный спуск может замедляться вблизи любого собственного вектора , однако, он гарантированно либо сходится к собственному вектору с линейной скоростью сходимости, либо, если этот собственный вектор является седловой точкой , итеративное отношение Рэлея с большей вероятностью опустится ниже соответствующего собственного значения и начнет линейно сходиться к следующему собственному значению ниже. Наихудшее значение скорости линейной сходимости было определено [8] и зависит от относительного зазора между собственным значением и остальной частью спектра матрицы и качества предобуславливателя , если он присутствует.

Для общей матрицы, очевидно, нет способа предсказать собственные векторы и, таким образом, сгенерировать начальные приближения, которые всегда работают хорошо. Итеративное решение LOBPCG может быть чувствительным к начальным приближениям собственных векторов, например, требовать больше времени для сходимости, замедляясь при прохождении промежуточных собственных пар. Более того, в теории нельзя гарантировать сходимость обязательно к наименьшей собственной паре, хотя вероятность промаха равна нулю. Качественная случайная гауссовская функция с нулевым средним обычно используется по умолчанию в LOBPCG для генерации начальных приближений. Чтобы зафиксировать начальные приближения, можно выбрать фиксированное начальное число для генератора случайных чисел .

В отличие от метода Ланцоша , LOBPCG на практике редко демонстрирует асимптотическую сверхлинейную сходимость .

ЧастичныйАнализ главных компонент(PCA) иРазложение сингулярных значений(СВД)

LOBPCG может быть тривиально адаптирован для вычисления нескольких наибольших сингулярных значений и соответствующих сингулярных векторов (частичный SVD), например, для итеративного вычисления PCA для матрицы данных D с нулевым средним значением, без явного вычисления ковариационной матрицы D T D , т.е. в безматричном режиме . Основное вычисление - это оценка функции произведения D T (DX) ковариационной матрицы D T D и блочного вектора X , который итеративно аппроксимирует желаемые сингулярные векторы. PCA требует наибольших собственных значений ковариационной матрицы, в то время как LOBPCG обычно реализуется для вычисления наименьших. Простой обходной путь - инвертировать функцию, заменив -D T (DX) на D T (DX) и, таким образом, поменять порядок собственных значений на обратный, поскольку LOBPCG не заботится о том, является ли матрица задачи собственных значений положительно определенной или нет. [9]

LOBPCG для PCA и SVD реализован в SciPy начиная с версии 1.4.0 [13]

Общие программные реализации

Создатель LOBPCG, Эндрю Князев , опубликовал эталонную реализацию под названием Block Locally Optimal Preconditional Eigenvalue Xolvers (BLOPEX) [14] [15] с интерфейсами к PETSc , hypre и параллельному иерархическому адаптивному многоуровневому методу (PHAML). [16] Другие реализации доступны, например, в GNU Octave , [17] MATLAB (включая распределенные или мозаичные массивы), [9] Java , [18] Anasazi ( Trilinos ), [19] SLEPc , [20] [21] SciPy , [10] Julia , [22] MAGMA, [23] Pytorch , [24] Rust , [25] OpenMP и OpenACC , [26] CuPy ( библиотека массивов, совместимая с NumPy , ускоренная с помощью CUDA ), [27] Google JAX , [28] и NVIDIA AMGX. [29] LOBPCG реализован, [30] но не включен, в TensorFlow .

Приложения

Сбор данных

Пакеты программного обеспечения scikit-learn и Megaman [31] используют LOBPCG для масштабирования спектральной кластеризации [32] и обучения многообразий [33] с помощью собственных карт Лапласа для больших наборов данных. NVIDIA реализовала [34] LOBPCG в своей библиотеке nvGRAPH, представленной в CUDA 8. Sphynx [35] — гибридный параллельный разделитель графов с распределенной и общей памятью — первый инструмент для разделения графов, работающий на графических процессорах с распределенной памятью — использует спектральную кластеризацию для разделения графов , вычисляя собственные векторы на матрице Лапласа графа с помощью LOBPCG из пакета Anasazi .

Материаловедение

LOBPCG реализован в ABINIT [36] (включая версию CUDA ) и Octopus . [37] Он использовался для матриц размером в несколько миллиардов долларов финалистами премии Гордона Белла на суперкомпьютере Earth Simulator в Японии. [38] [39] Модель Хаббарда для сильно коррелированных электронных систем, позволяющая понять механизм сверхпроводимости, использует LOBPCG для расчета основного состояния гамильтониана на компьютере K [ 40] и системах с несколькими графическими процессорами. [41]

Существуют версии LOBPCG для MATLAB [42] и Julia [43] [44] для уравнений Кона-Шэма и теории функционала плотности (DFT) с использованием базиса плоских волн. Последние реализации включают TTPY, [45] Platypus‐QM, [46] MFDn, [47] ACE-Molecule, [48] LACONIC. [49]

Механикаижидкости

LOBPCG из BLOPEX используется для настройки прекондиционера в библиотеке решателя BDDCML для многоуровневой балансировки домена декомпозиции ограничений (BDDC), которая включена в OpenFTL (открытая библиотека шаблонов конечных элементов ) и симулятор потока подземных вод, растворенных веществ и переноса тепла в трещиноватых пористых средах Flow123d . LOBPCG был реализован [50] в LS-DYNA и косвенно в ANSYS . [51]

Уравнения Максвелла

LOBPCG — один из основных решателей собственных значений в PYFEMax и высокопроизводительном мультифизическом программном обеспечении для конечных элементов Netgen/NGSolve. LOBPCG от hypre включен в легковесную масштабируемую библиотеку C++ с открытым исходным кодом для методов конечных элементов MFEM , которая используется во многих проектах, включая BLAST , XBraid, VisIt , xSDK, институт FASTMath в SciDAC и Центр совместного проектирования эффективных экзамасштабных дискретизаций (CEED) в проекте экзамасштабных вычислений .

Шумоподавление

Для шумоподавления можно использовать итеративный приближенный фильтр нижних частот на основе LOBPCG ; см., например, [52] , чтобы ускорить шумоподавление общей вариации .

Сегментация изображения

Сегментация изображения с помощью спектральной кластеризации выполняет низкоразмерное вложение с использованием матрицы сродства между пикселями, за которым следует кластеризация компонентов собственных векторов в низкоразмерном пространстве, например, с использованием графового лапласиана для двустороннего фильтра . Сегментация изображения с помощью спектрального разбиения графа с помощью LOBPCG с многосеточной предварительной обработкой была впервые предложена в [53] и фактически протестирована в [54] и. [55] Последний подход был позже реализован в Python scikit-learn [56] , который использует LOBPCG из SciPy с алгебраической многосеточной предварительной обработкой для решения задачи собственных значений для графового лапласиана.

Ссылки

  1. ^ Самокиш, Б. А. (1958). «Метод наискорейшего спуска для задачи на собственные значения с полуограниченными операторами». Известия вузов, Матем. (5): 105–114.
  2. ^ Дьяконов, ЭГ (1996). Оптимизация при решении эллиптических задач . CRC-Press. С. 592. ISBN 978-0-8493-2872-5.
  3. ^ Каллум, Джейн К .; Уиллоуби, Ральф А. (2002). Алгоритмы Ланцоша для больших симметричных вычислений собственных значений. Том 1 (Переиздание оригинала 1985 года) . Общество промышленной и прикладной математики .
  4. ^ Князев, Эндрю В. (1987). «Оценки скорости сходимости итерационных методов для сеточной симметричной задачи на собственные значения». Советский журнал численного анализа и математического моделирования . 2 (5): 371–396. doi :10.1515/rnam.1987.2.5.371. S2CID  121473545.
  5. ^ Князев, АВ (1991). "Метод предобусловленных сопряженных градиентов для задач на собственные значения и его реализация в подпространстве". В Альбрехт, Дж.; Коллатц, Л.; Хагедорн, П.; Вельте, В. (ред.). Численное рассмотрение задач на собственные значения. Том 5. Международная серия по численной математике. Том 96. С. 143–154. doi :10.1007/978-3-0348-6332-2_11. ISBN 978-3-0348-6334-6.
  6. ^ Князев, Эндрю В. (1998). «Предобусловленные собственные решатели — оксюморон?». Electronic Transactions on Numerical Analysis . 7 : 104–123.
  7. ^ Князев, Эндрю (2017). «Последние реализации, приложения и расширения метода локально-оптимального блочного предобусловленного сопряженного градиента (LOBPCG)». arXiv : 1708.08354 [cs.NA].
  8. ^ abcdefgh Князев, Эндрю В. (2001). «К оптимальному предобусловленному собственному решателю: локально оптимальный блочный предобусловленный метод сопряженных градиентов». Журнал SIAM по научным вычислениям . 23 (2): 517–541. Bibcode :2001SJSC...23..517K. doi :10.1137/S1064827500366124. S2CID  7077751.
  9. ^ abcd Функция обмена файлами MATLAB LOBPCG
  10. ^ abc SciPy разреженная линейная алгебраическая функция lobpcg
  11. ^ Князев, А. (2004). Жесткая и мягкая блокировка в итерационных методах для симметричных задач на собственные значения. Восьмая конференция Copper Mountain по итерационным методам, 28 марта - 2 апреля 2004 г. doi :10.13140/RG.2.2.11794.48327.
  12. ^ Vecharynski, E.; Yang, C.; Pask, JE (2015). «Проецируемый предобусловленный алгоритм сопряженных градиентов для вычисления множества экстремальных собственных пар эрмитовой матрицы». J. Comput. Phys . 290 : 73–89. arXiv : 1407.7506 . Bibcode : 2015JCoPh.290...73V. doi : 10.1016/j.jcp.2015.02.030. S2CID  43741860.
  13. ^ LOBPCG для SVDS в SciPy
  14. ^ GitHub BLOPEX
  15. ^ Князев, АВ; Арджентати, МЭ; Лашук, И.; Овчинников, ЕЕ (2007). "Блочные локально-оптимальные предобусловленные собственные значения Xolvers (BLOPEX) в Hypre и PETSc". SIAM Journal on Scientific Computing . 29 (5): 2224. arXiv : 0705.2626 . Bibcode :2007arXiv0705.2626K. doi :10.1137/060661624. S2CID  266.
  16. ^ Интерфейс PHAML BLOPEX для LOBPCG
  17. ^ Октавная функция линейной алгебры lobpcg
  18. ^ Java LOBPCG на Google Code
  19. ^ Анасази Трилинос LOBPCG на GitHub
  20. ^ Родной SLEPc LOBPCG
  21. ^ Интерфейс SLEPc BLOPEX для LOBPCG
  22. ^ Джулия LOBPCG на GitHub
  23. ^ Anzt, Hartwig; Tomov, Stanimir; Dongarra, Jack (2015). «Ускорение метода LOBPCG на графических процессорах с использованием блокированного разреженного матричного векторного произведения». Труды симпозиума по высокопроизводительным вычислениям (HPC '15). Society for Computer Simulation International, Сан-Диего, Калифорния, США . HPC '15: 75–82. ISBN 9781510801011.
  24. ^ Pytorch LOBPCG на GitHub
  25. ^ Rust LOBPCG на GitHub
  26. ^ Рабби, Фазлей; Дейли, Кристофер С.; Актульга, Хасан М.; Райт, Николас Дж. (2019). Оценка моделей программирования графических процессоров на основе директив на блочном собственном решателе с учетом больших разреженных матриц (PDF) . Седьмой семинар по программированию ускорителей с использованием директив, SC19: Международная конференция по высокопроизводительным вычислениям, сетевым технологиям, хранению и анализу .
  27. ^ CuPy: библиотека массивов, совместимая с NumPy , ускоренная с помощью CUDA LOBPCG на GitHub
  28. ^ Первоначальное слияние Google JAX LOBPCG на GitHub
  29. ^ NVIDIA AMGX LOBPCG на GitHub
  30. ^ Рахуба, Максим; Новиков, Александр; Оседелец, Иван (2019). "Low-rank Riemannian eigensolver for high-dimensional Hamiltonians". Journal of Computational Physics . 396 : 718–737. arXiv : 1811.11049 . Bibcode :2019JCoPh.396..718R. doi :10.1016/j.jcp.2019.07.003. S2CID  119679555.
  31. ^ Маккуин, Джеймс и др. (2016). «Megaman: масштабируемое многообразие обучения на Python». Журнал исследований машинного обучения . 17 (148): 1–5. Bibcode : 2016JMLR...17..148M.
  32. ^ «Sklearn.cluster.SpectralClustering — документация scikit-learn 0.22.1».
  33. ^ «Sklearn.manifold.spectral_embedding — документация scikit-learn 0.22.1».
  34. ^ Наумов, Максим (2016). «Быстрое разбиение спектральных графов на графических процессорах». Блог разработчиков NVIDIA .
  35. ^ «Разбиение SGraph с помощью Sphynx».
  36. ^ Документация ABINIT: АЛГОРИТМ ОПТИМИЗАЦИИ ВАЛОВОЙ ФУНКЦИИ
  37. ^ "Octopus Developers Manual:LOBPCG". Архивировано из оригинала 2018-07-29 . Получено 2018-07-29 .
  38. ^ Ямада, С.; Имамура, Т.; Мачида, М. (2005). 16,447 TFlops и 159-миллиардная размерная точная диагонализация для модели захваченных фермионов-Хаббарда на симуляторе Земли . Труды конференции ACM/IEEE по суперкомпьютерам (SC'05) . стр. 44. doi :10.1109/SC.2005.1. ISBN 1-59593-061-2.
  39. ^ Ямада, С.; Имамура, Т.; Кано, Т.; Мачида, М. (2006). Финалисты премии Гордона Белла I — Высокопроизводительные вычисления для точных численных подходов к квантовым многочастичным задачам на симуляторе Земли . Труды конференции ACM/IEEE по суперкомпьютерам (SC '06). стр. 47. doi :10.1145/1188455.1188504. ISBN 0769527000.
  40. ^ Ямада, С.; Имамура, Т.; Мачида, М. (2018). Высокопроизводительный метод LOBPCG для решения множественных собственных значений модели Хаббарда: эффективность связи, избегающей предобуславливателя разложения Неймана . Азиатская конференция по передовым рубежам суперкомпьютеров. Йокота Р., Ву В. (ред.) Передовые рубежи суперкомпьютеров. SCFA 2018. Lecture Notes in Computer Science, т. 10776. Springer, Cham . стр. 243–256. doi : 10.1007/978-3-319-69953-0_14 .
  41. ^ Ямада, С.; Имамура, Т.; Мачида, М. (2022). Высокопроизводительный параллельный метод LOBPCG для большого гамильтониана, полученного из модели Хаббарда на системах с несколькими графическими процессорами . SupercomputingAsia (SCA).
  42. ^ Yang, C.; Meza, JC; Lee, B.; Wang, L.-W. (2009). «KSSOLV — набор инструментов MATLAB для решения уравнений Кона-Шэма». ACM Trans. Math. Softw . 36 (2): 1–35. doi :10.1145/1499096.1499099. S2CID  624897.
  43. ^ Фатуррахман, Фаджар; Агуста, Мохаммад Кемаль; Сапутро, Адхитья Гандариус; Дипохоно, Хермаван Кресно (2020). «PWDFT.jl: пакет Julia для расчета электронной структуры с использованием теории функционала плотности и базиса плоских волн». Компьютерная физика. Коммуникации . 256 : 107372. Бибкод : 2020CoPhC.25607372F. дои : 10.1016/j.cpc.2020.107372. S2CID  219517717.
  44. ^ Density-functional toolkit (DFTK). Теория функционала плотности плоской волны в Julia
  45. ^ Рахуба, Максим; Оселедец, Иван (2016). «Расчет колебательных спектров молекул с использованием разложения тензорного поезда». J. Chem. Phys . 145 (12): 124101. arXiv : 1605.08422 . Bibcode :2016JChPh.145l4101R. doi :10.1063/1.4962420. PMID  27782616. S2CID  44797395.
  46. ^ Такано, Ю; Наката, Казуто; Ёнезава, Ясусиге; Накамура, Харуки (2016). «Разработка программы моделирования массивной многоуровневой молекулярной динамики, platypus (PLATform для унифицированного моделирования динамических белков), для выяснения функций белков». J. Comput. Chem . 37 (12): 1125–1132. doi :10.1002/jcc.24318. PMC 4825406. PMID 26940542  . 
  47. ^ Шао, Мейюэ и др. (2018). «Ускорение вычислений взаимодействия ядерных конфигураций с помощью предварительно обусловленного блочного итерационного решателя собственных уравнений». Computer Physics Communications . 222 (1): 1–13. arXiv : 1609.01689 . Bibcode : 2018CoPhC.222....1S. doi : 10.1016/j.cpc.2017.09.004. S2CID  13996642.
  48. ^ Кан, Санву и др. (2020). «ACE-Molecule: открытый исходный код для квантовой химии в реальном пространстве». Журнал химической физики . 152 (12): 124110. Bibcode : 2020JChPh.152l4110K. doi : 10.1063/5.0002959 . PMID  32241122. S2CID  214768088.
  49. ^ Бачевски, Эндрю Дэвид; Бриксон, Митчелл Ян; Кэмпбелл, Куинн; Якобсон, Ноа Тобиас; Маурер, Леон (2020-09-01). Квантовый аналоговый сопроцессор для моделирования коррелированных электронных систем (отчет). США: Sandia National Lab. (SNL-NM). doi : 10.2172/1671166. OSTI  1671166.
  50. ^ Обзор методов решения собственных уравнений в LS-DYNA. 15-я международная конференция LS-DYNA, Детройт. 2018.
  51. ^ "LS-DYNA 2024R1 (R15.0) Последние разработки" (PDF) . 2024. стр. 15.
  52. ^ Князев, А.; Малышев, А. (2015). Ускоренные графовые спектральные полиномиальные фильтры . 2015 IEEE 25th International Workshop on Machine Learning for Signal Processing (MLSP), Бостон, Массачусетс. С. 1–6. arXiv : 1509.02468 . doi :10.1109/MLSP.2015.7324315.
  53. ^ Князев, Эндрю В. (2003). Боли; Диллон; Гош; Коган (ред.). Современные предобусловленные собственные решатели для спектральной сегментации изображений и деления графа пополам. Кластеризация больших наборов данных; Третья международная конференция IEEE по интеллектуальному анализу данных (ICDM 2003) Мельбурн, Флорида: IEEE Computer Society. стр. 59–62.
  54. ^ Князев, Эндрю В. (2006). Многомасштабная спектральная сегментация изображений. Многомасштабная предварительная подготовка для вычисления собственных значений графовых лапласианов в сегментации изображений. Семинар по быстрому изучению многообразий, WM Williamburg, VA. doi :10.13140/RG.2.2.35280.02565.
  55. ^ Князев, Эндрю В. (2006). Многомасштабное спектральное разбиение графа и сегментация изображения. Практикум по алгоритмам для современных массивных наборов данных Стэнфордского университета и Yahoo! Research.
  56. ^ «Спектральная кластеризация — документация scikit-learn».

Внешние ссылки