Распределённые вычисления: краткое введение в проекты BOINC. Наука@Home: распределенные вычисления на ПК

Распределённые вычисления: краткое введение в проекты BOINC. Наука@Home: распределенные вычисления на ПК

Все мы смотрели трилогию “Назад в будущее” и представляем, чаще всего, ученых именно в виде Дока — немного сумасшедших, людей, увлеченных какими-то идеями. Иногда и нам хочется почувствовать себя таким же первооткрывателем, проверить гипотезу, доказать теорему, построить машину времени. Или хотя бы провести тест-драйв этой машинки.

Но давайте вернемся в действительность. Машины времени нет. Полеты в космос пока не столь далеки. Болезни не побеждены. “Где же эти ученые? Какая, например, мне польза от открытий Эйнштейна”, — думают многие, когда плывут на теплоходе по океану. А ведь теплоход ориентируется по GPS, спутники которой постоянно курсируют над планетой и помогают точно установить, где находится на Земле приёмник. И если бы не работы Эйнштейна, мы бы не могли пользоваться такой технологией, потому что при скоростях спутников уже заметны эффекты, которые, если их не учитывать, собьют все прицелы GPS. Значит, польза от науки, опосредованная, всё-таки есть. Можем ли мы помочь, если не Доку, то науке?

Наверное многие из вас слышали о волонтёрах — людях, которые добровольно делают что-то, во имя чего-то великого: защита китов, посадка деревьев, уборка мусора, помощь медикам в борьбе с болезнями — как участие в вакцинации народов Африки, так и испытание этих препаратов на себе. Многие люди хотят сделать что-то большое. Так, фонд Билла и Мелинды Гейтс спонсирует разнообразные здравоохранительные программы — предупреждение и лечение туберкулеза, СПИД, борьба с малярией и лихорадками.
Представьте будущее, лет через 10. К вам подходит ребенок, который по “Дискавери” увидел программу о гриппе и спрашивает: “Папа, а ты знал, что раньше люди каждый год болели болезнью гриппа, а недавно ученые открыли средство против него и теперь мы не болеем?”. И вы отвечаете: “Конечно, знаю! Я в этом участвовал.”
Понятно, это — пока фантастика, но вам было б приятно, верно?
А что, если бы вы могли помогать науке и медицине, не жертвуя состояния, как Билл Гейтс, не проливая пот и кровь в волонтерских мероприятиях, не рискуя заразиться от прививаемых людей малярией? Вы скажите, что это фантастика.

Проект по поиску разумной внеземной жизни SETI знаком многим. Сеть радиотелескопов, сканируют небо на предмет необычных сигналов. Необычные — это которые повторяются, но которые нельзя объяснить за счёт человеческой деятельности — радары, спутники, радиостанции — или за счет естественных причин (пульсары, реликтовое излучение и др.). Во время поиска чего-то интересного в этом “шуме”, прослушивается частота за частотой — будто вы крутите медленно настройку радиоприемника, и все это шипение между радиостанциями и является шумом — и в каждой частоте пробуют найти что-то повторяющееся. Как? Каждый сигнал можно изобразить в виде графика функции. Путем сложных вычислений можно “подобрать” формулу, которая бы это описала — выполнить преобразование Фурье для графика. Это невероятно сложно, потому что данных поступает много и над всеми из них требуется проводить долгие расчеты. Использовать для этого суперкомпьютеры было бы дорого.

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

Не помешало ли это обычному пользованию компьютерами? Нет — программы были написаны так, чтобы использовать ресурсы, когда он простаивает. Приблизительно так же, как появляется заставка на мониторе . Когда пользователь снова начинает активно работать, например, запускает игру или конвертирует видео, программа “засыпает” и ждет следующего свободного момента. К слову, современные компьютеры часто имеют много процессоров (ядер) и выполнение таких программ может вестись даже во время пользования компьютером так, что пользователь не заметит нагрузки на машину. Программа-клиент периодически подключается к серверу для получения очередной порции данных для вычислений. После завершения расчётов их результаты отсылаются обратно.

Архитектура, которая была таким образом изобретена, называется BOINC (англ. Berkeley Open Infrastructure for Network Computing ) - открытая программная платформа (университета) Беркли для GRID вычислений). Для того чтобы помочь науке теперь достаточно скачать программу клиент BOINC и подключиться к одному из проектов.

Folding@Home (F@H, FAH) - проект распределенных вычислений для проведения компьютерного моделирования свёртывания молекул белка. Цель данного проекта понять технику и принципы биохимического процесса создания (сворачивания) и разрушения (разворачивания) белков. Это требуется для борьбы с такими болезнями, как болезнь Альцгеймера, Паркинсона, диабет, склерозы. В результате вычислительной помощи добровольцев в данном проекте было много симуляций и на их основе было опубликовано множество промежуточных научных работ. Это наибольший из проектов добровольных распределенных вычислений, общая производительность систем, задействованных в нем способна соревноваться с производительностью мощнейших суперкомпьютеров планеты.

