From: Vladislav Zavjalov <slazav@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] [#293095] FAILED del=blas
Date: Tue, 11 Jan 2022 11:53:55 +0300
Message-ID: <20220111085355.GA11726@imap.altlinux.org> (raw)
In-Reply-To: <20220111004639.GC16721@altlinux.org>
On Tue, Jan 11, 2022 at 03:46:39AM +0300, Dmitry V. Levin wrote:
> Коллеги,
>
> Если удалять все пакеты, зависящие от blas, то получается многовато
> пакетов, поэтому пакет blas надо чинить.
Я когда-то собирал для себя информацию про текущее состояни системы blas/lapack,
приложу сюда, вдруг кому-то пригодится, чтоб не запутаться в
многочисленных пакетах.
Я погляжу на починку blas, но не слишком уверен в своих силах, времени и т.п.
## Blas/Lapack
Классические наборы функций для задач линейной алгебры. Blas (Basic
Linear Algebra Subroutines) - работа с матрицами и векторами, Lapack
(Linear Algebra PACKage) - решение систем линейных уравнений. Lapack
использует Blas для работы.
Существуют во множестве разных вариантов, которые можно по всякому друг с
другом комбинировать.
* blas -- стандартный "референсный" Blas.
http://www.netlib.org/blas/
В Altlinux представлен пакетом blas. Используется только на архитектуре
RiscV, где openblas не собирается. Да и там, кажется, без него можно
было обойтись, использовав lapack со своим встроенным blas.
* xblas -- blas повышенной точности.
https://www.netlib.org/xblas/
Используется как дополнение (а не как замена) blas.
В Altlinux представлен пакетом xblas.
* openblas -- Оптимизированная версия Blas, с поддержкой многопоточных вычислений и т.п.
https://github.com/xianyi/OpenBLAS
Считается, что это - наиболее универсальная версия, которую следует везде использовать.
Внутри себя носит lapack (с reference blas), clapack, relapack, xblas, но в Altlinux
собирается без них. Также в Altlinux сейчас не включена поддержка многопоточности,
ни thread, ни openmp.
В Altlinux предоставляет заголовочные файлы от clapack (но не библиотеки!)
При сборке разных программ (я натыкался на это в gmsh и getdp)
считается, что если в системе есть openblas, то он должен предоставлять
и свой lapack. Поскольку у нас lapack отдельный, то автоматика не работает
и приходится вручную указывать, с чем следует линковаться.
* lapack -- стандартный "референсный" lapack.
http://www.netlib.org/lapack/
Внутри себя носит референсный blas, а также cblas (интерфейс для языка
C), Но может быть собран с другими версиями blas. Дополнительно может
использовать xblas (функции повышенной точности).
В Altlinux собран с openblas и xblas. Также из этого пакета ставятся man-pages
для blas и lapack. Как я понял, изначальный замысел был в том, чтобы сделать
этот пакет "главным", чтобы в спек-файлах ставить зависимости именно на
liblapack.
* clapack -- интерфейс языка C к lapack.
В Altlinux собран с openblas. Клиент: libqm-dsp.
* lapackpp -- интерфейс языка C++ для lapack.
А Altlinux собран с openblas. Клиентов не имеет.
* scalapack -- Scalable LAPACK
http://www.netlib.org/scalapack/
Предоставляет также pblas
* libatlas -- Automatically Tuned Linear Algebra Software
http://math-atlas.sourceforge.net/
Blas + небольшая часть lapaсk, оптимизированная под конкретную машину на
этапе сборке. Вещь хорошая и полезная, но при распространении в виде
уже собранных бинарных пакетов вся его сила теряется. В этом случае лучше
использовать openblas.
В Altlinux представлен даво не обновлявшимся пакетом atlas, только на
архитектурах i586 и x86_64. Клиентов не имеет. Видимо, этот пакет
следует удалить.
* eml -- Elbrus Math Libraries
http://www.mcst.ru/
blas, lapack и fftw для компьютеров Эльбрус
У меня когда-то была утопическая идея: сделать один пакет: openblas и
из него собирать все варианты.
Во-первых, там забандлен lapack, внутри которого - reference blas, так
что можно собрать reference версию. Также, разумеется, собрать
оптимизированную версию openblas+lapack. Собрать многопоточную версию
(threads, и, может быть, openmpi).
И все получившиеся варианты переключать альтернативами. То что они
произойдут из одного пакета, будет дополнительной гарантией, что они не
разъедутся.
Мне казалось, что пакеты позволяют это сделать.
prev parent reply other threads:[~2022-01-11 8:53 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-11 0:46 Dmitry V. Levin
2022-01-11 6:47 ` [devel] [#293099] FAILED del=fuse arbars
2022-01-11 10:00 ` Evgeny Sinelnikov
2022-01-11 8:53 ` Vladislav Zavjalov [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220111085355.GA11726@imap.altlinux.org \
--to=slazav@altlinux.org \
--cc=devel@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git