2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Установка pari/gp в linux в подсистеме windows linux subsyst
Сообщение27.11.2019, 14:53 


05/09/16
11467
Имеется Windows 10
В ней включаю (доустанавливаю) Windows Linux Subsystem
Дальше иду в магазин Microsoft и оттуда устанавливаю Ubuntu 18.04 LTS
Появляется консольное приложение (собсно Ubuntu) которое работает и вроде всё норм.
Далее хочу установить pari-gp (хотел сравнить скорость "родного" pari-gp для windows (как я понимаю это обёртка, кнтейнер или как оно там) и вот такого.
Набираю apt search pari-gp
Код:
apt search pari-gp
Sorting... Done
Full Text Search... Done
pari-gp/bionic 2.9.4-1 amd64
  PARI/GP Computer Algebra System binaries

pari-gp2c/bionic 0.0.10pl1-1 amd64
  PARI/GP GP to C compiler

затем набираю sudo apt install pari-gp и понимаю, что оно хочет установить миллион ненужного мне:
код: [ скачать ] [ спрятать ]
  1. Reading package lists... Done 
  2. Building dependency tree 
  3. Reading state information... Done 
  4. The following additional packages will be installed: 
  5.   cpp cpp-7 fontconfig-config fonts-dejavu-core fonts-droid-fallback fonts-lmodern fonts-noto-mono gcc-7-base 
  6.   libauthen-sasl-perl libavahi-client3 libavahi-common-data libavahi-common3 libcairo2 libcups2 libcupsfilters1 
  7.   libcupsimage2 libdata-dump-perl libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libencode-locale-perl 
  8.   libfile-basedir-perl libfile-desktopentry-perl libfile-listing-perl libfile-mimeinfo-perl libfont-afm-perl 
  9.   libfontconfig1 libfontenc1 libfreetype6 libgl1 libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libglvnd0 libglx-mesa0 
  10.   libglx0 libgraphite2-3 libgs9 libgs9-common libharfbuzz-icu0 libharfbuzz0b libhtml-form-perl libhtml-format-perl 
  11.   libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl 
  12.   libhttp-message-perl libhttp-negotiate-perl libice6 libijs-0.35 libio-html-perl libio-socket-ssl-perl 
  13.   libipc-system-simple-perl libisl19 libjbig0 libjbig2dec0 libjpeg-turbo8 libjpeg8 libkpathsea6 liblcms2-2 libllvm8 
  14.   liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl libmpc3 libnet-dbus-perl libnet-http-perl 
  15.   libnet-smtp-ssl-perl libnet-ssleay-perl libnspr4 libnss3 libpaper-utils libpaper1 libpciaccess0 libpixman-1-0 
  16.   libpoppler73 libpotrace0 libptexenc1 libsensors4 libsm6 libsynctex1 libtexlua52 libtexluajit2 libtie-ixhash-perl 
  17.   libtiff5 libtimedate-perl libtry-tiny-perl liburi-perl libwww-perl libwww-robotrules-perl libx11-protocol-perl 
  18.   libx11-xcb1 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-render0 libxcb-shape0 libxcb-shm0 
  19.   libxcb-sync1 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxi6 libxinerama1 libxml-parser-perl 
  20.   libxml-twig-perl libxml-xpathengine-perl libxmu6 libxpm4 libxrandr2 libxrender1 libxshmfence1 libxt6 libxtst6 libxv1 
  21.   libxxf86dga1 libxxf86vm1 libzzip-0-13 lmodern pari-doc pari-elldata pari-galdata pari-seadata perl-openssl-defaults 
  22.   poppler-data t1utils tex-common texlive-base texlive-binaries x11-common x11-utils x11-xserver-utils xdg-utils 
  23. Suggested packages: 
  24.   cpp-doc gcc-7-locales fonts-noto libdigest-hmac-perl libgssapi-perl cups-common liblcms2-utils libcrypt-ssleay-perl 
  25.   lm-sensors libauthen-ntlm-perl libunicode-map8-perl libunicode-string-perl xml-twig-tools pari-gp2c pari-galpol 
  26.   poppler-utils ghostscript fonts-japanese-mincho | fonts-ipafont-mincho fonts-japanese-gothic | fonts-ipafont-gothic 
  27.   fonts-arphic-ukai fonts-arphic-uming fonts-nanum debhelper gv | postscript-viewer perl-tk xpdf-reader | pdf-viewer 
  28.   mesa-utils nickle cairo-5c xorg-docs-core 
  29. The following NEW packages will be installed: 
  30.   cpp cpp-7 fontconfig-config fonts-dejavu-core fonts-droid-fallback fonts-lmodern fonts-noto-mono gcc-7-base 
  31.   libauthen-sasl-perl libavahi-client3 libavahi-common-data libavahi-common3 libcairo2 libcups2 libcupsfilters1 
  32.   libcupsimage2 libdata-dump-perl libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libencode-locale-perl 
  33.   libfile-basedir-perl libfile-desktopentry-perl libfile-listing-perl libfile-mimeinfo-perl libfont-afm-perl 
  34.   libfontconfig1 libfontenc1 libfreetype6 libgl1 libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libglvnd0 libglx-mesa0 
  35.   libglx0 libgraphite2-3 libgs9 libgs9-common libharfbuzz-icu0 libharfbuzz0b libhtml-form-perl libhtml-format-perl 
  36.   libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perl libhttp-daemon-perl libhttp-date-perl 
  37.   libhttp-message-perl libhttp-negotiate-perl libice6 libijs-0.35 libio-html-perl libio-socket-ssl-perl 
  38.   libipc-system-simple-perl libisl19 libjbig0 libjbig2dec0 libjpeg-turbo8 libjpeg8 libkpathsea6 liblcms2-2 libllvm8 
  39.   liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl libmpc3 libnet-dbus-perl libnet-http-perl 
  40.   libnet-smtp-ssl-perl libnet-ssleay-perl libnspr4 libnss3 libpaper-utils libpaper1 libpciaccess0 libpixman-1-0 
  41.   libpoppler73 libpotrace0 libptexenc1 libsensors4 libsm6 libsynctex1 libtexlua52 libtexluajit2 libtie-ixhash-perl 
  42.   libtiff5 libtimedate-perl libtry-tiny-perl liburi-perl libwww-perl libwww-robotrules-perl libx11-protocol-perl 
  43.   libx11-xcb1 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-render0 libxcb-shape0 libxcb-shm0 
  44.   libxcb-sync1 libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxft2 libxi6 libxinerama1 libxml-parser-perl 
  45.   libxml-twig-perl libxml-xpathengine-perl libxmu6 libxpm4 libxrandr2 libxrender1 libxshmfence1 libxt6 libxtst6 libxv1 
  46.   libxxf86dga1 libxxf86vm1 libzzip-0-13 lmodern pari-doc pari-elldata pari-galdata pari-gp pari-seadata 
  47.   perl-openssl-defaults poppler-data t1utils tex-common texlive-base texlive-binaries x11-common x11-utils 
  48.   x11-xserver-utils xdg-utils 
  49. 0 upgraded, 142 newly installed, 0 to remove and 8 not upgraded. 
  50. Need to get 165 MB of archives. 
  51. After this operation, 564 MB of additional disk space will be used. 
  52. Do you want to continue? [Y/n] n 
  53. Abort. 

Во-первых, находится старая версия 2.9 хотя текущая 2.11
Ну это ладно -- я научился редактировать список источников и добавил источник с текущими версиями.
Но вот это вот всё перечисленное, 564 мегабайта дополнительного софта -- оно правда мне надо?

Вопрос -- как установить только pari-gp, только консольную часть (не будет работать draw, конвертер tex - да и фиг с ними) без вот этого всего, и без ненужных мне 160 мегабайтов предвычисленных данных по эллиптическим кривым и т.п.?

 Профиль  
                  
 
 Re: Установка pari/gp в linux в подсистеме windows linux subsyst
Сообщение27.11.2019, 16:57 
Заслуженный участник


09/05/12
25179
Есть три варианта действий:
1. Правильный: пересобрать все нужное из исходников, отключив ненужные возможности и тем самым избавившись от части зависимостей. Результат будет, но очень не скоро.
2. Рискованный: либо принудительно отключить подгрузку пакетов по зависимостям (не стоит - почти наверняка работать не будет), либо после установки удалить насильно то, что кажется лишним. Результат непредсказуем.
3. Разумный: подумать, стоят ли объемная работа в результате п.1 или непредсказуемые глюки в результате п.2 дешевле, чем жалкие полгигабайта на диске.

 Профиль  
                  
 
 Re: Установка pari/gp в linux в подсистеме windows linux subsyst
Сообщение27.11.2019, 17:18 


16/08/05
1146
gp2c подразумевает наличие в системе компилятора gcc и всего что с ним связано, а это действительно не маленький наборчик софта либ и сорцов. Что-то сомневаюсь, что в Windows Linux Subsystem удастся всё это корректно развернуть и настроить. Оно скорее для уже собранных бинарников без сложных зависимостей.

В Линуксе настоящем делал так. Сначала скачивал исходники gmp - важная зависимая либа. Распаковывал её в любую временную папку, из неё запускал последовательно configure, make, make install. Распаковывал исходники pari/gp и запускал Configure --with-gmp, make gp, make install. Распаковывал исходники gp2c и запускал configure, make, make install. Если всё прошло без ошибок, то gp2c должен корректно работать, т.е. компилировать gp-файл в бинарник и сразу его запускать на выполнение.

Виндовый gp.exe и линиксовый бинарник gp сопоставимы по скорости вычислений. Но gp2c иногда ускоряет вычисления в разы.

 Профиль  
                  
 
 Re: Установка pari/gp в linux в подсистеме windows linux subsyst
Сообщение27.11.2019, 17:20 
Заслуженный участник


20/08/14
11064
Россия, Москва
Могут быть не совсем тривиальные зависимости, например отключив что-то там про эллиптические кривые можно попасть на неработающие функции с простыми числами или факторизацией. В самом-самом лучшем случае - работающие, но заметно медленнее.

 Профиль  
                  
 
 Re: Установка pari/gp в linux в подсистеме windows linux subsyst
Сообщение27.11.2019, 17:47 


05/09/16
11467
Pphantom в сообщении #1427959 писал(а):
1. Правильный: пересобрать все нужное из исходников, отключив ненужные возможности и тем самым избавившись от части зависимостей. Результат будет, но очень не скоро.

Пока пошёл этим путём. Пришлось установить 150 мегабайт чего-то для компиляции по месту (sudo apt-get install build-essentials). Хотя я думал, что в линуксах, готовых вот типа убунты, это всегда есть.
dmd в сообщении #1427962 писал(а):
gp2c подразумевает наличие в системе компилятора gcc и всего что с ним связано,
Не, это я пока не собирался ставить. Только интерпретатор. Там разные пакеты, собсно pari-gp и gp2c.
dmd в сообщении #1427962 писал(а):
Сначала скачивал исходники gmp- важная зависимая либа.
Да, её и readline установил.
dmd в сообщении #1427962 писал(а):
Виндовый gp.exe и линиксовый бинарник gp сопоставимы по скорости вычислений.
Вот я и хотел посмотреть. Просто из интереса. Дело в том, что у меня pari-gp есть ещё на планшете, так вот там есть и андроид-приложение. Я же собирал pari-gp из исходников (на планшете, да. в терминале termux). И потом сравнивал. Оказалось, что в терминале заметно быстрее работает. Не знаю почему. Может как раз тогда был какой-то неудачный build андроидного приложения, может ещё что...

-- 27.11.2019, 17:52 --

Dmitriy40 в сообщении #1427963 писал(а):
Могут быть не совсем тривиальные зависимости, например отключив что-то там про эллиптические кривые можно попасть на неработающие функции с простыми числами или факторизацией. В самом-самом лучшем случае - работающие, но заметно медленнее.

Ну вроде не должно. Но -- отключать уже не стал, пусть будет...

При компиляции, кстати, для Configure есть опция --tune которая что-то там оптимизирует в настройках конкретно под машину на которой будет работать код, и обещают до 10% увеличения производительности ( https://pari.math.u-bordeaux.fr/pub/par ... NSTALL.pdf ).

 Профиль  
                  
 
 Re: Установка pari/gp в linux в подсистеме windows linux subsyst
Сообщение27.11.2019, 18:53 


05/09/16
11467
Короче, всё собралось, работает.

Программа (A003401) for(n=1, 10^8, my(t=eulerphi(n)); if(t/2^valuation(t, 2)==1, print1(n, ", ")));
печатает какие правильные многоугольники (до количества сторон $10^8$) можно построить циркулем и линейкой (теорема Гаусса-Ванцеля)
Windows: 3min, 30,187 ms.
Windows Linux Subsystem: 3min, 38,703 ms.

Поодиночке едят 30% CPU каждая, впараллель едят 60% CPU на двоих, работают (параллельно обе) теже 4 минуты (windows: 4min, 1,094 ms.; linux: 4min, 8,172 ms.)
Изображение

То есть - одинаково. :mrgreen:

 Профиль  
                  
 
 Re: Установка pari/gp в linux в подсистеме windows linux subsyst
Сообщение29.11.2019, 21:00 


16/08/05
1146
Тоже попробовал потестить в виртуалке. gp2c выигрывает 16 секунд, не в разы конечно, но всё равно не плохо. Единственно что не понял, gp никакого выделения памяти для этого теста не требовал, а gp2c понадобилось аж 16 гиг, что странно. В предыдущих версиях такого не замечал.

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

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



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

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


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

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