Jump to content

Клиент-серверная технология BOINC

Визуальная схема клиент-серверной структуры BOINC

Клиент-серверная технология BOINC [ 1 ] относится к модели, по которой работает BOINC . Структура BOINC состоит из двух уровней, которые работают в рамках клиент-серверной архитектуры . Как только программное обеспечение BOINC установлено на машине, сервер начинает отправлять задачи клиенту . Операции выполняются на стороне клиента , а результаты загружаются на сторону сервера .

Дизайн и структура BOINC

[ редактировать ]
  • BOINC задуман как бесплатная структура для всех, кто хочет начать проект распределенных вычислений.
  • BOINC состоит из серверной системы и клиентского программного обеспечения, которые взаимодействуют друг с другом для распределения, обработки и возврата рабочих единиц.

Структура сервера

[ редактировать ]

Основной частью системы BOINC является внутренний сервер. Сервер может работать на одной или нескольких машинах, что позволяет BOINC легко масштабироваться для проектов любого размера. Серверы BOINC работают на компьютерах под управлением Linux и используют Apache , PHP и MySQL для своих веб-систем и систем баз данных .

Научные вычисления выполняются на компьютерах участников. После загрузки из клиента пользователя в базу данных научного исследователя внутренний сервер проверяет и анализирует результаты. Процесс проверки включает в себя выполнение всех задач на нескольких компьютерах участников и сравнение результатов.

Серверы BOINC также предоставляют следующие функции:

  • гомогенное резервирование (отправка рабочих модулей только на компьютеры одной платформы — например: для Win XP SP2 ) только
  • просачивание рабочего модуля (отправка информации на сервер до завершения рабочего модуля)
  • планирование локальности (отправка рабочих единиц на компьютеры, на которых уже есть необходимые файлы, и создание работ по требованию)
  • распределение работы на основе параметров хоста (например, рабочие модули, требующие 512 МБ ОЗУ, будут отправляться только на хосты, имеющие хотя бы такой объем ОЗУ [ 2 ] )

Сервер состоит из двух CGI программ и (обычно) пяти демонов , написанных на C++ . Вычисления, выполняемые клиентами, называются рабочими единицами . Результат описывает экземпляр рабочей единицы, даже если он еще не завершен. Проект не создает явных результатов; сервер создает их автоматически из рабочих модулей.

Программа CGI-планировщик обрабатывает запросы от клиентов, получает готовые результаты и отправляет новую работу на вычисления. Планировщик не получает доступные результаты непосредственно из базы данных. Вместо этого демон- податчик загружает задачи из базы данных и сохраняет их в блоке общей памяти , который считывает планировщик. Устройство подачи периодически заполняет пустые «слоты» в блоке общей памяти после того, как планировщик отправил эти результаты клиенту.

Когда все результаты рабочего модуля завершены и возвращены, валидатор проверяет их. Одним из популярных методов было бы сравнение результатов друг с другом. Валидатор может иметь собственный код проекта для нечеткого сравнения результатов или побитовое сравнение. Если валидатор определяет, что по крайней мере некоторые результаты действительны, он помечает единицу работы и действительные результаты как действительные, пользователям, которые вернули законные результаты, присваивается за это признание , и выбирается «канонический результат». Если результаты не совпадают или если один из результатов не сообщается к установленному сроку, сервер генерирует дополнительный экземпляр задания и отправляет его на третий хост. Это повторяется до тех пор, пока не будет найден кворум совпадающих результатов или не будет достигнуто ограничение на количество экземпляров. достиг. [ 3 ]

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

Демон file_deleter удаляет выходные файлы после их обработки ассимилятором и удаляет входные файлы, которые больше не нужны.

Демон перехода обрабатывает переходы состояний рабочих единиц и результатов. Он также генерирует результаты из рабочих единиц при их первом создании и когда требуются дополнительные (например, если результат оказывается недействительным).

Структура клиента

[ редактировать ]
Скриншот приложения BOINC-менеджера

BOINC на клиенте структурирован в несколько отдельных приложений. (RPC) BOINC Они взаимодействуют друг с другом с помощью механизма удаленного вызова процедур .

