LINUX.ORG.RU

Сборка полного LAPACK в ATLAS в виде *.so


0

1

Существует ли какой-то стандартный способ сделать это? Гугл дает кучу советов вида:

../configure --shared
однако тогда, похоже, как динамическая библиотека соберется лишь атлас (libsatlas.so и libtatlas.so, остальное все *.a, после чего наблюдаются проблемы с numpy, octave и прочими приложениями, которые хотят именно *.so).
Пока не нашел ничего лучше, как расковырять PKBUILD от archlinux'а, благо раньше пользовался им, и посмотреть, как там. Хотелось бы узнать, есть ли стандартный способ, без ковыряния руками Makefile/написания своих? Неужели разработчики ничего не предусмотрели? Аналогичный вопрос по сборке обычного Netlib LAPACK - в интернете полно рецептов, начинающихся со слов «лезем в Makefile и меняем там следующие строки...».
Заранее извиняюсь, если вопрос глупый.


Ответ на: комментарий от dinn

Ок, спасибо, значит по другому, видимо, не получится. Еще вопрос - когда собираю с --shared, почти в самом конце сборки получаю ошибку:

ld cannot find -lgcc
- но собирается все до конца. Тесты проходятся. Но нервируют сообщение, что ld вернул 1. Система slackware14 x86_64.

CAPA
() автор топика
Ответ на: комментарий от CAPA

Там вообще жутко сделана система сборки без libtool, поэтому во всех дистрибутивах накладывают патчи, чтобы было более-менее приемлемо. Возможно стоит посмотреть как это сделано у других. Вроде предлагались варианты переделать всё нормально на cmake, но авторы не хотят переписывать всю систему сборки.

dinn ★★★★★
()
Последнее исправление: dinn (всего исправлений: 1)
Ответ на: комментарий от dinn

Вроде собрал так, как это в арчевском pkgbuild сделано - сначала собираются через make статические либы с -fPIC, потом самописным мэйкфайлом из них линкуются сошки.
Октава собралась, тесты прошла, запускается. Сейчас вот буду numpy собирать. Большое спасибо за разъяснения, а то мне казалось, что это я что-то не так делаю.

CAPA
() автор топика
Ответ на: комментарий от CAPA

Октава собралась, тесты прошла, запускается.

И есть разница по сравнению с применением обычного lapack?

dinn ★★★★★
()
Ответ на: комментарий от dinn

Сейчас прямо не скажу - потому как сразу ставил с атласом. Но в арче наблюдал сильный прирост производительности с atlas-lapack - например, диагонализация большой матрицы происходила чуть ли не в два раза быстрее (по ощущениям, специально не замерял). Вообще, самому интересно, насколько конкретно прирост. Там же, ко всему прочему, судя по описанию, либы с pt в имени вообще многопоточные.

CAPA
() автор топика
Ответ на: комментарий от CAPA

Можно лучше сделать. Собрать лапак нетлибовский и с атласом в хомяке статически. Написать тест на фортране простенький и сравнить. Как-нибудь займусь. А так, вообще, странные вещи творятся. Моя счетная программа использует ровно две функции из этих либ - для обращения матрицы. Так вот, или я что-то делаю не так, или у меня мкл работает медленнее обычного лапака на интеловском же проце.

CAPA
() автор топика
Ответ на: комментарий от dinn

Кстати, логично, что в 2 раза. Дело было, как тогда помню, на двух ядерном турионе амдишном ещё на третьем курсе, что ли... С тех пор особо не надо было, матрицы все больше ленточные и даже трехдиагональные, легче самому было писать.
Ещё вариант в реальных программах больших попробовать - типа сиесты и октопуса (квантовая химия). Здесь вроде кто-то есть, кто подобными расчетами занимается. Эти пакеты точно от лапака и бласа зависят (а ещё от BLACS и SCALAPACK, правда).

CAPA
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.