Einstein@Home — проверяем гипотезу Энштейна

Einstein@Home — проект, созданный для проверки гипотезы Эйнштейна о гравитационных волнах — способа распространения гравитации во Вселенной. Для этого изучают и составляют подробный атлас “тяжелых” объектов космоса — нейтронных звезд, черных дыр, пульсирующих звезд, чтобы понять как могут распространятся гравитационные волны, если они, конечно, существуют. Наблюдения и измерения в рамках этого проекта позволяют глубже понять и подтвердить (а быть может в будущем — опровергнуть?) общую теорию относительности (Помним GPS?), узнать с какой скоростью перемещаются гравитационные волны — со скоростью ли света, определить физические свойства этих гипотетических волн. Кроме того, с 2009 года часть мощностей проекта и, соответственно, часть вычислений добровольцев направлено на поиски радиопульсаров и других необычных объектов Вселенной.

MilkyWay@Home — астрофизика

MilkyWay@Home — это проект добровольных распределенных вычислений в области астрофизики, целью которого является исследование потоков звездного вещества Млечного Пути и составление высокоточных трехмерных динамических моделей. Сейчас в основном моделируется звездный поток Стрельца. Он имеет нестабильную орбиту и скорее всего образовался в результате сближения карликовой галактики с галактикой Млечный Путь.

World Community Grid — помогаем IBM

World Community Grid (WCG) — проект добровольных распределенных вычислений, созданный IBM, на базе которого создано множество подпроектов. Некоторые из этих подпроектов проводят исследования по борьбе с раком и СПИД. Другие моделируют средства для лучшей очистки питьевой воды, средств борьбы с гриппом и простудой. Решение о том, к каким расчётам следует привлечь первостепенное внимание, принимается совместно с ведущими учёными разных стран.

PrimeGrid — поиск простых чисел

PrimeGrid — это проект добровольных распределенных вычислений, целью которого является поиск простых чисел (которые делятся лишь на 1 и на себя) разнообразных форм. Некоторые важны для проверки гипотез математики, другие для тестирования программного обеспечения или криптографии.

На самом деле проектов, где вы можете помочь науке, частью мощностей вашего ПК, очень много. Перечислим несколько интересных и разнообразных, буквально одной строкой:
sudoku@vtaiwan — выяснение минимального количества начальных чисел, необходимого для единственного решения головоломки;


Leiden Classical — численное решение задач классической механики;
Seventeen or Bust — проверка одной из гипотез математики;
Renderfarm — создание фермы рендеринга для всех желающих — любой может проявить свои 3D-модели, превратив их в картинку или видео высокой четкости;
Enigma — Попытка расшифровки некоторых перехваченных и не расшифрованных до сих пор сообщений немцев времен Второй мировой войны;
LHC@home — проект, позволяющий моделировать поведение пучков частиц в Большом Адронном Коллайдере — эти данные в последствии используются при калибровке установки;
Magnetism@home — проект по расчету магнитных конфигураций цилиндрических нано-элементов, созданный Константином Метловым из Донецкого физико-технического института. Проект решает задачи статики, динамики и термодинамики для магнитных нано-элементов различной формы.

Очень часто люди с одинаковыми хобби соединяются в группы. Так и с добровольными распределенными вычислениями. Есть множество групп людей, которые соединяются по разным признакам — один университет, одна страна, просто понравилась группа. В Украине есть национальная команда, сайт которой distributed.org.ua . На сайте есть форум, где проводится обсуждение на разные темы и где можно получить более детальную информацию о каждом проекте. Такие же национальные команды есть и в России, и в Польше, и в Германии — во многих странах.

Для того чтобы было интереснее, люди устраивают соревнования — меряются тем, сколько полезной работы сделали и сколько очков (кредитов или Cobblestones) заработали. Количество очков зависит от производительности компьютера , от числа задействованных машин (можно под одним именем использовать несколько компьютеров) и времени, сколько компьютер может заниматься вычислениями. Некоторые проекты несколько раз в год проводят так называемые заезды или челленджи — когда соревнуются команды: кто из команд за определенный промежуток времени заработает больше всех кредитов.

“Недостатком” вашей такой помощи науки может служить увеличивающийся счет за электричество. Это и есть та малая плата, благодаря которой вы, сможете вместе с другими добровольцами победить болезни, решить сложные задачи и сформировать карту нашей Галактики. Возможно вы спросите, можно ли на этом зарабатывать? Нет, нельзя. Да, точно нельзя. Это волонтерская помощь. Безвозмездная.

