Через тернии к звездам или как настроить работу boinc в консоли...

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Demis
мл. сержант
Сообщения: 99
Зарегистрирован: 2015-05-25 14:36:32

Через тернии к звездам или как настроить работу boinc в консоли...

Непрочитанное сообщение Demis » 2017-03-09 14:15:13

Долго думал, написать это или нет, но решил поделиться.
Речь пойдет о кранчинге, точнее как его настроить на любимой системе.
Кому это неинтересно дальше могут не читать.
Это личный выбор каждого.
Просто у меня есть одна-две машины которые несущественно нагружены, так пусть еще и пользу науке приносят, все равно жужжат, электричество в пустую тратят.

Немного вводного.
Кранчер - это производное от слова to crunch
(производить вычисления, обрабатывать данные, оперировать огромными массивами данных, обрабатывать большие массивы информации, перемалывать информацию).
Идея в том, чтобы произвести сложные вычисления на некотором числе добровольно принимающих участие компьютерах, участвующих в том или ином проекте, собрать вычисления и обработать для получения некоего результата.

Корнями идея переноса вычислений с супер-компьютеров на компьютеры добровольцев родилась в глубинах мозга института в Беркли https://boinc.berkeley.edu/, создавшего нашу любимую систему.
Что, в общем, наверное не удивительно...

