Программный комплекс для автоматической связи с платформой BOINC
Была поставлена цель создать систему, автоматизирующую процесс установки и настройки приложений BOINC-клиент и BOINC-сервер для разработки проектов системы распределенных вычислений BOINC. Далее нужно запустить BOINC-клиенты для работы над созданным проектом.
BOINC-сервер – центральный сервер, к которому делают запросы клиентские машины. Рассмотрим алгоритм сборки и установки сервера. Общую схему можем увидеть на рис. 1.
Рисунок 1. Алгоритм сборки и установки сервера
В данной работе нам нужно иметь понимание о кластерах. Кластер – это многопроцессорный, многоядерный компьютер, на котором выполняются задачи пользователя, связанные высокоскоростной сетью и объединенные специальным программным обеспечением. Для расчетных операций используются кластерные (распределенные) вычисления. Именно открытая программная платформа BOINC организует распределенные вычисления.
Платформа BOINC-клиент-сервер состоит из программы-клиента и составного сервера BOINC, это дает возможность использовать несколько компьютеров в качестве сервера.
Майнер, помоги человечеству! Развитие науки и платформа BOINC
Разработка алгоритма автоматической сборки и установки сервера BOINC
Для установки сервера потребуется выполнить следующее.
Шаг 1. Определяем установленный на компьютере дистрибутив (Ubuntu или Debian).
Шаг 2. В зависимости от установленной операционной системы добавляются совместимые репозитории с нашим дистрибутивом.
Выполняем с правами администратора команды:
Подключаемся и добавляем репозиторий, в котором хранится пакет PHP 5, необходимый для запуска веб-сервера (который входит в состав BOINC):
sudo add-apt-repository ppa:ondrej/php -y
Обновляем данные репозитория:
sudo apt-get update
Шаг 3. Cкачивание и установка всех необходимых для сборки BOINC-сервера пакетов и библиотек:
sudo apt-get install -y git apache2 python-pip m4 pkg-config autoconf automake perl libtool build-essential libssl-dev mysql-server libmysqlclient-dev libmysqld-dev curl libcurl4-openssl-dev software-properties-common python-software-properties php5.6 php5.6-mysql libapache2-mod-php5.6 php5.6-mbstring php5.6-simplexml
Шаг 4. Клонируем репозиторий с исходным кодом BOINC-сервера:
git clone https://github.com/BOINC/BOINC.git BOINC-server
Шаг 5. Переходим в папку со скачанными файлами:
Шаг 6. Конфигурирование и подготовка к сборке сервера:
./_autosetup 1>../server-autosetup.log 2>../server-autosetup-error.log
./configure —disable-manager —disable-client 1>../server-config.log 2>../server-config-error.log
- Параметр 1>./*.log – перенаправление стандартного потока в указанный файл.
- Параметр 2>./*.error.log – вывод сообщений об ошибках в указанный файл.
Скрипт configure означает, что компиляция будет только серверной части и дополнительных библиотек – если установка идет успешно, об этом скажет последняя строчка, выведенная с помощью скрипта.
BOINC manager — программа клиент, настройка, и общая информация по использованию.
- —disable-manager
- —disable-client
Эти параметры указывают конфигуратору, что в процессе сборки нашего проекта не соберутся manager и client.
— Build Components: ( libraries server) —
Обратите внимание на сообщения, выдаваемые в ходе работы скрипта configure, возможно, будут выведены предупреждения наподобие этого:
checking if CFLAG ‘-include fcgi_stdio.h’ works. no
configure: WARNING: fcgi-stdio.h not found.
Disabling FCGI. Will not build components that require FCGI
Если это не привело к ошибкам скрипта, вам можно либо игнорировать предупреждения, что может привести к возможным проблемам в будущем, либо установить недостающие компоненты и использовать скрипт по новой.
Шаг 7. Сборка сервера:
make 1>../server-make.log 2>../server-make-error.log
Шаг 8. Создание проекта:
./tools/make_project —db_passwd=’123123′ —db_user=’root’ —delete_prev_inst —drop_db_first —url_base=»http://unixubuntu.my-BOINC-test-project.com» testappw
Параметрами —db_passwd и —db_user мы указываем логин и пароль для доступа к базе данных.
Скрипт выводит сообщения процесса сборки нового проекта. Прежде всего устанавливаются параметры, связанные с доступом к веб-странице проекта (здесь *server -IP* – это имя сервера в сети):
Creating project ‘ my_example_app ‘ (short name ‘ meapp ‘):
PROJECT_ROOT = /home/BOINCadm/projects/ meapp /
URL_BASE = http://*server -IP*/
HTML_USER_URL = http://* server -IP*/ meapp /
HTML_OPS_URL = http://* server -IP*/meapp_ops/
CGI_URL = ://*server -IP*/meapp_cgi/
Затем создаются необходимые каталоги:
Setting up server: creating directories
Происходит генерация криптографических ключей:
Keys don’t exist in /home/BOINCadm/projects/meapp/keys/; generate them? [Y/n]
Setting up server files: generating keys
Копирование необходимых файлов, создание таблиц базы данных и файлов настроек, установка независимых от приложения служб:
Setting up server files: copying files
Setting up database
Setting up server files: writing config files
Setting up server files: linking cgi programs
Done installing default daemons
Шаг 9. Настройка веб-страницы. Перед настройкой Apache, нужно установить правильные права доступа на папку, где содержится сама страница:
chmod –R 755 html/*
Настройки веб-сервера Apache для нового проекта содержатся в файле testappw.httpd.conf. Откроем файл, в котором мы видим, что данная конфигурация была сгенерирована для Apache 2.2, так как у нас установлена версия Apache 2.4, нам нужно заменить:
Order deny, allow
Require all denied
Order allow, deny
Require all granted
Содержимое файлов настроек подключается либо напрямую, либо подключением через основной файл настроек (все действия необходимо выполнить с правами root):
cat meapp.httpd.conf >> /etc/apache2/httpd.conf
Необходимо перезапустить сервер Apache:
Установим пароль для доступа к административной части:
sudo htpasswd -c html/ops/.htpasswd admin
Мы видим главную страницу тестового проекта BOINC, с помощью нее мы связываемся с пользователями нашего проекта (см. рис. 2). Данная страница является шаблоном сайта проекта, который в дальнейшем необходимо модифицировать или заменить под нужды проекта.
Рисунок 2. Веб-страница
Для написания программы инсталлятор автоматической установки и развертывания BOINC-сервера использовался скриптовый язык программирования Bash.
Для автоматической установки BOINC-сервера нужно ввести адрес сервера, название проекта, а также пароль от администратора веб-страницы:
read -p «url to server: http://» -e BOINC_URL
read -p «project_name: » -e BOINC_NAME
read -p «password for admin web-page: » -e ADMIN_PASSW
echo «url: $BOINC_URL»
echo «project_name: $BOINC_NAME»
- «url to server: http://» -e BOINC_URL – ввод с клавиатуры адреса BOINC-сервера;
- «project_name: » -e BOINC_NAME – ввод с клавиатуры названия проекта;
- «password for admin web-page: » -e ADMIN_PASSW – введение пароля от администратора веб-сервера.
За определение установленного на компьютере дистрибутива отвечает специальная команда:
dpkg -s lsb-release >/dev/null 2>/dev/null || sudo apt-get -y install lsb-release
LINUX_DIST=$(lsb_release -a 2>/dev/null | grep «Distributor ID:»)
- lsb-release – проверка на установку программы lsb-release, которая отвечает за определение дистрибутива;
- install lsb-release – установка программы, если не была найдена;
- «Distributor ID:» – получение установленного дистрибутива.
Для успешной работы инсталлятора нужно настроить веб-сервер Apache:
python -c «exec(«f=open(»$’.httpd.conf’, ‘r’)\nf2 = open(‘BOINC.httpd.conf’, ‘w’)\nfor line in f: f2.write(line.replace(‘Order deny,allow’, »).replace(‘Order allow,deny’, »).replace(‘Allow from all’, ‘Require all granted’).replace(‘Deny from all’, ‘Require all denied’))»)»
sudo sh -c «cp BOINC.httpd.conf /etc/apache2/BOINC.httpd.conf»
sudo sh -c «echo ‘Include BOINC.httpd.conf’ >> /etc/apache2/apache2.conf»
Здесь представлен код изменения конфигурации Apache на более новую версию. Пайтоновская программа открывает файл с конфигурацией для Apache и заменяет строчки.
В ходе исследования была выполнена следующая работа:
- определение дистрибутива;
- скачивание и установка пакетов и библиотек;
- конфигурирование и сборка сервера;
- создание проекта;
- настройка веб-страницы;
- проверка функциональности проекта в рамках сервера BOINC;
- разработана программа на языке программирования Bash;
- тестирование разработанной программы.
Источник: samag.ru
Boinc — программный комплекс для быстрой организации распределённых вычислений
BOINC — программный комплекс для быстрой организации распределённых
вычислений. Состоит из серверной и клиентской частей. Первоначально разрабатывался
для крупнейшего проекта добровольных вычислений — [email protected], но впоследствии
разработчики из Калифорнийского университета в Беркли сделали платформу
доступной для сторонних проектов. На сегодняшний день BOINC является
универсальной платформой для проектов в области математики, молекулярной
биологии, медицины, астрофизики и климатологии. BOINC даёт исследователям
возможность задействовать огромные вычислительные мощности персональных
компьютеров со всего мира.
Эта программа позволяет различным исследовательским, учебным заведениям или
просто энтузиастам науки найти помощь у людей, которые готовы поделиться с ними
процессорным временем. Задача, требующая значительной вычислительной мощности,
разбивается на более простые части и рассылается различным людям, если решение
является верным для своей части – сервер проекта начисляет определённое количество
баллов участнику.
2
3. Серверная часть
В среднем за 24 часа: 28.545 петафлопс (х1015 оп/сек).
Активно: 125,587 участников, 498,161 компьютеров.
Daily change: +194 участников, +363 компьютеров.
(8:30 МСК 13.11.2019)
Серверная часть состоит из HTTP-сервера с веб-сайтом проекта, базы данных MySQL
и набора демонов (генератор заданий, планировщик, валидатор, ассимилятор
результатов.
Сервер
—
только
на
Linux,
предпочтительно
Debian.
HTTP сервер представляет собой набор PHP-скриптов и необходим организаторам
проектов для общего управления проектом: регистрация участников, распределение
заданий для обработки, получение результатов, управление базами данных проекта.
В базе данных хранятся пользователи, пароли, записи заданий, результатов,
информация о хостах, программах проекта и прочее.
Демоны — набор программ на C++.
3
4. Клиентская часть
BOINC-клиент позволяет участвовать одновременно в нескольких проектах с помощью
одной общей программы управления (boinc.exe).
Для визуализации процесса управления BOINC-клиентом можно использовать либо
поставляемую по умолчанию официальную программу-менеджер (boincmgr.exe), либо
воспользоваться «неофициальной» программой для мониторинга и управления BOINCклиентом.
Следует отметить, что собственно BOINC-клиент в академическом понимании не имеет
пользовательского интерфейса как такового, а представляет собой сервис, запускаемый
при запуске системы и управляется по протоколу TCP/IP. Однако для конечного
пользователя это не имеет значения, поскольку дистрибутив программы комплектуется
программой-менеджером, которая сразу по умолчанию устанавливается вместе с
BOINC-клиентом как единое целое и абсолютно прозрачна для пользователя. В этом
случае в качестве адреса управляемого программой менеджером BOINC-клиента
указывается адрес «localhost». Таким образом, с одной стороны, ничто не мешает
пользователю использовать альтернативную программу-менеджер для управления
BOINC-клиентом, а с другой стороны даёт возможность управлять несколькими BOINCклиентами, находящимися на разных компьютерах из одной программы-менеджера.
Также такая организация управления BOINC-клиентом подразумевает возможность
использовать BOINC-клиент в «невидимом» режиме, когда запускается исключительно
сервис, без пользовательского интерфейса вообще.
4
5. Финансовый аспект
Gridcoin — криптовалюта, использующая
технологию блокчейн для краудсорсинга вычислен
ий научных проектов. Протокол Gridcoin
опубликован 16 октября 2013 года, и он построен
таким образом, что при эмиссии
применяется доказательство доли владения.
Ключевой особенностью Gridcoin является то, что
эмиссия связана с участием в научных
распределённых вычислениях, т.е. пользователи
получают вознаграждение за «вычислительный
вклад» в науку.
11 октября 2014 года был осуществлён переход между версиями протокола —
с оригинальной Gridcoin-Classic на Gridcoin-Research. Gridcoin-Classic использовал
гибридную систему эмиссии, сочетавшую доказательство выполнения работы и
доказательство доли владения. В результате перехода были устранены не связанные
с BOINC вычисления. Количество используемых вычислительных мощностей для
защиты блокчейна является минимальным, в отличие от типичных криптовалют,
таких как Биткойн. Дополнительно с переходом на Gridcoin-Research был улучшен
уровень безопасности подтверждения доли участия.
5
6. Проекты
Создать проект на платформе BOINC может любой желающий — вся платформа BOINC
изначально разрабатывалась в рамках LGPL, поэтому любой может ознакомиться с
исходными текстами.
В основном этим занимаются различные университеты и научные центры для решения
задач, требующих больших вычислительных ресурсов, но не имеющих необходимых
материальных средств для покупки суперкомпьютеров, либо мощностей современных
суперкомпьютеров недостаточно для решения поставленной задачи.
Некоторые из наиболее популярных проектов:
[email protected]
[email protected]
[email protected]
[email protected]
6
7. [email protected]
SETI (Search for Extraterrestrial Intelligence) — область науки, чьей целью ставится
нахождение разумной внеземной жизни. Один из методов, известный как «радио SETI»,
заключается в использовании радиотелескопов для приёма узкополосных сигналов из
космоса. Сигналы, не характерные для естественных явлений, будут служить
доказательством использования внеземных технологий.
Раньше проекты SETI использовали специальные суперкомпьютеры, расположенные у
телескопа для анализа поступающей информации. В 1995 году, Дэвид Геди предложил
использовать большое количество домашних компьютеров, подключённых к сети
Интернет как виртуальный суперкомпьютер для анализа радиосигналов. Для изучения
этой идеи он организовал проект [email protected] Проект [email protected] был запущенн в мае
1999 года.
7
8. [email protected]
Проект [email protected] направлен на вычисление трёхмерной структуры белков. Подобные
исследования могут привести к созданию лекарств от таких заболеваний как ВИЧ, малярия,
рак и болезнь Альцгеймера.
Результаты вычислений не доступны напрямую. Так же, нельзя использовать результаты
вычислений собственного компьютера. Однако они используются для большого количества
научных публикаций.
Основные задачи:
поиск структуры с наименьшей энергией для заданной аминокислотной
последовательности для предсказания структуры белка;
решение обратной задачи — поиск аминокислотной последовательности с наименьшей
энергией для заданной белковой структуры;
расчёт взаимодействия комплекса белок-белок.
8
9. [email protected]
[email protected] направлен на определение местонахождения
пульсаров, используя данные Лазерно-интерферометрической
гравитационно-волновой обсерватории (LIGO), радиотелескопа
Аресибо, космического гамма-телескопа Ферми (GLAST).
Сигнал, доказавший существование гравитационных волн был
слишком коротким для обработки проектом, однако теперь
производится подготовка данных для нового поиска
продолжительных гравитационных волн по всему небу.
Основной задачей расчетов является выделение полезного
сигнала (интерференционной картины) из шума, который
является следствием тепловых колебаний атомов в
зеркалах, квантовой природы света, сейсмических движений
земной коры или резонансных колебаний нитей, на которых
подвешена оптика. Процесс обнаружения осложняется также
влиянием вращения Земли вокруг Солнца и вокруг своей оси, в
совокупности вызывающими сдвиг частоты сигнала изза эффекта Доплера.
9
10. [email protected]
Подпроект SixTrack, созданный для помощи учёным улучшения работы БАК, просчитывает
различные траектории 60 частиц, при которых луч сохранит стабильность в ускорителе.
Количество циклов от 100000 до миллиона циклов, что соответствует менее 10 секундам
реального времени. Этого достаточно, чтобы проверить будет ли пучок сохранять
траекторию на протяжении гораздо большего времени или существует риск потери
стабильности пучка, что может привести к серьёзным проблемам в реальности, например,
к остановки ускорителя или к выходу из строя некоторых детекторов.
В настоящее время также существует проект
[email protected] 2.0, который открыт для всех
желающих. Целью данного проекта является
моделирование столкновений пучков протонов
с целью последующего сопоставления полученных
экспериментальных и модельных данных и
выявления отклонений. В рамках проекта
в том числе проводятся симуляции потенциальных
проявлений «Новой физики» за пределами
Стандартной модели.
10
11. Резюмируя
Эффективность сети BOINC по сравнению со специализированными
суперкомпьютерами заметно ниже. Так, например «СанВей Тауху Лайт» имеет в
своём составе около 11 млн ядер. Его потребляемая мощность составляет около
28 МВт. В сети BOINC активных около 835 тыс. хостов. При среднем потреблении
современного компьютера около 100 Вт (без монитора) и наличии 2,5 ядер,
коэффициенте загрузки 10 % — суммарная потребляемая мощность составляет
около 10 МВт, 2 млн 130 тысяч ядер, что позволяет говорить о достаточной
эффективности сети BOINC. В качестве недостатка можно отметить то, что
гарантированная вычислительная мощность отсутствует. (по данным с википедии)
11
Источник: ppt-online.org
Распределённые вычисления: краткое введение в проекты BOINC
1 K 00:07 — 18/Дек/19 Киевлянин (7 лет 4 месяца)
Суть заключается в том, что эта программа позволяет различным исследовательским, учебным заведениям или просто энтузиастам науки найти помощь у людей, которые готовы поделиться с ними процессорным временем. Задача, требующая значительной вычислительной мощности, разбивается на более простые части и рассылается различным людям, если решение является верным для своей части – сервер проекта начисляет определённое количество баллов участнику.
Многие участники организуются в команды и устраивают соревнования между собой в различных проектах.
Кратко изобразить этот процесс можно так:
В данный момент в сети BOINC насчитывается около 300 тысяч активных участников, что в сумме даёт более 9 миллионов компьютеров и производительность более 8 петафлопс (на момент написания статьи).
Список проектов
Здесь можно посмотреть статистику по всем активным проектам.
SETI (Поиск Внеземного Разума (Search for Extraterrestrial Intelligence)) — область науки, чьей целью ставится нахождение разумной внеземной жизни. Один из методов, известный как «радио SETI», заключается в использовании радиотелескопов для приёма узкополосных сигналов из космоса. Сигналы, не характерные для естественных явлений, будут служить доказательством использования внеземных технологий.
Более подробную информацию по целям и методам этого проекта можно найти здесь.
WorldCommunityGrid
Этот проект был запущен корпорацией IBM с целью производить расчёт в различных областях науки: расшифровка генома человека, разработка лекарства от вируса эбола, картирование химических маркеров различных типов рака, а также исследования в области возобновляемых источников энергии.
Сигнал, доказавший существование гравитационных волн был слишком коротким для обработки проектом, однако теперь производится подготовка данных для нового поиска продолжительных гравитационных волн по всему небу.
Climate Prediction
Проект просчитывает различные симуляции климатических моделей, что позволяет спрогнозировать, как изменится погода на Земле в будущем.
Malaria Control
Проект использует ресурсы компьютеров для стохастического моделирования эпидемиологии и естественной истории малярии вызываемой Plasmodium falciparum.
Проект направлен на создание высокоточных трёхмерных моделей Потока Стрельца, что даёт информацию о том, как сформировался Млечный Путь и как образуются приливные рукава во время столкновения галактик.
Подпроект SixTrack, созданный для помощи учёным улучшения работы БАК, просчитывает различные траектории 60 частиц, при которых луч сохранит стабильность в ускорителе. Количество циклов от 100000 до миллиона циклов, что соответствует менее 10 секундам реального времени. Этого достаточно, чтобы проверить будет ли пучок сохранять траекторию на протяжении гораздо большего времени или существует риск потери стабильности пучка, что может привести к серьёзным проблемам в реальности, например, к остановки ускорителя или к выходу из строя некоторых детекторов.
PrimeGrid
Проект направлен на поиск простых чисел специального вида. Полный список подпроектов можно найти на официальном сайте.
Проект ставит целью увеличить объём информации о физических характеристиках астероидов. Программа обрабатывает данные фотометрических наблюдений разными приборами за разное время. Эта информация преобразуется методом инверсии кривой блеска, что позволяет создать 3D-модель формы астероида вместе с определением периода и направлением вращения вокруг своей оси.
Поскольку данные фотометрических наблюдений обычно растянуты во времени, период вращения не «виден» напрямую. Большой объём параметров должен быть проверен для определения оптимального решения. В подобных случаях инверсия кривой блеска занимает слишком много времени и распределённые вычисления – единственный выход эффективно разобраться с фотометрией сотен и тысяч астероидов. Кроме того, для обнаружения ошибок в методе и реконструировать подлинные физические параметры астероидов, необходимо обработать большой объём данных о «синтетических» объектах.
Изучение формы и других параметров астероидов позволит больше узнать об их реальных размерах, представляют ли они реальную угрозу, а в дальнейшем поможет определить подходящие цели для исследовательских миссий.
Проект направлен на поиски модели лучшим образом описывающую нашу Вселенную, и найти какая группа моделей подтверждает текущие данные, полученные теоретическими космологическими исследованиями и практическими физическими наблюдениями.
Проект состоит из пяти подпроектов, каждый из которых является проектом по поиску решения различных теоретических вопросов: от поиска нечётных странных чисел до проекта по моделированию работы мюонного коллайдера.
Проект направлен на моделирование сворачивания белков, что в дальнейшем поможет точнее определять функцию белков по их структуре. Такие знания могут помочь в медицинских исследованиях.
theSkyNet POGS
Это астрономический исследовательский проект обработки данных с различных телескопов мира в разных диапазонах электромагнитного спектра. Проект объединяет GALEX, Pan-STARRS1 и WISE, чтобы создать многочастотный (ультрафиолетовый-оптический-инфракрасный спектры) атлас ближних к нам окрестностей Вселенной. Проект определяет физические параметры (звездная масса галактик, поглощение излучения пылью, масса пылевой компоненты, скорость образования звезд) для каждого пиксела, используя технику поиска оптимума для распределения спектральной энергии.
GPUGRID
Молекулярные симуляции, выполняемые проектом – одни из самых частых при работе учёных, но они также одни из самых ресурсоёмких, поэтому для их просчёта обычно используется суперкомпьютер. Как и в других биологических проектах BOINC, GPUGRID использует ресурсы компьютера для симуляции белков для лучшего понимания их структуры и разработки лекарств от различных болезней.
Источник: aftershock.news
Система BOINC. Занятие проводит: Храпов Николай Павлович Институт Системного Анализа РАН. — презентация
Презентация на тему: » Система BOINC. Занятие проводит: Храпов Николай Павлович Институт Системного Анализа РАН.» — Транскрипт:
1 Система BOINC. Занятие проводит: Храпов Николай Павлович Институт Системного Анализа РАН
2 Практическое занятие Основы работы с ОС Linux Установка BOINC-сервера
3 Практическое занятие Основы работы с ОС Linux Установка BOINC-сервера
4 Что такое технологии виртуализации? Технология виртуализации позволяет в рамках одного персонального компьютера полностью смоделировать (виртуализовать) работу одного или нескольких других компьютеров.
5 Виртуализация работы системы Windows 7 в рамках Mac OS X Lion
6 Запуск ОС Linux в виртуальной среде 1.Пуск -> Программы -> Vmware Player. 2.Debian_6_Student. 3.Play.
7 Пользователь root root – пользователь-администратор системы, на которого не распространяется каких-либо ограничений доступа. Пароль: rootpw. Имя пользователя root является единым для всех реализаций Linux. Для ОС Linux Debian по умолчанию невозможен вход через графический интерфейс.
8 Пользователи (продолжение) student – стандартный пользователь системы. Пароль: studentpw. Допускается вход через графический интерфейс пользователя.
9 Использование терминала При наличии GUI Программы –> Стандартные -> Терминал При отсутствии GUI ALT + CTRL + F1/F2 … F6 Возвращение в GUI: ALT + CTRL + F7
10 Путь в файлу путь к корневому каталогу. пример пути относительно корневого каталога. пример пути относительно текущего каталога. домашний каталог пользователя. пример пути относительно домашнего каталога. каталог на уровень выше. / /var/lib lib ~ ~/Загрузки..
11 Команды по работе с файловой системой ls – получить список файлов в каталоге. cd – перейти в каталог. mkdir – создать каталог. rm – удалить файл. pwd – путь к текущему каталогу. touch – создать пустой файл../ – запустить файл из текущего каталога на исполнение.
12 Опции ls ls # список файлов в текущем каталоге; ls –a # включая скрытые файлы; ls –l # список файлов с выводом расширенной информации; ls /home # список файлов в каталоге /home.
13 Доступ к файлу На чтение. На запись. На исполнение.
14 Изменение прав доступа к файлу chmod +x Сделать файл исполняемым. chmod –x Убрать права на исполнение.
15 Запуск команд от имени суперпользователя su Переход в терминал пользователя root. su – student Переход в терминал пользователя : $ Командная строка обычного пользователя. : # Командная строка пользователя root.
16 Текстовый редактор nano CTRL + o Сохранение файла. CTRL + x Выход из программы.
17 Другие команды echo – написать аргумент. date – написать текущую дату и время. whoami – выводит имя текущего пользователя. mc – консольный файловый менеджер midnight commander. apt-get – менеджер приложений. ssh — вызов программы для удалённого терминального доступа.
18 Задание 1 В домашнем каталоге создать директорию Programs. В директории Programs создать файл hworld. Внутри данного файла поместить следующий список команд: echo Hello World. I am whoami echo echo Now: date echo echo Path: pwd Сохранить файл и сделать его исполняемым. Запустить файл как из домашнего, так и из текущего каталогов.
19 Задание 2 (BOINC-клиент) Перейти в консоль пользователя root. Обновить репозиторий: apt-get update Установить программы BOINC-клиент и BOINC-менеджер: apt-get install boinc-client boinc-manager Выйти из консоли суперпользователя: exit
20 Задание 2 (продолжение) Запустить BOINC-клиент. Подключить его к проекту c master-url:
21 Практическое занятие Основы работы с ОС Linux Установка BOINC-сервера
22 Переход на удалённый сервер ssh Далее в соответствии с инструкцией.
23 BOINC (основные понятия) BOINC-клиент. BOINC-менеджер. BOINC-сервер. Проект. Пользователь. Аккаунт-менеджер. Начисляемые баллы.
Вычислительный узел. Приложение. Версии приложения. Расчётный блок (Work Unit). Результат.
Службы. Master URL.
25 BOINC (просмотр событий)
26 Архитектура грида из персональных компьютеров
27 Принцип работы распределённого приложения
28 Физические и логические имена файлов
29 Основные термины Work Unit 1 integral-client input1.txt Work Unit 3 integral-client input3.txt Work Unit 2 integral-client input2.txt integral-master Work Unit 4 integral-client input4.txt
30 Шаг 3. Создание проекта: Структура каталогов
31 Разработка и запуск распределённых приложений BOINC-API wrapper DC-API gen-wrapper
32 BOINC-API На стороне сервера: create_work sample_assimilator sample_trivial_validator На стороне клиента: integral_1.06_i686-pc-linux-gnu Integral_1.08_windows_intelx86 wrapper
33 Шаг 3. Создание проекта: Web-интерфейс
34 DC-API: клиентская часть DC_initClient() init_files() DC_finishClient(int) DC_resolveFileName(DC_FILE_IN, INPUT_LABEL); DC_resolveFileName(DC_FILE_OUT, OUTPUT_LABEL);
35 DC-API: серверная часть DC_initMaster(config_file) DC_setMasterCb(process_result, NULL, NULL) DC_log(LOG_NOTICE, char*) DC_processMasterEvents(int time) DC_createWU(«integral», NULL, 0, wu_tag) DC_addWUInput(wu, INPUT_LABEL, «wu-input.txt», DC_FILE_VOLATILE) DC_addWUOutput(wu, OUTPUT_LABEL) DC_submitWU(wu) char* DC_getWUTag(wu) char* DC_getResultOutput(result, OUTPUT_LABEL) DC_destroyWU(wu)
36 ПРАКТИЧЕСКАЯ ЧАСТЬ Шаг 1. Установка и настройка BOINC-клиента Подключаемся к репозиторию: заходим с правами администратора(команда su); редактируем файл /etc/apt/sources.list, добавляя в самый конец строку deb lenny szdg обновляем данные репозитория: apt-get update импортируем недостающий ключ: apt-key advanced —keyserver wwwkeys.eu.pgp.net —recv-keys обновляем репозиторий с применением импортированных ключей: apt-get update
37 Шаг 1. Установка и настройка BOINC-клиента: подключение к проекту Заходим через браузер на сайт Загружаем BOINC-клиент, устанавливаем его. При первом запуске программа предложит подключиться к проекту, для этого нужно ввести master-url специального тестового проекта: boinc-test.isa.ru, и следовать дальнейшим инструкциям
38 Шаг 2. Установка BOINC-сервера Подключаемся к репозиторию: заходим с правами администратора(команда su); редактируем файл /etc/apt/sources.list, добавляя в самый конец строку deb lenny szdg обновляем данные репозитория: apt-get update импортируем недостающий ключ: apt-key advanced —keyserver wwwkeys.eu.pgp.net recv-keys обновляем репозиторий с применением импортированных ключей: apt-get update
39 Шаг 2. Установка BOINC-сервера Устанавливаем boinc-server: apt-get install boinc-server в процессе установки необходимо будет установить пароль администратора баз данных mysql(например sqlpw): Для доступа пользователя root к использованию mysql необходимо создать файл /root/.my.cnf со следующим содержимым: [mysql] user = root password = sqlpw [mysqladmin] user = root password = sqlpw можно проверить доступ к базам данных, запустив mysql
40 Шаг 3. Создание проекта Выбираем короткое и длинное название для проекта(например за длинное название можно взять свои имя и фамилию, за короткое инициалы) Создаём проект, например: boinc_create_project —name=ivpr —long-name=’Ivan Petrov’ Добавляем пользователя в администраторы проекта: boinc_admin —NAME=ivpr —add boincadm необходимо назначить пароль для доступа к информации проекта через web-интерфейс.
41 Шаг 4. Добавление приложения Проект расположен в папке /var/lib/boinc/ /project Регистрируем приложение в файле проекта project.xml, добавляя вместо обозначенного там приложения uppercase приложение integral: integral Integral_of_function Далее необходимо запустить команду xadd, которая прочитает содержимое данного xml-файла, и занесёт его значения в базу данных проекта
42 Шаг 5. Обновление версий Устанавливаем исполняемый файл клиентской части приложения в нашей инфраструктуре. Для этого создаём каталог /var/lib/boinc/ivpr/project/apps/integral/integral_1.00_windows_x86_6 4.exe . — название каталога будет заканчиваться именно на.exe. Копируем в созданную папку исполняемый клиентский файл с таким же названием. Запускаем update_versions, котора прочитает структуру каталогов внутри apps, и внесёт необходимые изменения в базу данных.
43 Шаг 6. Установка серверной части распределённого приложения В директории /var/lib/boinc/ создаем рабочий каталог приложения integral-master. В данном каталоге создаем файл integral-master.conf c примерно следующим содержимым: [Master] WorkingDirectory = /var/lib/boinc/ivpr/integral-master InstanceUUID = fc7286ea-d8ab-4304-be55-84c098d7db42 BoincConfigXML = /var/lib/boinc/ivpr/project/config.xml ProjectRootDir = /var/lib/boinc/ivpr/project
44 Шаг 7. Запуск проекта Копируем файл серверной части приложения в каталог bin проекта. Запускаем его из папки bin:./integral-master -c /var/lib/boinc/ivpr/integral- master/integral- master.conf запускаем сервер, набрав в отдельной консоли с правами администратора проекта команду start.
45 Структура учебного стенда
46 Облачные вычисления История возникновения термина SaaS PaaS IaaS
47 Software as Service (SaaS)
48 Ниболее популярные реализации: Google Office Microsoft Office Live Dropbox Платформы для организации: Google App Engine Microsoft Azure
Источник: www.myshared.ru