В этом видео расскажу как подключиться к проекту добровольных распределенных вычислений

Если у вас возникли какие то вопросы, задавайте их в комментариях. Благодарю, что поделились статьей в социальных сетях. Всего Вам Доброго!

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

О процессоре и ресурсах.

Давайте задумаемся, чем занят наш компьютер, когда мы его используем? Сердцем компьютера является центральный процессор . Именно он производит все математические и логические операции.
Ведь каждая компьютерная игра, каждый фильм - это все последовательности операций сдвигов, сложений и переносов отдельных битов (это самый маленький кусочек информации в компьютере). Чем больше операций в секунду может производить процессор - тем он быстрее. Практически все компьютерные игры используют ресурсы процессора на 100%, т.е. процессор отдает максимум скорости на игру. Но все обстоит иначе с просмотром фильмов, редактированием документов и т.д. Например, фильму не нужно использовать весь ресурс процессора, ему нужно лишь столько этого "ресурса", чтобы при просмотре пользователь не видел "скачков" и протяжек. На современных компьютерах просмотр фильма использует всего 10-15 процентов процентов процессора. А редактирование документов и того меньше - 1-4 процента. Получается. что большую часть времени процессор стоит без дела. И как раз эту неиспользуемую часть его времени и ресурса можно использовать под распределенные вычисления.

Что такое распределенные вычисления?

Грубо говоря, это процесс разбиения одного большого расчета, требующего мощнейшего компьютера, на много маленьких фрагментов, и предоставление этих фрагментов на обработку множеству обыкновенных компьютеров. Реализовать это помогает программа BOINC (Berkeley Open Infrastructure for Network Computing - открытая система для распределенных вычислений университета Беркли (спасибо им за FreeBSD =) ))
Когда Вы запускаете BOINC на своем компьютере происходит следующее:

1. Ваш компьютер запрашивает список инструкций с сервера. Причем инструкции зависят от возможностей Вашего компьютера. Например, сервер не выдаст инструкции которые требуют от вашего компьютера слишком большого объема оперативной памяти.
2. Ваш компьютер скачивает программу и данные для расчетов.
3. Ваш компьютер начинает вычисления.
4. Ваш компьютер формирует выходные файлы расчетов.
5. Ваш компьютер передает результаты на главный сервер и запрашивает данные для нового расчета. Цикл повторяется вновь.

Причем, BOINC работает с минимальным приоритетом. Это значит, что он получает ресурсы процессора в последнюю очередь, т.е. если ни одной программе они не нужны. Таким образом, из-за него производительность системы не ухудшается (и не улучшается =)).
Для представления Вам системы BOINC осталось сказать лишь одно:
Разным ученым - изобретающим новые лекарства для людей, исследующим болезни, исследующим космос в поисках внеземного разума, изучающим гравитационные волны с далеких пульсаров, и другим исследователям, требуются для расчетов и обработки данных немыслимо (в масштабах целого института) дорогие вычислительные центры. Программа BOINC дает Вам возможность помочь исследователям в решении их задач.
Скачать BOINC и узнать информацию о проектах и достижениях можно на сайте boinc.berkeley.edu

В каких проектах можно принять участие?

  • Climateprediction.net : - изучение перемен климата.
  • http://einstein.phys.uwm.edu/ : поиск гравитационных импульсов, излучаемых пульсарами.
  • http://lhcathome.cern.ch/ : улучшение ускорителя частиц CERN LHC

Распределенные вычисления

Часть 1. Высокопроизводительные вычисления в каждый дом

Серия контента:

1. Введение

Что делает ваш компьютер, когда ничего не делает? Пользователи одной из альтернативных операционных систем знают, что самый прожорливый процесс – это «System Idle»: как правило, он «съедает» около 90% ресурсов процессора. А чем занят ваш компьютер?

Выполните команду uptime, чтобы узнать среднюю загруженность системы. Если в этот момент ваш компьютер не занимается перекодированием видео или компиляцией ядра, то, скорее всего, средняя загруженность будет невелика – ниже 1.0. Такие действия, как просмотр Интернет-страниц, редактирование офисных документов и загрузка файлов с помощью торрент-клиента почти незаметны (с точки зрения производительности) для современных компьютеров.

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

2. Загадочная «решетка»

Речь пойдет об одной из форм распределенных вычислений (в международной терминологии такие вычисления называют GRID – решетка) – Volunteer Computing. Сначала поясним термины.