Эти компонентные приложения:

  • Программа боинк (или boinc.exe ) — основной клиент.
  • Основной клиент — это процесс , который:
    • Заботится о связи между клиентом и сервером.
    • Базовый клиент также загружает научные приложения, обеспечивает унифицированный механизм журналирования, обеспечивает актуальность двоичных файлов научных приложений и распределяет ресурсы ЦП между научными приложениями (если их установлено несколько).
    • Хотя основной клиент способен загружать новые научные приложения, он не обновляется самостоятельно. Авторы BOINC считали, что это представляет неприемлемую угрозу безопасности. [ нужна ссылка ] , а также все риски, которые процедуры автоматического обновления несут в вычислениях.
    • В Unix основной клиент обычно запускается как демон (или иногда как задание cron ).
    • В Windows BOINC изначально был не службой Windows, а обычным приложением. Клиент BOINC для Windows версии 5.2.13 и выше добавляет во время установки опцию «Установка службы».
    • В зависимости от того, как было установлено клиентское программное обеспечение BOINC, оно может работать в фоновом режиме как демон или запускаться при входе в систему отдельного пользователя (и останавливаться при выходе пользователя из системы). Управление версиями программного обеспечения и обработка рабочих единиц, предоставляемые основным клиентом, значительно упрощают кодирование научных приложений.
  • Одно или несколько научных приложений. Научные приложения выполняют основные научные вычисления. Для каждого проекта распределенных вычислений, использующего структуру BOINC, существует определенное научное приложение. Научные приложения используют демон BOINC для загрузки и скачивания рабочих модулей, а также для обмена статистикой с сервером.
  • боинкмгр (или boincmgr.exe ), графический интерфейс , который взаимодействует с основным приложением с помощью удаленных вызовов процедур . По умолчанию основной клиент разрешает подключения только с одного и того же компьютера, но его можно настроить на разрешение подключений с других компьютеров (необязательно с использованием аутентификации по паролю); этот механизм позволяет одному человеку управлять фермой установок BOINC с одной рабочей станции. Недостаток использования механизмов RPC заключается в том, что их часто считают угрозой безопасности, поскольку они могут быть путем, по которому хакеры могут проникнуть на целевые компьютеры (даже если они настроены на соединения с того же компьютера).
  • Графический интерфейс написан с использованием кроссплатформенного набора инструментов WxWidgets , обеспечивающего одинаковый пользовательский интерфейс на разных платформах. Пользователи могут подключаться к основным клиентам BOINC, давать указания этим клиентам устанавливать новые научные приложения, отслеживать ход текущих вычислений и просматривать журналы системных сообщений BOINC.
  • BOINC Заставка . Это обеспечивает основу , с помощью которой научные приложения могут отображать графику в окне заставки пользователя. Заставки BOINC кодируются с использованием графического API BOINC, OpenGL и набора инструментов GLUT . Обычно заставки BOINC показывают анимированную графику с подробным описанием выполняемой работы, возможно, графики или диаграммы или другую графику для визуализации данных.
  • Некоторые научные приложения не поддерживают функцию заставки (или перестают отображать изображения заставки, когда они неактивны). В этом случае на заставке отображается небольшой логотип BOINC, который прыгает по экрану.

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

Клиентские платформы

[ редактировать ]
Операционная система Аппаратное обеспечение Примеры Статус
Линукс ИА-32 и AMD64 ПК и серверы Для большинства проектов Linux требуется 64-разрядная версия Linux. Для 32-битных проектов Linux может потребоваться установка 32-битных библиотек, если они выполняются в 64-битной версии Linux.
macOS Х86-64 , ARMv8 Раньше для PowerPC, IA-32 и AMD64 были доступны разные клиенты BOINC. Клиент AMD64 был способен запускать приложения IA-32, если сервер BOINC поддерживает это. BOINC Manager 7.16.13 предназначен как для X-86-64, так и для ARMv8.
Окна ИА-32 и AMD64 Для IA-32 и AMD64 доступны различные клиенты BOINC. 64-битный клиент будет запускать 32-битные приложения, если сервер BOINC поддерживает это.
Распбиан ( Линукс ) РУКА Малиновый Пи Доступно очень мало клиентских приложений.
Андроид ( Линукс ) ARM , MIPS или IA-32 Смартфоны и планшеты Доступно мало клиентских приложений. Для некоторых проектов могут потребоваться неофициальные клиенты (NativeBOINC).

См. также

[ редактировать ]
  1. ^ «Клиент-серверная технология BOINC | Семантик» . www.semanticscholar.org . Проверено 14 августа 2022 г.
  2. ^ Переход SETI@home на BOINC
  3. ^ Андерсон, Дэвид П.; Маклеод, Джон (2007). «Локальное планирование для добровольных вычислений» . 2007 Международный симпозиум IEEE по параллельной и распределенной обработке . стр. 1–8. дои : 10.1109/IPDPS.2007.370667 . ISBN  978-1-4244-0909-9 . S2CID   15164675 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 44f3cb752543c476806273d31abb37c9__1673843340
URL1:https://arc.ask3.ru/arc/aa/44/c9/44f3cb752543c476806273d31abb37c9.html
Заголовок, (Title) документа по адресу, URL1:
BOINC client–server technology - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)