БОИНК (BOINC) - гуглится как "Berkeley Open Infrastructure for Network Computing".
Открытая программная платформа (университета Беркли для GRID вычислений) - некоммерческое межплатформенное ПО для организации распределённых вычислений. Используется для организации добровольных вычислений (https://ru.wikipedia.org/wiki/BOINC).

В принципе ничего сложного, на виндовом клиенте ставится программа, подписываешься на проект и работа пошла.
Ну иногда потратишь немного времени, чтобы подобрать свои параметры, чтобы не мешало смотреть фильмы.
Не суть.

Но тут как-то давеча озадачился, а где-же клиент на любимой системе, но "без окошек"?
А вот они:

Код: Выделить всё

locate boinc
/usr/ports/astro/boinc-astropulse
/usr/ports/astro/boinc-setiathome-v7
/usr/ports/net/boinc-client
/usr/ports/net/boinc_curses

Вроде все просто, но проковырявшись понял, что чтобы все заработало как нужно, как всегда, необходимо применить часть серых клеточек.
Да, информация о настройке оказалась разрозненная, а мана вообще нет.

Итак, теперь можно с достаточной уверенностью определить примерный путь настройки клиента.
Все действия выполнялись на физических машинах:
uname -rm
10.3-RELEASE i386

Перед сборкой проверяем наличие подгруженного linux.ko .
kldstat должен нам показать его:

Код: Выделить всё

Id Refs Address    Size     Name
 1   13 0xc0400000 140bd98  kernel
 2    2 0xc535c000 12000    ipfw.ko
 3    1 0xc4f2c000 4000     ipfw_nat.ko
 4    1 0xc537f000 e000     libalias.ko
 5    1 0xc53d9000 45000    linux.ko

если его нет, то:

Код: Выделить всё

kldload linux.ko

И сразу добавить его в /etc/rc.conf

Код: Выделить всё

linux_enable="YES"

И поскольку залезли в /etc/rc.conf , то сразу добавим:

Код: Выделить всё

boinc_enable="YES"
boinc_client_enable="YES"

Далее как обычно:

Код: Выделить всё

cd /usr/ports/net/boinc-client
make config

Убираем GUI менеджер и Иксы (мне нужно было чтобы работало только в CLI)

Код: Выделить всё

                      --------------------------- boinc-client-7.2.33_6 -----------------------------¬
                      ¦ ---------------------------------------------------------------------------¬ ¦
                      ¦ ¦ [x] CLIENT       Build BOINC client                                      ¦ ¦
                      ¦ ¦ [x] LINUX        Accept Linux science applications                       ¦ ¦
                      ¦ ¦ [ ] MANAGER      Build BOINC manager GUI                                 ¦ ¦
                      ¦ ¦ [x] NLS          Native Language Support                                 ¦ ¦
                      ¦ ¦ [ ] SKINS        Install more skins for BOINC manager                    ¦ ¦
                      ¦ ¦ [x] USER         Create/check BOINC client user and directory            ¦ ¦
                      ¦ ¦ [ ] X11          Build graphics API                                      ¦ ¦
                      ¦ ¦---------------------- Command line options in script --------------------¦ ¦
                      ¦ ¦ [ ] NO_GUI_RPC   Disable GUI RPC and socket (breaks boinc_curses)        ¦ ¦
                      ¦ ¦ [ ] NO_NET_INFO  Do not send host address and name to servers            ¦ ¦
                      ¦ L--------------------------------------------------------------------------- ¦
                      +------------------------------------------------------------------------------+
                      ¦                       <  OK  >            <Cancel>                           ¦
                      L-------------------------------------------------------------------------------

Лично я поставил галки как указано выше.
Отмечу, что "NO_NET_INFO Do not send host address and name to servers" позволяет запретить отсылать FQDN на сайт статистики.
Об этом ниже напишу. Мне например, не очень понравилась эта история, что светится имя внутреннего домена.
Ситуевина с этим немного странная, т.к. виндовый клиент никогда не отсылает имя домена, только имя хоста (что для меня лично не критично).

Несмотря на то, что есть пункт "NO_GUI_RPC Disable GUI RPC and socket (breaks boinc_curses)", его все-таки лучше НЕ устанавливать.
Если установили, то рушится не только связь с boinc_curses, но и родной интерфейс связи от клиента к самому себе через локальный сокет.
На любое действо с клиентом будет выводиться "can't connect to local host".

Не тратьте время.

Далее, тоже не тратьте время, но сразу сделайте как написано в http://boinc.berkeley.edu/wiki/Installing_on_FreeBSD.
Цитирую:

Код: Выделить всё

1.    go to /usr/ports/net/boinc-client/, open the Makefile in a text editor
2.    change the CONFIGURE_ARGS=--disable-server as follows:
+        1. on 32 bit FreeBSD change it to
        CONFIGURE_ARGS=--disable-server --with-boinc-platform=i686-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
        2. on 64 bit FreeBSD change it to
        CONFIGURE_ARGS=--disable-server --with-boinc-platform=x86_64-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
3.    do make install clean
4.    if you receive an error like "ELF 0 ....", make sure you have installed
        1. /usr/ports/emulators/linux_base-fc4 or higher
+        2. sysctl kern.elf32.fallback_brand=3

Плюсом пометил то, что сделал у себя.
Без этого шаманства клиент собирается, но не работает.

На всех запрошенных портах говорим "YES" ничего не изменяя.

Если собираем на чистой системе, то возникнет стоп по безопасности perl5-5.20.3_8 is vulnerable
про него написано ee /usr/ports/UPDATING

Код: Выделить всё

20150914:
  AFFECTS: users of lang/perl5*
  AUTHOR: mat@FreeBSD.org

  Binary package users can ignore this.

  The way lang/perl5* ports install themselves has changed.  From now on, only
  the default Perl port (currently 5.20), or the version listed in
  DEFAULT_VERSIONS, will install /usr/local/bin/perl.

  If you are NOT using the default version of Perl (as of right now, it is
  5.20) you MUST add a line setting the version you are using to your
  /etc/make.conf, to preserve /usr/local/bin/perl:

  DEFAULT_VERSIONS+=    perl5=5.xx

  If your Perl package name is not called perl5-5.xx.y but perl5.xx-5.xx.y,
  you will need to rename it so that portupgrade and portmaster do not get
  confused:

    pkg set -n perl5.xx:perl5

  After this date, to migrate from one Perl version to the other, you must
  first put the DEFAULT_VERSIONS line in your make.conf, and then, for example,
  if you want to move from 5.20 to 5.22, do:

        pkg set -o lang/perl5.20:lang/perl5.22
        portmaster `pkg shlib -qR libperl.so.5.20`

  If you do not do that, you will replace your default Perl 5.20 installation
  (one that has /usr/local/bin/perl) with an installation that does not have
  /usr/local/bin/perl, and it will break everything.

Лично я забил на это, просто отложив историю по переходу на перл новой версии, собрав так:

Код: Выделить всё

cd /usr/ports/net/boinc-client
make DISABLE_VULNERABILITIES=yes install


На всех запрошенных портах говорим "YES" ничего не изменяя.
Добавилось вроде только это:
В ee /var/log/messages появились записи:

Код: Выделить всё

Mar  6 09:57:07 gw1 pkg-static: m4-1.4.17_1,1 installed
Mar  6 11:32:55 gw1 pkg-static: perl5-5.20.3_8 installed
Mar  6 11:33:07 gw1 pkg-static: p5-Locale-gettext-1.06 installed
Mar  6 11:33:20 gw1 pkg-static: gmake-lite-4.1_1 installed
Mar  6 11:33:23 gw1 pkg-static: help2man-1.43.3_1 installed
Mar  6 11:33:32 gw1 pkg-static: autoconf-wrapper-20131203 installed
Mar  6 11:33:33 gw1 pkg-static: autoconf-2.69 installed
Mar  6 11:33:42 gw1 pkg-static: automake-wrapper-20131203 installed
Mar  6 11:33:42 gw1 pkg-static: automake-1.15_1 installed
Mar  6 11:33:55 gw1 pkg-static: libtool-2.4.6 installed
Mar  6 11:36:14 gw1 pkg-static: ca_root_nss-3.22.2 installed
Mar  6 11:36:19 gw1 pkg-static: curl-7.47.0 installed
Mar  6 12:00:11 gw1 pkg-static: boinc-client-7.2.33_6 installed

Замечено, что на некоторых машинах галка на

Код: Выделить всё

[x] LINUX        Accept Linux science applications

Почему-то мешается (вроде при повторной сборке, но не уверен).
Снимаем, порт собирается нормально.

Когда порт соберется нужно его настроить.
Разобраться с этим помогла статья https://people.freebsd.org/~pav/boinc.html

Но опишу как (что именно) сделано мной, это был тот еще танец, хотя, как посмотреть.
По дефолту боинк клиент устанавливается в /var/db/boinc
При этом сначала будет так:

Код: Выделить всё

ls -l /var/db/boinc/
total 0
lrwxr-xr-x  1 boinc  boinc  38 Mar  6 12:00 ca-bundle.crt -> /usr/local/share/certs/ca-root-nss.crt

Запустим клиента:

Код: Выделить всё

/usr/local/etc/rc.d/boinc-client start
Starting boinc_client.

Всю работу с клиентом необходимо проводить в каталоге /var/db/boinc

Код: Выделить всё

cd /var/db/boinc

После старта в нем появится некоторое количество файлов.

Код: Выделить всё

ls -l /var/db/boinc/
total 88
-rw-r--r--  1 boinc  boinc  54025 Mar  6 12:23 all_projects_list.xml
lrwxr-xr-x  1 boinc  boinc     38 Mar  6 12:00 ca-bundle.crt -> /usr/local/share/certs/ca-root-nss.crt
-rw-r--r--  1 boinc  boinc   2186 Mar  6 12:23 client_state.xml
-rw-r--r--  1 boinc  boinc   2186 Mar  6 12:23 client_state_prev.xml
-rw-r--r--  1 boinc  boinc    155 Mar  6 12:23 coproc_info.xml
-rw-r--r--  1 boinc  boinc    112 Mar  6 12:23 daily_xfer_history.xml
-rw-r--r--  1 boinc  boinc      0 Mar  6 12:23 lockfile
drwxrwx--x  2 boinc  boinc    512 Mar  6 12:23 notices
-rw-r--r--  1 boinc  boinc      0 Mar  6 12:23 stderrdae.txt
-rw-r--r--  1 boinc  boinc      0 Mar  6 12:23 stderrgpudetect.txt
-rw-r--r--  1 boinc  boinc   1730 Mar  6 12:24 stdoutdae.txt
-rw-r--r--  1 boinc  boinc     68 Mar  6 12:23 stdoutgpudetect.txt
-rw-r--r--  1 boinc  boinc     57 Mar  6 12:24 time_stats_log

Теперь нужно поключить клиента к проекту.
Но как это сделать?

Сначала нужно получить свой "account key".
А как?
Мне, например, хотелось подключиться к проекту https://lhcathome.cern.ch/lhcathome/

Но, опять, но, но, но...

Если мы идем на https://lhcathome.cern.ch/lhcathome/login_form.php
И далее на "создать учётную запись" (https://lhcathome.cern.ch/lhcathome/create_account_form.php?next_url=).
Первое, что мы увидим это:

Код: Выделить всё

"ЗАМЕТКА: Если у Вас есть BOINC Manager, не используйте эту форму. Вместо этого запустите BOINC, выберите Добавить проект, и введите свой e-mail и пароль."

Поскольку у меня уже есть аккаунт "BOINC Manager" на сайте https://boincstats.com/ru ,
то зайдя под своей учеткой я добавил проект LHC@Home список своих проектов.

На этом сайте это делается через "Sign-up for projects" в левой части меню сайта
Подписавшись под проект он "исчезает" из этого меню и появляется в "My projects"
И через некоторое время (сутки, двое) робот автоматом меня зарегистрировал на https://lhcathome.cern.ch/lhcathome/

На самом деле можно применять и другие сайты для управления проектами, просто пишу как у меня.
Не думаю, что это критично.

Заметил такую вещь, что именно на https://lhcathome.cern.ch/lhcathome/ робот отрегистрировал меня по майлу, а не нику.
Почему не знаю.

Но когда все сделалось я смог зайти введя как логин свой майл, пароль такой-же как на https://boincstats.com/ru .
Хорошо это или плохо отдельный разговор, обсуждать не буду, но так это работает.
Т.е. везде на что подписываешся - один лоджин, один пароль.

Таким образом дождавшись активации и проверив, что туда можно зайти (https://lhcathome.cern.ch/lhcathome/) - продолжаем работу по настройке клиента.
Мы помним, что остановились на "account key", теперь ничто не мешает нам его получить.
Делаем (помним, что клиент у нас уже стартанул):

Код: Выделить всё

cd /var/db/boinc
boinccmd --lookup_account https://lhcathome.cern.ch/lhcathome/ MyEmail password

Видим нечто подобное:

Код: Выделить всё

status: Success
poll status: operation in progress
poll status: operation in progress
account key: c9b14123e347gbft123s7gg8w5f89s5s

Свой настоящий кей я видоизменил для публикации, т.е. это просто рукописный пример.
Вы получите свой персональный.

Продолжим, подпишем компьютер на получение заданий:

Код: Выделить всё

boinccmd --project_attach https://lhcathome.cern.ch/lhcathome/ c9b14123e347gbft123s7gg8w5f89s5s

Проверяем так:

Код: Выделить всё

boinccmd --get_project_status

Видим:

Код: Выделить всё

======== Projects ========
1) -----------
   name:
   master URL: https://lhcathome.cern.ch/lhcathome/
   user_name:
   team_name:
   resource share: 100.000000
   user_total_credit: 0.000000
   user_expavg_credit: 0.000000
   host_total_credit: 0.000000
   host_expavg_credit: 0.000000
   nrpc_failures: 0
   master_fetch_failures: 0
   master fetch pending: no
   scheduler RPC pending: yes
   trickle upload pending: no
   attached via Account Manager: no
   ended: no
   suspended via GUI: no
   don't request more work: no
   disk usage: 0.000000
   last RPC: 0.000000
   project files downloaded: 0.000000

И так:

Код: Выделить всё

boinccmd --get_tasks

тут тоже пусто.

Т.е. все по нулям.

Через некоторое время (оно на самом деле настраивается) проверяем снова:

Код: Выделить всё

boinccmd --get_project_status
======== Projects ========
1) -----------
   name: LHC@home
   master URL: https://lhcathome.cern.ch/lhcathome/
   user_name: Demis
   team_name: BOINCstats
   resource share: 100.000000
   user_total_credit: 401786.794103
   user_expavg_credit: 400.372667
   host_total_credit: 0.000000
   host_expavg_credit: 0.000000
   nrpc_failures: 0
   master_fetch_failures: 0
   master fetch pending: no
   scheduler RPC pending: no
   trickle upload pending: no
   attached via Account Manager: no
   ended: no
   suspended via GUI: no
   don't request more work: no
   disk usage: 0.000000
   last RPC: 1488811061.626560
   project files downloaded: 0.000000
GUI URL:
   name: Message boards
   description: Correspond with other users on the LHC@home message boards
   URL: https://lhcathome.cern.ch/lhcathome/forum_index.php
GUI URL:
   name: Your account
   description: View your account information
   URL: https://lhcathome.cern.ch/lhcathome/home.php
GUI URL:
   name: Your tasks
   description: View the last week or so of computational work
   URL: https://lhcathome.cern.ch/lhcathome/results.php?userid=123456
GUI URL:
   name: FAQ
   description: Frequently Asked Questions on LHC@home
   URL: http://lhcathome.web.cern.ch/faq
GUI URL:
   name: Your team
   description: View information about your team: BOINCstats
   URL: https://lhcathome.cern.ch/lhcathome/team_display.php?teamid=40

О-o-o!!!
Приехала некая статистика!
Она у меня была от виндового клиента.
Т.е. связь с серверами установилась.

Ждем

Код: Выделить всё

boinccmd --get_tasks


И тут меня посетило огорчение.
Заданий нет и нет, нет и нет, нет и нет.

Смотрим по

Код: Выделить всё

boinccmd --get_messages

127: 14-Jan-2017 22:35:25 (low) [https://lhcathome.cern.ch/lhcathome/] Master file download succeeded
128: 14-Jan-2017 22:35:30 (low) [https://lhcathome.cern.ch/lhcathome/] Sending scheduler request: Project initialization.
129: 14-Jan-2017 22:35:30 (low) [https://lhcathome.cern.ch/lhcathome/] Requesting new tasks for CPU
130: 14-Jan-2017 22:35:34 (low) [LHC@home] Scheduler request completed: got 0 new tasks
131: 14-Jan-2017 22:35:34 (user notification) [LHC@home] Message from server: This project doesn't support computers of type i386-pc-freebsd


И вот эта 131 строка меня и расстроила:

Код: Выделить всё

This project doesn't support computers of type i386-pc-freebsd

Как-же так?
Ну как-же так??
Ну почему так???

Стал читать Интернет, а там все грустно:
http://setiathome.berkeley.edu/beta/forum_thread.php?id=1813

Код: Выделить всё

Сообщение 39871 - Отправлено: 28 Aug 2010, 5:34:52 UTC - в ответ на Сообщение 39865.

So that you know, BSD is copyright UC Berkeley. FreeBSD (Open Source) is based on the original BSD source code.
Seti runs Fedora.

конец цитаты

И нашел много подобных сообщений, более лохматых по возрасту.

Начал переписку с людьми по этому вопросу,
просто процитирую себя из переписки с одним человеком:

Код: Выделить всё

Захотелось мне дома поставить на freebsd боинк клиента работающего в ком. строке...

А в ответ - облом.
Все интересные мне проекты посылают далеко...

За что-же они так не любят?
Обидно...

uname -a
FreeBSD fit.simple.local 10.3-RELEASE FreeBSD 10.3-RELEASE #0 r311352: Thu Jan 5 17:23:28 MSK 2017 demis@fit.simple.local:/usr/obj/usr/src/sys/FIT i386

boinccmd --get_messages

48: 14-Jan-2017 04:04:39 (low) [http://setiathome.berkeley.edu/] Master file download succeeded
49: 14-Jan-2017 04:04:44 (low) [http://setiathome.berkeley.edu/] Sending scheduler request: Project initialization.
50: 14-Jan-2017 04:04:44 (low) [http://setiathome.berkeley.edu/] Requesting new tasks for CPU
51: 14-Jan-2017 04:04:48 (low) [SETI@home] Scheduler request completed: got 0 new tasks
52: 14-Jan-2017 04:04:48 (user notification) [SETI@home] Message from server: This project doesn't support computers of type i386-pc-freebsd

76: 14-Jan-2017 22:18:55 (low) [http://einstein.phys.uwm.edu/] Master file download succeeded
77: 14-Jan-2017 22:19:00 (low) [http://einstein.phys.uwm.edu/] Sending scheduler request: Project initialization.
78: 14-Jan-2017 22:19:00 (low) [http://einstein.phys.uwm.edu/] Requesting new tasks for CPU
79: 14-Jan-2017 22:19:05 (low) [Einstein@Home] Scheduler request completed: got 0 new tasks
80: 14-Jan-2017 22:19:05 (low) [Einstein@Home] platform 'i386-pc-freebsd' not found

127: 14-Jan-2017 22:35:25 (low) [https://lhcathome.cern.ch/lhcathome/] Master file download succeeded
128: 14-Jan-2017 22:35:30 (low) [https://lhcathome.cern.ch/lhcathome/] Sending scheduler request: Project initialization.
129: 14-Jan-2017 22:35:30 (low) [https://lhcathome.cern.ch/lhcathome/] Requesting new tasks for CPU
130: 14-Jan-2017 22:35:34 (low) [LHC@home] Scheduler request completed: got 0 new tasks
131: 14-Jan-2017 22:35:34 (user notification) [LHC@home] Message from server: This project doesn't support computers of type i386-pc-freebsd

http://setiathome.berkeley.edu/beta/forum_thread.php?id=1813

Сообщение 39871 - Отправлено: 28 Aug 2010, 5:34:52 UTC - в ответ на Сообщение 39865.

So that you know, BSD is copyright UC Berkeley. FreeBSD (Open Source) is based on the original BSD source code.
Seti runs Fedora.
конец цитаты

и вторая цитата из моей переписки:

Код: Выделить всё

Я (т.е. мне, другому пользователю, человеку) многие вещи неизвестны, это первое (здесь и далее касательно только "объяснения").
У меня "возникло" желание помочь, просто помочь, в хорошем смысле этого слова, это второе.
(На самом деле не первое желание, т.к. первый мой аккаунт по seti был создан примерно в 2000-2002 году, наверное даже могу разыскать, т.к. вроде делал слепок системы того времени, не суть).
Мне неизвестно, да в общем-то это и неважно "как именно", как именно это работает, это в третьих.
Конечно странно чувствовать себя одного "идиотом" среди шести миллиардов населения Земли, которым это "не надо".
Вряд-ли об этом задумывался скажем Эйнштейн, хотя, кто его знает...
Но я знаю, что я ничего не знаю и это Реально работает.

Связки "бизнес|деньги|наука" более или менее понятны, ну а куда (по большому счету) без них?
(Неплохой пример - фильм "Контакт", хотя и фантастика, а ведь это тоже момент "популяризации" кстати. В хорошем смысле).
Мне так представляется, что сами ученые вряд-ли сами пишу программы.
Скорее всего есть некое окружение (или оболочка) которое им позволяет написать "задачу".
Если окружение не позволяет, то они задают "задачку" программерам.
Дескать нужно то-то и то-то.

Вот и получается, что на текущий момент кого-то просто посчитали не нужными, т.е. вычеркнули.
Хотя на FreeBSD порт есть и он даже работает (хотя и написано что ищут майнтейнера).
Но кто-то посчитал что для фришников это роскошь...
Поползав по сети нашел много вопросов по моей теме, причем по датам весьма лохматые (2006, 2004 года).
И никто на это не обращает внимания, ни ученые, ни разработчики приложений для них.
На дворе уже 2017 год, а толку-то?
Хотя фришники порт дотянули уже до десятки...
Видимо считают что 1,5-2% не влияют...
Вот за "то" и обидно.
...
...
...
НЕ суть.

Вполне понятно, что мой голос это капля в море, но ведь из капель и состоят эти самые моря.
Конечно, пройдет время и подтяну для себя Bhyve.

Конечно есть виртуалки для seti под винду (и он кстати на VirtualBox о котором Вы писали в другой переписке), пробовал, пока запустить не смог (BSOD по 0x0000003B) при старте, патч запрошенный от мс, не помог, в Интернет сети искал, пробовал, не помогает, пока забил.

Т.е VirtualBox почему-то бсодится, пока еще не разобрался, W7х64 реально "правильная", со всеми обновлениями.

Тоже НЕ суть.
Суть у разбитого корыта...

В конце концов не разработчик я.
Ну что мне с этим парится?
Не смертельно ведь, а обида сама пройдет...

Просто мне думается, что добавить вполне совместимую с линукс систему под расчеты не должно составлять гигантского труда.
Возможно при создании "задания" на расчет просто не учли фришников, или "не поставили" галочку.

Раз когда-то давно был создан порт, то это явно было не на ровном месте и не из пальца высосано.
Значит "интерфейс" (взаимодействия) проработали и сделали, т.е. получается "с двух сторон".

как-то так imho.

конец цитаты

Порывшись поглубже на сайте нашел контакт человека, кто возможно смог-бы прояснить эту ситуацию.
Написал письмо, приложив эту цитату сверху.
"вопрос такого порядка: будут-ли когда-нибудь раздаваться задания для расчетов на freebsd ?"

И в тот-же день получаю ответ:

Код: Выделить всё

Мы сейчас создали новые скрипты для компиляции приложения под разные платформы.
FreeBSD можно было бы добавить к набору поддерживаемых платформ.
Все упирается в возможность тестирования.
У нас нет машины с такой ОС.
Можно наверное сконфигурить виртуалку.
Пришлите мне ссылку на место, откуда Вы закачиваете ядро.

Вау!!!
И началась переписка.
В итоге от меня потребовалось:

Код: Выделить всё

1. Платформу можно скачать по пути:
ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/i386/ISO-IMAGES/10.3/FreeBSD-10.3-RELEASE-i386-disc1.iso

2. "тип платформы проекта" как его определил боинк-клиент. Это как раз та самая строка "This project doesn't support computers of type i386-pc-freebsd"
Где тип "of type i386-pc-freebsd" (ну т.е. i386-pc-freebsd)

3. Был вопрос про поддержку процессором инструкций sse2
На что было выслано:
CPU: Intel(R) Pentium(R) D CPU 3.00GHz (3010.71-MHz 686-class CPU)
  Origin="GenuineIntel"  Id=0xf62  Family=0xf  Model=0x6  Stepping=2
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0xe43d<SSE3,DTES64,MON,DS_CPL,VMX,CNXT-ID,CX16,xTPR,PDCM>
  AMD Features=0x20000000<LM>
  AMD Features2=0x1<LAHF>
  VT-x: HLT,PAUSE
  TSC: P-state invariant

4. Дождаться результата.

Неделя, две, три.
И тут происходит очередной фокус-покус...
Я на работе на тестовом компьютере запустил клиента под freebsd (примерно, по памяти, как дома) и на него приехали задания!
И пошел расчет!
Отписался, что работать начало.

Код: Выделить всё

4 results
sixtrack 45107 bs'                                                                          Running      55:38 12.796% 10:13:40
sixtrack 45107 bs'                                                                          Running      38:33  8.890% 10:32:50
sixtrack 45107 w7_chrom-6.0-4.0__18__s__64.27_59.295__6_7__5__22.5_1_sixvf_boinc2137_1      Ready to run                4:19:45
sixtrack 45107 w7_chrom-6.0-4.0__18__s__64.27_59.295__6_7__5__15_1_sixvf_boinc2136_1        Ready to run                4:19:45

Recent messages
18:51:46  LHC@home  Scheduler request completed
18:51:43  LHC@home  Not requesting tasks: don't need
18:51:43  LHC@home  Sending scheduler request: Requested by user.
18:51:42  LHC@home  update requested by user
18:50:53  Resuming computation
18:50:52  2459 integer MIPS (Dhrystone) per CPU
18:50:52  1414 floating point MIPS (Whetstone) per CPU
18:50:52  Number of CPUs: 2
18:50:52  Benchmark results:
18:50:20  Suspending computation - CPU benchmarks in progress
18:50:19  Running CPU benchmarks
18:48:43  LHC@home  work fetch resumed by user
18:48:30  LHC@home  work fetch resumed by user
18:43:16  LHC@home  Finished download of sixtrack_lin32_4517_gen.linux
18:43:13  LHC@home  Finished download of w7_chrom-6.0-4.0__18__s__64.27_59.295__6_7__5__15_1_sixvf_boinc2136.zip
18:43:12  LHC@home  Started download of w7_chrom-6.0-4.0__18__s__64.27_59.295__6_7__5__15_1_sixvf_boinc2136.zip
18:43:12  LHC@home  Finished download of w7_chrom-6.0-4.0__18__s__64.27_59.295__6_7__5__22.5_1_sixvf_boinc2137.zip
18:43:10  LHC@home  Started download of w7_chrom-6.0-4.0__18__s__64.27_59.295__6_7__5__22.5_1_sixvf_boinc2137.zip
18:43:10  LHC@home  Started download of sixtrack_lin32_4517_gen.linux
18:43:08  LHC@home  Scheduler request completed: got 2 new tasks
18:43:06  LHC@home  Requesting new tasks for CPU
18:43:06  LHC@home  Reporting 2 completed tasks
18:43:06  LHC@home  Sending scheduler request: Requested by user.
18:43:04  LHC@home  update requested by user

Вау!!!
Супер!!!
ЗАРАБОТАЛО!!!

Но увидел на сайте в своей статистике добавленный хост на freebsd и озадачился.
он там светится как gw1.simple.loc

т.е. боинк-клиент его берет видимо из системного hostname который должен быть FQDN по мануалу.
При этом вижу, что клиенты на windows домен не "высылают", т.е. не светят.

Посмотрел

Код: Выделить всё

boinccmd --get_host_info

так вроде и есть.

Код: Выделить всё

  timezone: 10800
  domain name: gw1.simple.loc
  IP addr: 192.168.78.1
  #CPUS: 2
  CPU vendor: i386
  CPU model: Intel(R) Pentium(R) D CPU 2.80GHzIntel(R) Pentium(R) D CPU 2.80GHz [] [sse sse2 pni mmx]
  CPU FP OPS: 1413546295.679553
  CPU int OPS: 2459311719.451481
  CPU mem BW: 1000000000.000000
  OS name: FreeBSD
  OS version: 10.3-RELEASE
  mem size: 510681088.000000
  cache size: 1000000.000000
  swap size: 0.000000
  disk size: 31181598720.000000
  disk free: 24652353536.000000

мне как пользователю не очень хочется светить этот simple.loc (или не важно, что там у кого будет).
С другой стороны есть команда:

Код: Выделить всё

boinccmd --set_host_info


Но она имеет вид:

Код: Выделить всё

boinccmd --set_host_info product_name

Не смог нигде нарыть как ей пользоваться и можно-ли с ее помощью установить свой параметр, например gw1 (т.е. без домена).
Или что такое, это за значение "product_name"?
Может не через оное нужно задавать, а где-то в другом месте?

Как ни пробую ничего не меняется:

Код: Выделить всё

boinccmd --set_host_info "hostname"=gw1
boinccmd --set_host_info "domain name"=gw1


В общем озадачился.
Что делать?

Тут нужно сказать повезло.
Т.к. прихожу домой, делаю ручное обновление проекта:

Код: Выделить всё

boinccmd --project https://lhcathome.cern.ch/lhcathome/ update


И в ответ радостно получаю все тот-же:

Код: Выделить всё

"This project doesn't support computers of type i386-pc-freebsd"


Бр-р-р-р!
Что за ерунда, тут работает, тут не работает.

Переустановил клиента.
Нет реакции.
Переподключил клиента, это делаем так:

Код: Выделить всё

boinccmd --project https://lhcathome.cern.ch/lhcathome/ detach
boinccmd --project_attach https://lhcathome.cern.ch/lhcathome/ c9b14123e347gbft123s7gg8w5f89s5s

Нет реакции.
Попробовал играть галками.
в make config
Нет реакции.

Тут, кстати и заметил этот самый:

Код: Выделить всё

"Do not send host address and name to servers"

и установил его.

заодно сделал все заново так:

Код: Выделить всё

make deinstall
make clean
mv /var/db/boinc /var/db/boinc-old
make DISABLE_VULNERABILITIES=yes install
/usr/local/etc/rc.d/boinc-client start
cd /var/db/boinc
boinccmd --lookup_account https://lhcathome.cern.ch/lhcathome/ MyEmail password
boinccmd --project_attach https://lhcathome.cern.ch/lhcathome/ c9b14123e347gbft123s7gg8w5f89s5s
boinccmd --get_project_status
boinccmd --get_tasks

Вау и на домашний комп пошли задания на расчет!

Теперь история про /usr/ports/net/boinc_curses

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

консоль по коротким клавишам "h".
Там не много и все доступно для понимания.
Выход по "q"

В некий момент времени, мне даже показалось, что он рушит /var .
Т.к. на обоих компах после периодической работы с ним при перезапуске компа начинается авто ребут.
Даже проблемно было попасть по п.2 (в монопольный режим) чтобы сделать fsck -fy .
Как перестал дергать boinc_curses все нормализовалось.
Но утверждать на 100% не буду.
Просто очень странное стечение обстоятельств.

Еще отмечу такой момент, что не смотря на установку галки "Do not send host address and name to servers"
и слепое применение команды

Код: Выделить всё

boinccmd --set_host_info hostname=gw1

На сайте https://lhcathome.cern.ch/lhcathome/ под своим лоджином в разделе "Компьютеры в этой учётной записи" FQDN все-таки светился.
Но после отправки нескольких заданий - погас.
Т.е. просто нужно было подождать...

Таким образом клиент работает, но нужно применить усилия если проект расчета не поддерживает нашу любимую систему.
Ничего сложного.

И еще - не пробовал проделать на платформе amd64.
И еще пробовал привязаться к своему "account key" на https://boincstats.com/ru (он там свой), но что-то "занеработало" пока не разобрался почему.

Наверняка что-то запамятвовал, пока все это описывал, но думаю (для желающих разобраться) уже будет легче.
Последний раз редактировалось f_andrey 2017-03-17 19:28:52, всего редактировалось 2 раза.
Причина: fix title

Аватара пользователя
f_andrey
майор
Сообщения: 2631
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Через тернии к звездам...

Непрочитанное сообщение f_andrey » 2017-03-09 14:21:29

Фряшный вроде устаревший, как это самое мамонта, или кто обновил, за последние годы, я как то смотрел, под него никто уже модулей то не делал, так что толку от демона никакого не было.
Если ваша тема перенесена, то смотри viewtopic.php?f=1&t=32308

Demis
мл. сержант
Сообщения: 99
Зарегистрирован: 2015-05-25 14:36:32

Через тернии к звездам...

Непрочитанное сообщение Demis » 2017-03-17 19:23:09

Приношу свои извинения за то, что первоначально ошибся с разделом темы.

По поводу "мамонтизма" оно понятно, но ведь зараза работает.
Как я написал, нужно просто приложить усилия, разыскать, попроситься, либо пошлют, либо сделают.
За спрос денег не берут, тоже очень старая поговорка.

Теперь точно можно сказать что /var в обоих случаях был побитый.
Так уж получилось.

Но в boinc_curses неприятность тоже была.
Заключалась она в том, что на длинных именах заданий имя самого задания не усекалось как надо.
На экран (в поле имени задания), будь то в консоли или путти выводилось нечто вида:
"-1078025896s'" или "0x1.bfcp-1042s'" или "bs'" или "0.0s'"
Причем это поведение характерно зависело, например, от ширины экрана putty.
В консоли, понятно, экраном особо не подвигаешь и если приехало "длинноименное" задание, то это сразу проявляется в поле имени. После некоторой переписки было найдено решение.

Итак, убедились, что boinc_curses не запущен.

Код: Выделить всё

cd /usr/ports/net/boinc_curses/work/boinc_curses-0.2.2
ee boinc_curses.c

Идем в строку 616:

Код: Выделить всё

sprintf(formatter, "%%.%zxs'", targetlen - 1);

Приводим к виду:

Код: Выделить всё

sprintf(formatter, "%%.%zus'", targetlen - 1);

Т.е. заменили "x" на "u".
Сохранились. Вышли.
Прямо в том-же каталоге:

Код: Выделить всё

make
ls -l (или можно лл)
-rwxr-xr-x  1 root  wheel  313963 Mar 17 17:10 boinc_curses*

Посмотрели, что дата время поменялось на актуальную.
Потом:

Код: Выделить всё

cp boinc_curses /usr/local/bin/
cd /var/db/boinc
boinc_curses

Наслаждаемся результатом.
К сожалению в код это, наверное, не попадет, т.к. выяснилось что человек этим проектом не занимается уже несколько лет.

P.S. Если есть возможность прошу переименовать тему в "Через тернии к звездам или как настроить работу boinc в консоли..."

Аватара пользователя
f_andrey
майор
Сообщения: 2631
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Через тернии к звездам или как настроить работу boinc в консоли...

Непрочитанное сообщение f_andrey » 2017-03-17 19:31:58

Demis писал(а):Источник цитаты К сожалению в код это, наверное, не попадет, т.к. выяснилось что человек этим проектом не занимается уже несколько лет.

В какой код? Порта? Как не попадёт баг на http://bugzilla.mozilla.org/ там есть чёткие правила обработки, участие ментейнера, в общем то не обязательно, но вот желание и инициатива от репортящего нужна. Если ментейнер совсем забил, а вам интересно, то можно вообще самому стать ментейнером этого порта, по таймауту или договорённости с кем то у кого коммит бит. Ну а дальше уже хоть патчи по мелочи, хоть обновляй версии.
Если ваша тема перенесена, то смотри viewtopic.php?f=1&t=32308

Demis
мл. сержант
Сообщения: 99
Зарегистрирован: 2015-05-25 14:36:32

Через тернии к звездам или как настроить работу boinc в консоли...

Непрочитанное сообщение Demis » 2017-08-17 10:34:02

Российский проект раздающий задания для FreeBSD.
Вроде больше из наших никто такого не имеет.

Сайт проекта: https://boinc.progger.info/odlk/
master URL: https://boinc.progger.info/odlk/

Вопросы заданные разработчику: https://boinc.progger.info/odlk/forum_thread.php?id=17

Почитать, что это такое и для чего это нужно: https://en.wikipedia.org/wiki/Latin_square

По русски здесь: https://ru.wikipedia.org/wiki/%D0%9B%D0%B0%D1%82%D0%B8%D0%BD%D1%81%D0%BA%D0%B8%D0%B9_%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82
Как написано в вики:
"Латинские квадраты находят широкое применение в алгебре, комбинаторике, статистике, криптографии, теории кодов и многих других областях."
"В настоящее время латинские квадраты активно применяются для реализации протоколов с нулевым разглашением. В частности для генерации MAC."

Где MAC : https://ru.wikipedia.org/wiki/%D0%98%D0%BC%D0%B8%D1%82%D0%BE%D0%B2%D1%81%D1%82%D0%B0%D0%B2%D0%BA%D0%B0

"Имитовста́вка - средство обеспечения имитозащиты в протоколах аутентификации сообщений с доверяющими друг другу участниками - специальный набор символов, который добавляется к сообщению и предназначен для обеспечения его целостности и аутентификации источника данных."

Желающие посчитать - Присоединяйтесь!


Вернуться в «Софт»

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

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