GRID – это объединение нескольких компьютеров для решения единой вычислительно сложной задачи, разбитой на подзадачи. Каждый компьютер решает несколько подзадач, а результаты отдельных вычислений объединяются. Основное преимущество GRID в том, что она может состоять из компьютеров, находящихся друг от друга на тысячи километров и имеющих различные характеристики (как аппаратные, так и программные). Задачу объединения этих разнородных компьютеров выполняет промежуточное программное обеспечение, которое (виртуально) связывает все компьютеры через Интернет в единый суперкомпьютер. Идея GRID возникла в 1990-х годах, когда с развитием средств компьютерных коммуникаций объединение географически удаленных друг от друга компьютеров стало более дешевым, простым и потенциально более мощным средством повышения производительности, чем наращивание мощности одного-единственного суперкомпьютера.

Существуют различные виды GRID. Volunteer Computing – это форма реализации GRID-вычислений, специфика которой заключается в использовании времени простоя компьютеров обычных пользователей по всему миру. На текущий момент самым крупным проектом Volunteer Computing как по числу участников, так и по суммарной мощности является Folding@home – проект по проведению компьютерной симуляции свертывания молекул белка, запущенный в октябре 2000 года учеными из Стэнфордского университета. Однако речь в этой статье пойдет не о Folding@home, а о втором по величине проекте – системе BOINC. Причина проста – в отличие от специализированного Folding@home, проект BOINC предоставляет возможность участия в самых разнообразных научных проектах, начиная от взлома криптографических систем и заканчивая поиском внеземных цивилизаций!

3. BOINC

Производительность

По состоянию на момент написания статьи, BOINC насчитывает 340 тысяч активных компьютеров, а суммарная производительность компьютеров участников проекта составляет 1,9 Петафлопа. Это почти в 2 раза превышает производительность мощнейшего современного суперкомпьютера IBM Roadrunner. Статистику проекта BOINC можно увидеть на официальной странице http://boinc.berkeley.edu/

Для организации распределенных вычислений (GRID-вычислений) необходима соответствующая программная платформа. Система должна уметь разбивать одну большую задачу на множество маленьких подзадач, распределять эти подзадачи по вычислительным узлам, принимать результаты вычислений и объединять их в единое целое. Для этого были созданы различные программные «прослойки» между управляющим сервером и вычислительными узлами. Одной из таких программных «прослоек» является BOINC.

3.1. Что такое BOINC

SETI@HOME

SETI@HOME – это некоммерческий проект по поиску внеземного разума с помощью анализа радиосигналов с радиотелескопа Аресибо.

SETI (Search for Extra Terrestrial Intelligence, Поиск ВнеЗемного Разума) – это направление исследований, направленное на обнаружение разумной жизни за пределами Земли. Основной метод – исследование радиосигналов, которыми пронизан космос. Ученые пытаются найти радиосигналы, источники которых не могут быть природными.

Сигналы с радиотелескопов содержат, в основном, шум (от внеземных источников и электроники приемников) и искусственные земные сигналы, такие как сигналы телевидения, радаров и спутников. Современный проект SETI анализирует данные в цифровой форме. Большая вычислительная мощность позволяет покрыть поиском больше частотных диапазонов с лучшей чувствительностью. SETI, следовательно, имеет неограниченную потребность в вычислительной мощности.

Предыдущие проекты SETI использовали специализированные суперкомпьютеры, выполнявшие основной объем анализа данных. В 1995 году Дэвид Андерсон (David Anderson) запустил проект по обработке данных SETI на виртуальном суперкомпьютере, состоящем из множества компьютеров, подключенных к сети Интернет, и организовал проект SETI@home (SETI на дому) для апробирования этой идеи. Проект SETI@home был запущен в мае 1999 года, а в 2005 году полностью перешел на платформу BOINC.

Выступление Дэвида Андерсона, посвященное SETI@HOME, распределенным вычислениям и BOINC, можно найти на YouTube: http://www.youtube.com/watch?v=8iSRLIK-x6A (EN).

BOINC (Berkeley Open Infrastructure for Network Computing – открытая платформа Университета Беркли для сетевых вычислений) – это свободная (распространяется под лицензией GNU LGPL) программная платформа для проведения распределенных вычислений (если точнее, то Volunteer Computing). Система BOINC была разработана в Калифорнийском университете в Беркли под руководством Дэвида Андерсона (David Anderson) командой, создавшей легендарный проект SETI@home. Основным мотивом разработки системы послужила нехватка свободных вычислительных мощностей для обработки данных, поступающих от радиотелескопов. Именно поэтому разработчики решили привлечь вычислительные ресурсы и объединить сообщества нескольких научных проектов. Для решения этой масштабной задачи и была создана программная платформа BOINC.

Система BOINC состоит из программы-клиента, общей для всех BOINC-проектов, составного сервера (термин «составной сервер» означает, что физически сервер может состоять из нескольких отдельных компьютеров) и программного обеспечения. Для выполнения распределенных вычислений используется архитектура клиент-сервер.

