ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Andrey Savchenko <bircoph@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: Re: [devel] пакеты для численного счета
Date: Sun, 20 Sep 2020 22:00:59 +0300
Message-ID: <20200920220059.9db5e58134f75b472b94b6a2@altlinux.org> (raw)
In-Reply-To: <20200920184133.GG26263@imap.altlinux.org>

[-- Attachment #1: Type: text/plain, Size: 4826 bytes --]

On Sun, 20 Sep 2020 21:41:33 +0300 Vladislav Zavjalov wrote:
> On Sun, Sep 20, 2020 at 07:34:57PM +0300, Vladimir D. Seleznev wrote:
> > > Не уверен, что я понял все тонкости. Пока мне кажется разумным следующее:
> > > 
> > > * Исправить openblas, чтобы с NO_LAPACK=1 он не делал вид, что
> > >   предоставляет lapack.
> > >   Если это сложно, то использовать его встроенный lapack +
> > >   отвязать liblapack от openblas.
> > > 
> > > * Может быть, удалить blas + liblapack и использовать только openblas.
> > 
> > А какие есть против такого варианта?
> 
> А это я и пытаюсь спросить. Я-то не против все упростить как только
> можно. Но потом окажется, что есть разные тонкости.

Есть референсные реализации blas и lapack, есть оптимизированные,
притом оптимизации разные под разные профили нагрузки. Даже
openblas можно собрать с openmp и threads (оба опционально) и для
разных типов задач и нагрузки производителность разная будет.

Ситуацию усложняет то, что кроме рефенернсных функций ряд библиотек
предоставляет расширения, поэтому они более-менее взаимозаменяемы
только по стандартному интерфейсу blas/lapack, но не по полному
набору функций. Например, xblas даёт повышенную точность.

Ещё не забывайте про cblas и lapacke (реализации на C).

Atlas уникален тем, что подстраивается под конкретную систему, это
ведь Automatically Tuned Linear Algebra System. И делает он это
во время сборки: для каждой функции тестирует разные реализации
и/или способы сборки и выбирает наиболее быструю. Очевидно, что
оптимально на сборочнице, не будет оптимально на пользовательских
машинах. Мало того, в зависимости от нагрузки сборочницы результат
сборки пакета может оказаться разным, т.к. под высокой и низкой
нагрузкой могут быть оптимальны разные оптимизации.

Так что это очень крутая штука, чтоб предоставить удобный способ её
сборки пользователям для своих систем, но не очень хорошо подходит
для единой бинарной сборки для всех.

Я бы предложил собрать всё что можно с openblas и в самом openblas
включить поддержку как openmp, так и threads, но при этом сохранить
альтернативные библиотеки для нуждающихся. Так же не исключено, что
с openblas соберётся не всё.

> > > Еще бы понять, какие клиенты используют эти библиотеки...
> > 
> > Клиенты libatlas:
> >-
> > * libarpack-ng
> 
> Спасибо за списки! libarpack - это нужная вещь, попробую
> пересобрать. С ней собран, например, octave, он у меня
> и втаскивает libatlas в систему.
> 
> Остальное, получается, собрано правильно. Хотя с openblas надо бы
> что-то сделать. Сейчас и configure и cmake уверены, что lapack находится
> в нем, и вылетают на линковке, если делать сборку в дефолтной конфигурации.
> Это исправляется явным указанием, что надо линковаться еще и с liblapack,
> но хочется и дефолтное поведение сделать рабочим.
> 
> _______________________________________________
> Devel mailing list
> Devel@lists.altlinux.org
> https://lists.altlinux.org/mailman/listinfo/devel

Best regards,
Andrew Savchenko

[-- Attachment #2: Type: application/pgp-signature, Size: 833 bytes --]

  parent reply	other threads:[~2020-09-20 19:00 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-20 10:36 Vladislav Zavjalov
2020-09-20 13:28 ` Vladislav Zavjalov
2020-09-20 16:34   ` Vladimir D. Seleznev
2020-09-20 18:41     ` Vladislav Zavjalov
2020-09-20 18:53       ` Vladislav Zavjalov
2020-09-20 21:47         ` Vladimir D. Seleznev
2020-09-20 21:56           ` Vladislav Zavjalov
2020-09-21 19:54           ` Vitaly Lipatov
2020-09-21 20:10             ` Vladimir D. Seleznev
2020-09-22  3:44               ` Anton Farygin
2020-09-22 14:26             ` Igor Vlasenko
2020-09-20 19:00       ` Andrey Savchenko [this message]
2020-09-20 20:25         ` Vladislav Zavjalov
2020-09-21 19:24           ` Andrey Savchenko
2020-09-22 11:24     ` Vladimir D. Seleznev
2020-09-21  9:49   ` Ivan A. Melnikov
2020-09-21 10:25     ` Vladislav Zavjalov
2020-09-25 12:20   ` Anton Farygin
2020-09-25 12:55     ` Vladislav Zavjalov
2020-09-25 15:15       ` Anton Farygin
2020-09-25 15:48         ` Vladislav Zavjalov
2020-09-25 19:52         ` Andrey Savchenko
2020-09-28  8:19           ` Vladislav Zavjalov

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=20200920220059.9db5e58134f75b472b94b6a2@altlinux.org \
    --to=bircoph@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