Современный мир развивается очень динамично. Новые технологии, рекламные и программные уловки приводят к тому, что мы регулярно меняем свой компьютер, покупая с каждым разом все более мощный. Многие из нас никогда не задумываются о том, что значительную часть времени ресурсы нашего компьютера используются не более чем на 5%.
С другой стороны, перед современной наукой стоит множество задач, для решения которых нужна мощная вычислительная техника. Суперкомпьютеров в мире не очень много, они дороги и не всегда доступны, а также их мощности часто бывает недостаточно.
Таким образом, возникает ситуация, при которой 95% ресурсов достаточно мощных домашних машин никогда не используются, а решать глобальные задачи исследователям не на чем.
Идея распределенных вычислений возникла довольно давно, однако широкое распространение она получила лишь тогда, когда Интернет стал повсеместно доступен. Под распределенными вычислениями понимается способ выполнения расчетов путем их разделения между множеством компьютеров, которые разбросаны по всему миру. Идея заключается в том, что любую задачу, требующую большого объема вычислений, можно поделить на много маленьких частей, каждая их которых окажется по зубам любой домашней машине.
Существующие на сегодняшний день проекты, которые используют методы распределенных вычислений, радуют своим многообразием. Физики, химики, математики, астрономы, биологи и даже компьютерщики всего мира нуждаются в ресурсах для решения своих задач.
Пожертвовать частичку своего компьютера для науки может любой пользователь, подключенный к ИнтернетуПожертвовать частичку своего компьютера для науки может любой пользователь, подключенный к Интернету. Для этого необходимо выбрать проект, в котором интересно было бы принять участие. После этого необходимо установить на компьютер клиентскую программу, которая периодически связывается с центральным сервером проекта и получает задание. Задание выполняется в тот момент, когда процессор не занят полезной нагрузкой. На обсчитывание каждой части уходит от нескольких минут до нескольких недель в зависимости от задачи. После выполнения задания программа связывается с сервером и передает результат. Полученные от пользователей части задания склеиваются в общий результат.
Для организации распределенных вычислений используются различные инструменты. На сегодняшний день для упрощения процесса организации и управления распределенными вычислениями создано несколько программных комплексов, среди которых есть как коммерческие, так и абсолютно бесплатные. Самый известный из комплексов — BOINC — Berkeley Open Infrastructure for Network Computing (Открытая инфраструктура для распределенных вычислений университета Беркли), он используется в значительной части существующих исследований.
Рассмотрим несколько интересных проектов.
Самый первый проект, в котором был использован метод распределенных вычислений, — это проект SETI@Home. Его целью ставился поиск внеземных цивилизаций (Search for Extraterrestrial Inteliegence), для чего исследователями обрабатывается космический шум, записываемый радиотелескопом Arecibo. Сигналы, полученные радиотелескопом, исследуются на предмет наличия особых характеристик — признаков разумной радиоактивности. Программа-клиент выглядит как скринсейвер.
Проект Climate Prediction занимается прогнозированием изменений климата на Земле, чтобы определить, насколько точны существующие методы долговременного предсказания погоды и насколько сильно на их точность влияют погрешности в исходных данных. Проект призван помочь в предсказании погоды на 50 лет вперед. Вычисления, связанные с климатом Земли, настолько ресурсоемки (в них может фигурировать до 100 миллионов переменных), что при работе с суперкомпьютером в ходе сеанса симуляции одновременно можно изменять лишь несколько параметров. Система распределенных вычислений позволяет запускать сразу множество симуляций одновременно, но с различными параметрами. Каждая программа-клиент работает на компьютерах участников несколько месяцев, прежде чем отправит обработанные данные обратно на центральный сервер. Так как все участники получат немного разные входные данные, то результат работы каждого из них уникален. Затем среди полученных результатов выбираются те, которые наиболее точно отражают реально происходившие в мире климатические события, и делаются выводы о наиболее вероятных изменениях, ожидающих нас в будущем.
Участники проекта Einstein@Home занимаются составлением атласа излучаемых звездами-пульсарами гравитационных полей для всего неба. Это делается с целью проверки одной из гипотез Эйнштейна, которая предсказывает теоретическую возможность существования гравитационных волн, возникающих при столкновениях черных дыр и взрывах звезд. Однако пока никому из ученых так и не удалось зафиксировать эти загадочные волны. Данные для анализа поступают с Лазерно-интерферометрной обсерватории гравитационных полей (LIGO).
Проект Rosetta@Home позволяет его участникам присоединиться к решению одной из самых больших проблем в молекулярной биологии — вычислению трехмерной структуры белков из их аминокислотных последовательностей. В случае успешного моделирования белковых комплексов и структур появляется шанс победить такие болезни, как рак, малярия, болезнь Альцгеймера, сибирская язва, и другие генетические и вирусные заболевания.
Участники проекта Folding@home занимаются получением более точного представления о болезнях, вызываемых дефектными белками. С помощью их компьютеров изучаются белки, имеющие отношение к болезни Альцгеймера, Паркинсона, диабету типа II, коровьему бешенству и склерозу. Результаты этого проекта выкладываются в свободный доступ и могут сразу же использоваться учеными по всему миру.
Проект Grid.org Cancer Research позволяет нам присоединиться к поиску лекарства от рака. Программа моделирует взаимодействие миллиардов возможных молекул с белками, участвующими в развитии этой болезни. Цель проекта — определить, не является ли одна из этих молекул возможной основой для нового лекарственного средства.
Потенциальных задач для вашего простаивающего процессора имеется множество. Исследователи, использующие в решении своих задач методы распределенных вычислений, при небольших затратах на создание программного обеспечения получают огромные вычислительные мощности. Поэтому среди исследователей существует определенная конкуренция за добровольцев. А для чего простые обыватели тратят свое время, платят за электричество и за трафик?
К проектам присоединяются по разным причинам. Среди основных можно выделить следующие.
Материальный или моральный стимул. Многие исследователи разыгрывают среди добровольцев ценные призы, крупные денежные суммы или обещают сделать соавтором научного труда того человека, на чьем компьютере будет получен ценный результат.
Помощь науке. Чувство сопричастности к серьезной научной деятельности — достаточно важный стимул. Кроме этого, подобная деятельность может быть единственным доступным способом для тех, кто потерял родных от тяжелой болезни, оказать помощь больным всего мира.
Дух соревнований. По каждому из проектов ведется статистика. Причем как по отдельным пользователям, так и по командам, в которые они объединяются, и даже по странам. Командные соревнования увлекают, стимулируют привлекать друзей и знакомых. Зарегистрированных российских команд, участвующих в распределенных вычислениях, — более 100. Среди них есть как крупные, так и состоящие всего из 1-2 человек. Несмотря на то что Интернет в России распространен еще не повсеместно, российские команды в большинстве проектов занимают места в первой двадцатке.
Возможно, когда-нибудь каждый из нас сможет с гордостью заявить, что он помог изобрести лекарство от рака, доказать гипотезу Эйнштейна или услышать позывные инопланетян. Нам есть к чему стремиться!
Ссылки по теме
Статья получена: hostinfo.ru