Пользователи, передающие вычислительные мощности BOINC-проектам типа SETI@home, «зарабатывают» кредиты, начисляемые за выполнение отдельных подзадач. Эти кредиты нужны только для создания духа соревновательности среди участников проекта – пользователи, имеющие наибольшее число кредитов, имеют шанс «засветиться» на главной странице проекта.

3.2. Установка

Установка программы-клиента BOINC в Linux проста до невозможности – пользуясь любимым пакетным менеджером, установите из репозитариев пакеты boinc-client, boinc-manager и boinc-gui. Если вы предпочитаете пользоваться новейшим программным обеспечением или если ваш дистрибутив Linux не имеет пакетного менеджера/репозитариев (а такие еще остались?), то получить установочный пакет свежей версии программы можно со страницы загрузки официального сайта проекта (ищите адрес сайта в разделе «Ссылки» под номером 1).

Вне зависимости от способа, которым вы установили программу-клиент, все основные файлы вы найдете в своем домашнем каталоге в подкаталоге BOINC – здесь находятся не только исполняемые файлы, но и файлы настроек, а также данные, необходимые для обсчета заданий. (Благодаря этому вы можете с легкостью «заставить работать» на один проект все компьютеры вашей корпоративной сети).

Для начала нужно запустить графический менеджер программы:

user: /home/user/run_manager

При первом запуске вам будет предложено подключиться к какому-либо проекту, упрощать этот процесс будет специальный помощник (см. рисунок 1).


На следующем шаге нужно будет выбрать проект, к которому вы хотите присоединиться, затем ввести свой электронный адрес и придумать пароль, а потом, возможно, потребуется завершить регистрацию на сайте самого проекта. В частности, на сайте можно выбрать команду (например, «Russia Team ») или даже создать свою собственную (я создал команду «Linux users Team» на проекте Climateprediction.net, присоединяйтесь!). Команды, как и отдельные участники, тоже участвуют в неформальном соревновании «Собери больше кредитов!».

К сожалению, описаний проектов менеджер BOINC при регистрации не предоставляет, поэтому выбором придется озаботиться заранее, например, просмотрев списки проектов, представленные по адресам в разделе «Ссылки» (). Не все так гладко и с предлагаемыми менеджером проектами, например, Einstein@home требует значительных аппаратных ресурсов, а SHA-1 Collision Search Graz уже не предоставляет заданий для обработки...

3.3. Работаем на благо науки!

Сразу после регистрации в проекте, программа-клиент BOINC начнет загрузку данных, необходимых для выполнения заданий. Учтите, что в зависимости от проекта этот этап может занять довольно продолжительное время и повлиять на вашу статистику полученного Интернет-трафика. Проекту ClimatePrediction.net понадобилось загрузить более 100 MБ, прежде чем начать обсчитывать первое задание.

Еще больше времени необходимо на вычисления по заданию: главное окно показывает текущий прогресс обсчета задания, затраченное время и оценку времени, необходимого для завершения задания (см. рисунок 2).

Помимо такого (упрощенного) вида окна программы-клиента BOINC, есть и более информативный расширенный вид – нажмите на кнопку Advanced View в правом нижем углу (см. рисунок 3).


Теперь вы можете получить большое количество дополнительной информации по проекту, в котором участвуете: различную статистику, информацию об использовании ресурсов компьютера, файлы, которые необходимо загрузить для расчета задания и многое другое! Все это скрывается за кнопками и пунктами меню с интуитивно понятными надписями, поэтому подробно останавливаться на этих возможностях мы не будем. Задержимся только на одной из них...

На вкладке «Задания» выделите строчку с заданием – тогда станут активными кнопки на панели слева (как на рисунке 3). Нажмите кнопку «Показать графику», и вашему взору предстанет замечательная картинка – это та самая модель, которую обсчитывает ваш компьютер. Поиграв управляющими клавишами (см. подсказки слева: T – температурная карта, R – снег и дождь, P – давление, C – облачность, S – запуск/остановка вращения глобуса, G – показать/скрыть сетку, H – помощь), можно наблюдать что-то аналогичное показанному на рисунке 4.


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

Еще одно замечание практического плана. На рисунках 2 и 3 видно, что общее время, необходимое для расчета задания, превышает 200 часов. Конечно, не каждый (особенно домашний) компьютер имеет время непрерывной работы порядка 10 суток. Для того чтобы не потерять все результаты расчетов при выключении компьютера, BOINC устанавливает контрольные точки. Кнопка «Информация» на вкладке «Задания» покажет, в том числе, и информацию о времени последней контрольной точки – при выключении компьютера вы потеряете лишь порядка 15 минут работы процессора.

3.4. Настройка программы-клиента «под себя»

