2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Пакет многократной точности для BLAS и LAPACK
Сообщение18.08.2022, 18:57 


12/07/21
108
Один из самых востребованных пакетов линейной алгебры, реализованных с произвольной точностью:
https://github.com/nakatamaho/mplapack? ... i108436139
Все тесты прошли. Полная установка заняла 10 часов.

 Профиль  
                  
 
 Re: Пакет многократной точности для BLAS и LAPACK
Сообщение23.08.2022, 20:26 


12/07/21
108
Очень важно, что BLAS распараллеливается (при этом ничего дополнительно программировать не надо), т.к. практически все важные алгоритмы линейной алгебры (например, решение систем линейных уравнений, диагонализация, сингулярный анализ) используют BLAS. Перемножение двух квадратных матриц 4000 * 4000 занимает 40 с. на 12-ти ядерном компьютере для точности double-double (~32 десятичных знака). Тип binary128, реализованный программно в некоторых компиляторах (~33 десятичных знака) дает результат 105 с. Ось Ubuntu 22.04.1 под Windows (wsl2). Т.е. все расчеты можно проводить под виндами, используя полученные инклюды и либы (более 670 000 000 байт) при установке пакета.

 Профиль  
                  
 
 Posted automatically
Сообщение11.10.2022, 09:49 
Админ форума


02/02/19
1994
 i  Тема перемещена из форума «Software» в форум «Околонаучный софт»
Причина переноса: тематика.

 Профиль  
                  
 
 Re: Пакет многократной точности для BLAS и LAPACK
Сообщение11.10.2022, 17:41 


10/03/16
3871
Aeroport
traffic_lights
При числе обусловленности 1е-8, с какой точностью ищется "наименьший" (соотв. наименьшему С.З.) собственный вектор? То есть какой максимальный модуль отклонения получается? Для теста можно помножить случайную квадратную матрицу на нее же транспонированную, и если $rCond < 1e-8$, то протестить.

 Профиль  
                  
 
 Re: Пакет многократной точности для BLAS и LAPACK
Сообщение11.10.2022, 22:58 


11/08/18
363
ozheredov в сообщении #1566484 писал(а):
traffic_lights
При числе обусловленности 1е-8, с какой точностью ищется "наименьший" (соотв. наименьшему С.З.) собственный вектор? То есть какой максимальный модуль отклонения получается? Для теста можно помножить случайную квадратную матрицу на нее же транспонированную, и если $rCond < 1e-8$, то протестить.

Если имеется ввиду обусловленность $10^8$ по Евклидовой норме, то лапак обычно и так хорошо найдет все собственные вектора в двойной точности. Там в начале 2000 Ralha из Португалии додумался как устойчиво бидиагонализоваться, что все становилось устойчиво до обусловленности близкой к обратной от машинной точности. Помню выражение лица Деммеля, когда он читал постер с этими результатами на IWASEP3. А теперь это все и устойчивый ранг-ревеалинг в лапаке нативно, так что с такой обусловленностью там проблем не бывает.

 Профиль  
                  
 
 Re: Пакет многократной точности для BLAS и LAPACK
Сообщение11.10.2022, 23:53 


10/03/16
3871
Aeroport
ilghiz в сообщении #1566523 писал(а):
Если имеется ввиду обусловленность $10^8$ по Евклидовой норме


Имеется в виду наибольшее собственное значение, деленное на наименьшее.

ilghiz в сообщении #1566523 писал(а):
Помню выражение лица Деммеля


Матлаб при таких числах обусловленности лажает по страшному. Если ТС или Вы имеете возможность провести упомянутый выше тест, с удовольствием взгляну на результаты. Остальное меня не убеждает.

 Профиль  
                  
 
 Re: Пакет многократной точности для BLAS и LAPACK
Сообщение12.10.2022, 00:26 


11/08/18
363
ozheredov в сообщении #1566534 писал(а):
Если ТС или Вы имеете возможность провести упомянутый выше тест, с удовольствием взгляну на результаты. Остальное меня не убеждает.

На обычном лапаке я конечно могу провести тест, но я ваш тест не понял.
Цитата:
При числе обусловленности 1е-8, с какой точностью ищется "наименьший" (соотв. наименьшему С.З.) собственный вектор? То есть какой максимальный модуль отклонения получается? Для теста можно помножить случайную квадратную матрицу на нее же транспонированную, и если $rCond < 1e-8$, то протестить.

То есть берем случайную матрицу и умножаем на транспонированную. Ок, получили положительно определенную с плохой обусловленностью. А дальше-то что делать?

 Профиль  
                  
 
 Re: Пакет многократной точности для BLAS и LAPACK
Сообщение12.10.2022, 00:35 


10/03/16
3871
Aeroport
ilghiz в сообщении #1566538 писал(а):
То есть берем случайную матрицу и умножаем на транспонированную. Ок, получили положительно определенную с плохой обусловленностью.

