[devel] пакеты для численного счета
Andrey Savchenko
bircoph на altlinux.org
Пт Сен 25 22:52:14 MSK 2020
On Fri, 25 Sep 2020 18:15:46 +0300 Anton Farygin wrote:
> On 25.09.2020 15:55, Vladislav Zavjalov wrote:
> > On Fri, Sep 25, 2020 at 03:20:56PM +0300, Anton Farygin wrote:
> >> On 20.09.2020 16:28, Vladislav Zavjalov wrote:
> >>> * openblas -- Оптимизированная версия Blas, с поддержкой
> >>> многопоточных вычислений и т.п.
> >>> https://github.com/xianyi/OpenBLAS
> >>>
> >>> Openblas может и сам предоставлять стандартный lapack, но у нас он собран с ключом
> >>> NO_LAPACK=1. При этом в заголовочные файлы функции из lapack попадают, а
> >>> в библиотеку - нет. В результате, при сборке разных программ возникают
> >>> проблемы на этапе линковки, даже если liblapack-devel есть в системе.
> >>> Приходится вручную указывать, что линковаться надо с libopenblas + liblapack.
> >> Это, наверное, плохо. Может быть стоит его собрать с внешним lapack ?
> > Так сейчас он и используется с внешним lapack. При этом lapack носит
> > свой blas, и устанавливает man-pages от него. А h-файлов в нем и нет,
> > они - от clapack. Так что все весьма запутано.
> >
> > Как я понимаю, идея была сделать liblapack точкой входа, чтобы на него
> > ставить зависимости, а он уже вытягивал openblas и все нужное в системе
> > было.
> >
> > Мне сейчас больше нравится идея собрать obenblas со всеми опциями, со
> > своими lapack, clapack, многопоточностью. И использовать только его.
> А как другие дистрибутивы выкручиваются ?
Здесь есть две ситуации:
1) используется стандартный интерфейс (C)BLAS/LAPACK(E);
2) используются дополнительные фичи конкретных библиотек.
Во втором случае, очевидно, идёт линковка с конкретными
библиотеками.
А вот первый в Debian очень грамотно решили: поскльку стандартный
интерфейс одинаков, библиотеки с помощью alternatives можно
переключать run-time кому какая больше нравится. По сути, меняются
симлинки, а оригинальные библиотеки изначально распихиваютсся по
своим директориям с переименованием soname по необходимости.
https://wiki.debian.org/DebianScience/LinearAlgebraLibraries
В Gentoo в рамках GSoC реализовали аналогичное решение: можно
собрать все библиотеки с USE="eselect-ldso" и посрдеством eselect
выбирать ту, что больше нравится. Это тоже делается run-time.
https://wiki.gentoo.org/wiki/Blas-lapack-switch
При желании можно даже собрать два варианта одной и той же
библиотеки (например, openblas нельзя собрать одновременно
с pthread и openmp, поэтому можно собрать один вариант с pthread,
а другой с openmp) и тоже между ними переключаться. Но это уже
некоторая морока.
Best regards,
Andrew Savchenko
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 833 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20200925/2b2965b9/attachment.bin>
Подробная информация о списке рассылки Devel