Пользователю дается большой контроль над программой-клиентом BOINC с помощью различных настроек. Некоторые из этих настроек специфичны для проекта, другие являются общими и влияют на работу программы в целом. В расширенном виде окна программы-клиента выберите пункт меню «Дополнительно» – «Настройки клиента». Здесь вы можете указать такие параметры использования компьютера, что работа программы-клиента BOINC будет практически незаметна! Вы можете ограничить объем используемых для распределенных вычислений ресурсов процессора. Кроме всего прочего, можно указать, будет ли программа-клиент запускать на обсчет задания в то время, когда пользователь активно использует компьютер, или работа над распределенным проектом начнется только после определенного времени простоя процессора.

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

Вы можете ограничить скорость загрузки заданий из Интернет, объем используемого программой-клиентом BOINC дискового пространства и оперативной памяти... Все эти настройки интуитивно понятны, и не составит труда изменить их так, чтобы работа на благо человечества не мешала вашим личным интересам.

Если вы до сих пор не определились, какому именно проекту отдать свободные силы своего компьютера, не переживайте! Вы можете участвовать сразу в нескольких проектах («Сервис» –«Добавить проект» в расширенном виде окна программы или кнопка «Add Project» – в упрощенном) – по умолчанию программа-клиент BOINC будет каждые 60 минут (этот параметр тоже можно изменить) переключаться между заданиями различных проектов.

3.5. Некоторые технические подробности

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

Каждая программа-клиент подключается к серверу и получает задание на обработку. Через некоторое время, когда задание выполнено, программа-клиент снова подключается к серверу и передает ему результаты (а также получает новое задание). За выполнение задания зарегистрированный участник проекта, которому принадлежит программа-клиент, получает кредиты – баллы, характеризующие процессорное время, потраченное на проведение вычислений.

Однако в этой схеме для проекта распределенных вычислений спрятан ряд опасностей. Во-первых, программа-клиент, получившая задание, может по различным причинам никогда не выйти снова на связь с сервером. Например, если участник проекта, которому принадлежит программа-клиент, потерял интерес к проекту. Во-вторых, участники проекта (опять же по различным причинам) могут посылать неверные результаты. Это еще более опасно для проекта, чем просто отсутствие результата, так как одно-единственное неверно посчитанное задание может стать причиной полного фиаско проекта! И, в-третьих, участники проекта могут попытаться получить больше кредитов, чем они заработали. Конечно, так как заработанные кредиты используются только для статистики, эта опасность на первый взгляд не так уж страшна... Однако проблема лежит в психологии сохранения сообщества. Не такое уж большое число пользователей заинтересованы именно в помощи научному исследованию, большая часть пользователей будут раздражены «читерами» и, как следствие, разочарованы проектом, и перестанут уделять ему время.

Первую проблему система BOINC обходит просто – назначая конечный срок, к которому программа-клиент должна вернуть результат вычислений (например, на рисунке 3 видно, что конечный срок, к которому нужно вернуть результат задания – это 19 мая 2010 года).

Вторая проблема решается за счет передачи одного и того же задания нескольким пользователям (это называется избыточными вычислениями). Для каждого задания количество дублирующих друг друга исполнителей индивидуально, но значение по умолчанию платформы BOINC равняется пяти. Когда программа-клиент отчитывается о проведенных вычислениях, сервер сравнивает результаты, присланные разными участниками. Результат, принятый «кворумом» программ-клиентов, считается правильным, а неверные ответы отвергаются. Участники, вернувшие серверу неверные результаты, не получают кредитов. Число программ-клиентов, составляющее «кворум», также может быть указано для каждого задания в отдельности, а значение по умолчанию равняется трем. Кстати, именно из-за такой формы проверки результатов вы будете наблюдать задержки в подсчете заработанных кредитов.

Третью проблему BOINC решает так же, как и проблему неправильных ответов – выполняя избыточные вычисления. Если пользователь завышает значение кредитов, которые он должен получить, то он увеличивает также значение кредитов, которые получат честные пользователи. Это снижает ущерб от обмана.

3.6. Подведение итогов

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

Однако это далеко не все, что можно было бы рассказать о BOINC. Например, BOINC умеет использовать для вычислений GPU (Graphics Processing Unit) видеокарты NVIDIA. Вы можете создавать обложки («скины») для программы-клиента, запускать программу-клиента на разных компьютерах под одной учетной записью, управлять работой программы-клиента без графического интерфейса и даже найти свой украденный компьютер с помощью BOINC! Ну и, конечно же, любой человек может создать свой собственный проект распределенных вычислений на основе BOINC. Начните с этой страницы http://boinc.berkeley.edu/wiki/User_manual официального сайта, а в случае затруднений обратитесь на русскоязычный форум: http://boinc.ru/forum/ .