Все правильно.
ilghiz в сообщении #1566538 писал(а):
А дальше-то что делать?

А вот дальше я не продумал :oops:
У меня была мысль, что "наименьший" (в смысле своего СЗ) вектор надо знать теоретически, но потом в голове глюкнуло и я перешел к случайным матрицам.
А можно я Вам кину матрицу в ЛС а Вы найдете ее два - три минимальных вектора? Их теоретические значения я знаю.

 Профиль  
                  
 
 Re: Пакет многократной точности для BLAS и LAPACK
Сообщение12.10.2022, 00:42 


11/08/18
363
traffic_lights в сообщении #1563347 писал(а):
Перемножение двух квадратных матриц 4000 * 4000 занимает 40 с. на 12-ти ядерном компьютере для точности double-double (~32 десятичных знака).

Странно как-то. Я когда-то тоже писал такой блас, но только для double-double и float-float, последний исключительно для Нвидии, так как у них тогда двойная точность очень медленно на графических картах была.

Так вот одна пара mad для double-double требует 20 обычных double флопов. 12 ядерник за 3ГГц такт дает 8 флопc, то есть 12*3*8/20=14.4ГФлопсов в double-double, и произведение 4К квадратных матриц должно выполниться за 4*4*4*2/14.4=8.9 секунд, то есть или 12 ядерник из 2010 года с 12 мультитредными и 6 реальными ядрами и 4 флопами на ядро, или что-то где-то очень криво реализовано. Сама архитектура double-double при старании ужасно хорошо ложится на процессорный конвейер, если сразу 4 madd считать, а тут, похоже, об этом подзабыли и конвейер-то пустует.

-- 11.10.2022, 23:43 --

ozheredov в сообщении #1566541 писал(а):
А можно я Вам кину матрицу в ЛС а Вы найдете ее два - три минимальных вектора? Их теоретические значения я знаю.

Конечно шлите, попробую обязательно!

 Профиль  
                  
 
 Re: Пакет многократной точности для BLAS и LAPACK
Сообщение12.10.2022, 00:46 


10/03/16
3871
Aeroport
ilghiz
Thanks, пришлю )

 Профиль  
                  
 
 Re: Пакет многократной точности для BLAS и LAPACK
Сообщение12.10.2022, 10:04 


12/07/21
108
Порядки ошибок в собственных векторах и собственных значениях не совпадают (для собственных векторов критична близость соответствующих собственных значений, так что число обусловленности не имеет прямого отношения к точности собственных векторов).

 Профиль  
                  
 
 Re: Пакет многократной точности для BLAS и LAPACK
Сообщение14.10.2022, 22:34 


12/07/21
108
Пользуйтесь только динамическими библиотеками. При использовании статических библиотек могут возникнуть проблемы в точности расчетов (их можно обойти, но размеры экзешников сильно "распухнут").

 Профиль  
                  
 
 Re: Пакет многократной точности для BLAS и LAPACK
Сообщение15.10.2022, 20:52 


11/08/18
363
traffic_lights в сообщении #1566706 писал(а):
Пользуйтесь только динамическими библиотеками. При использовании статических библиотек могут возникнуть проблемы в точности расчетов...

Честно говоря эта фраза указывает на тот факт, что библиотека очень сырая и изобилует багами. В то же время, я знаком с товарищем Nakata Maho еще примерно с 2006-2007, и где-то в 2008 и он и я начали делать эту самую double-double но у него распиариться получилось чуть быстрее, чем у меня и я перестал этим заниматься. Но я совершенно не могу сказать, что Nakata Maho косячник - у него всегда все было очень надежно и стабильно. Поэтому фраза в топике, который я цитирую вызывает удивление, либо ТС - что-то тут пиарит, или ТС не в курсе, или еще как, но после таких слов просто очень сильные сомнения к ТС возникают. Сомнений в надежности софта Nakata Maho у меня нет. Может ТС этот софт просто криво собрал и у него столько кривизны вылезло и он как-то тут аргументированно про это расскажет, может ему помощь в сборке нужна, а он боится попросить :)

 Профиль  
                  
 
 Re: Пакет многократной точности для BLAS и LAPACK
Сообщение15.10.2022, 23:31 


12/07/21
108
ilghiz в сообщении #1566793 писал(а):
traffic_lights в сообщении #1566706 писал(а):
Пользуйтесь только динамическими библиотеками. При использовании статических библиотек могут возникнуть проблемы в точности расчетов...

Честно говоря эта фраза указывает на тот факт, что библиотека очень сырая и изобилует багами ...

Ошибаетесь - почитайте о статических библиотеках. У меня прошли все тесты с динамическими и статическими библиотеками (умело собранными) с одинаковыми результатами. Статические библиотеки использую для студентов.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group