В следующей статье мы подробно остановимся на том, как создать свой собственный сервер BOINC. Кто знает, быть может, это послужит появлению новых отечественных проектов распределенных вычислений? А пока подождем, когда на полную мощность будет запущен российский проект DrugDiscovery@Home (смотрите адрес сайта в разделе «Ссылки» под номером 9), созданный и поддерживаемый интернациональной командой разработчиков и находящийся в стадии альфа-тестирования.

4. Заключение

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

Благодаря совместным усилиям обычных пользователей удалось сделать множество значимых открытий. Только за последние три года они отыскали 53 пульсара, причём последние семь нашлись совсем недавно – в конце августа 2012 г. Результаты выполненных исследований используются при разработке лекарственных препаратов для лечения сахарного диабета второго типа, болезней Альцгеймера и Паркинсона, других тяжёлых заболеваний. По материалам выполненных работ опубликованы сотни научных статей.

Суперкомпьютеры и распределённые сети

Мощные суперкомпьютеры – это капля в море. Машин, которые представляют собой предмет гордости целых стран и занимают первые строчки рейтинга TOP 500, не так уж много, и на всех их не хватает. Чтобы получить доступ к суперкомпьютеру, требуется сначала обосновать необходимость выбранной задачи, а потом, если доводы оказались убедительными, дождаться очереди и успеть оптимизировать код для выполнения на своеобразной суперкомпьютерной архитектуре.

"Ну и что, что у меня Crysis не запускается", — с бесхитростной простотой признался мой друг Владимир, — "зато в 1974 году мой компьютер смог бы управлять эскадрой военных спутников!"

Я не стал возражать, мощность современных компьютеров доставляет удовольствие только производителям компьютерных игр и создателям монстроподобных операционных систем. 9 пользователей из 10 загружают процессор процентов на 40 в день. Всё остальное время – бессмысленное взбалтывания кулерами воздуха пока четырёхгигарцевый образец человеческого гения играет роль медиацентра.

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

Предположим, в инопланетян вы до первого литра не верите, а лекарства считаете противными истинной сути «матери-природы». Более того, вам плевать даже на новые делители для чисел Ферма. Но не теряйте надежду. В мире существуют десятки других распределённых проектов, некоторые из которых разработаны хакерами для хакеров (RainbowCrack), предлагают вам неплохо заработать (GIMPS), а то и вовсе несут угрозу частичного вымирания человечества (LHC@home). Выбрать из них – лишь дело вкуса и ваших личных предпочтений.

Распределенные вычисления кажутся скучными играми математиков. До тех пор, пока кто-то не начинает считать на вашем компьютере модель локальной ядерной войны в странах третьего мира. Или разрабатывать новое бактериологическое оружие под видом лекарства от рака. Есть и очень популярные проекты, которые прямым текстом кричат «мы опасны!», но за общими словами создателей «ах, как это полезно и вы совсем ничего не теряете», трудно разглядеть истинные цели исследований. Знать заранее – и быть готовым к последствиям – ваша прямая обязанность. Иначе есть большой шанс, что миллионы леммингов сдвинут колесо истории в пропасть.

Climate Prediction

Проект, который пытается разбить на тысячу хрустящих осколков основы теории хаоса и предсказать погоду на 50 лет вперёд. Основываются предсказания не на «новых революционных методах прогнозирования, с использование суперкомпьютеров и магии индейских шаманов», а на самых что ни на есть старых теориях и схемах. То есть тем самым образом, каким погоду предсказывают и сейчас. Таким образом проект ставит перед собой 2 цели: во-первых, установить какова точность и эффективность используемых сейчас методик; во-вторых, если методики эффективны, предсказать погоду на наибольший период.

Участникам, как водится, придётся скачать программу, моделирующую различные погодные условия на Земле . Среди полученных результатов сначала отберут те, которые наиболее соответствуют результатам в прошлом, до 2000 года, и уже на их основе выстроят модель изменения климата в будущем.

Требования: во время работы программа занимает около 50 Мегабайт памяти, для сохранения данных потребуется 500 Мб на жёстком диске. В качестве бонуса отмечу интерактивность работы – вы сможете увидеть трёхмерную модель Земли и отследить своими глазами изменения в климате.

Результат: подобная задача у суперкомпьютера займёт тысячу лет, а ваше скромное участие через десяток лет поможет предсказывать различные зловредные погодные явления с невероятной точностью. Ну и к тому же вы похороните огромный раздел современной математики, утверждающий невозможность долгосрочных предсказаний.

LHC@home

Если вы торопитесь приблизить конец света на Земле – этот проект для вас. Проект занимается моделированием процессов, которые будут происходить в строящемся сейчас в Швейцарии LHC (Large Hadron Collider ) — самом большом в мире ускорителе частиц . В ускорителе длиной около 27 километров планируют столкнуть два протона для того, чтобы экспериментально доказать существование некого бозона Хиггса. Некоторые специалисты и представители общественности высказывают опасения, что имеется отличная от нуля вероятность выхода проводимых в коллайдере экспериментов из-под контроля и развития цепной
реакции, которая при определённых условиях теоретически может уничтожить всю планету. Точка зрения сторонников катастрофических сценариев связанных с работой LHC изложена на сайте http://www.risk-evaluation-forum.org/anon1.htm .

Считаете, что за дело аннигиляции всей вселенной можно и умереть – тогда присоединяйтесь. Дело в том, что от LHC ежегодно планируют получать до 15 петабайт данных. Уже сейчас вы можете помочь начать обрабатывать эти данные скачав программу SixTrack , которая моделирует движущиеся по кольцу в LHC частицы для изучения стабильности их орбит. Результаты выполнения программы SixTrack очень важны, от них зависит как будет работать крупнейший в мире научный проект, деятельность которого может совершить революцию в физике или отправить нашу галактику в антипространство.

Требования: несущественны.

Результат: доказательства некоторых научных теорий; низкоуровневый распад вселенной.

Muon1 Distributed Particle Accelerator Design

При маловероятном раскладе успешного испытания LHC , человечество непременно погубит Muon1 . К 2015 году планируется соорудить первую в мире The Neutrino Factory лабораторию генерации частиц нейтрино . Нейтрино – самая распространённая частица во вселенной. Проникает практически через любые объекты без существенного снижения скорости. Известно, что через тело человека ежесекундно проскакивают 10 14 нейтрино. Понимание природы нейтрино даст человечеству ключ к разгадке истории возникновения всей вселенной.

Для генерации нейтрино планируется использовать мюонный колайдер — ускоритель, благодаря которому можно будет достичь самых высоких энергий столкновения частиц, когда-либо осуществлённых человеком. По сравнению с ним LHC – игрушка для детсадовца. Будет ли эффективна Muon1 и какие вообще результаты следует ожидать от нового колайдера решит ваш компьютер, если присоединится к проекту. Какими конкретно расчётами занимается клиентская программа понятно только специалисту в области квантовой физики. Однако не сомневайтесь – результаты очень важны.

Требования: Pentium III-500 c 64 МБ памяти.

Результат: возможно именно вы дадите толчок к финансированию одного из самых амбициозных проектов в истории человечества.

RainbowCrack

В то время как большинство проектов, связанных с компьютерной безопасностью, занимаются утомительными, едва ли не бессмысленными методами взлома шифровальных систем, RainbowCrack создаёт базу по всем возможным видам паролей и соответствующим им хэшам по всем распространённым в мире алгоритмам хэширования. Обычно, хэшированный вариант пароля хранится в открытом доступе и известно, по какому алгоритму получен этот хэш (например MD5), но обратное преобразование считается слишком сложной операцией, требующей в общем случае перебор всех возможных комбинаций — это ставится в основу безопасности многих современных систем. Если же иметь сортированные таблицы хэшей и соответствующие им
пароли — получим систему, которая с помощью быстрого бинарного поиска по таблице может получать обратное преобразование хэша в пароль для любого существующего алгоритма хэширования.

Сейчас в проекте создано сотни гигабайт всех возможных паролей, которые позволяют с вероятностью порядка 99% найти за несколько минут обратное преобразование из хэша в любой пароль длиной до 7 символов (не только из букв, но также цифр и многих спец-символов), зашифрованных по алгоритмам LanMan (авторизация в Windows), NT LanMan (авторизация в Windows NT, в том числе сетевых доменах), MD2 , MD4 , MD5 , SHA1 , RIPEMD-160 , Cisco PIX (большинство маршрутизаторов), MySQL 3.23 , MySQL SHA1 .

Всем участникам проекта предоставляется возможность уже сейчас пользоваться полученной системой расшифровки паролей в виде онлайн-сервиса — частота использования сервиса одним участником неограниченна, но ограничено время действия каждого аккаунта. Для продления времени доступа участникам предлагается рассчитывать новые таблицы, увеличивающие количество поддерживаемых алгоритмов и комбинаций паролей. Обычно на расчёт таблицы уходит от нескольких дней до недели процессорного времени (2 ГГц) — за каждую таблицу время доступа продляется на 2 недели.

Требования: 640 Мегабайт на жёстком диске, исходящий трафик – около 3 Гигабайт в месяц. Почти не требует входящего трафика, процессорного времени или специфической оси.

Результат: редкий случай, когда работаете вы, скорее всего, на себя и результат используете в деле.



© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows