Статьи
Наука@Home: распределенные вычисления на ПК

Наука@Home: распределенные вычисления на ПК


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


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

Тем не менее, развитие Всемирной Сети и увеличение производительности процессоров в полном соответствии с законом Мура привело к тому, что сейчас распределенные сети на равных конкурируют с топовыми суперкомпьютерами, причем, в отличие от них, постоянно совершенствуются и не стоят ни копейки.

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

Наверное, самым важным и пока еще не до конца раскрывшим себя шагом стал переход на GPU-вычисления, в некоторых случаях ускоряющий расчеты на порядок. Значительную роль сыграла и оптимизация вычислительных алгоритмов под многоядерные процессоры, возможность одновременного выполнения расчетов на CPU и GPU, поддержка 64-битных вычислений, появление клиентов для игровых консолей, поддержка альтернативных операционных систем (Mac OS X, Linux), быстрое распространение Интернета, и что немаловажно, заметное упрощение клиентов, которые больше не требуют от пользователей запуска вычислений через командную строку.

 

Сравнение с суперкомпьютерами

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

По состоянию на октябрь 2012 года проект Folding@home «завербовал» 219 тыс. процессоров, 20 тыс. GPU, 16 тыс. консолей PlayStation 3, и его суммарная мощность составила 3.7 petaFLOPS (пиковая мощность 6 petaFLOPS была зарегистрирована в ноябре 2011 г.). По данным за этот же месяц, производительность BOINC (всех проектов, входящих в состав этой сети) составляет 6.6 petaFLOPS (на момент публикации материала — 7.4 petaFLOPS, по данным официального сайта, но эта цифра подсчитывается лишь за последние 24 часа).

Если эти виртуальные вычислительные системы разместить в списке суперкомпьютеров, то они втиснутся между третьей и четвертой строчкой рейтинга, заметно опережая ближайшего конкурента (производительность SuperMUC, занимающего сейчас четвертое место, составляет 3.1 petaFLOPS).

Для того, чтобы подняться на первое место, Boinc необходимо быть быстрее приблизительно в три раза, поскольку рейтинг Sequoia (самого производительного на текущий момент суперкомпьютера в мире) составляет 20.1 petaFLOPS. Учитывая, что этот компьютер в полную мощность заработал лишь летом этого года, можно предположить, что распределенные вычислительные системы смогут вырваться вперед уже в течение нескольких лет, даже с учетом появления новых суперкомпьютеров.

 

Основные направления исследований

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

 

Как подключиться к сети распределенных вычислений

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

Проще всего это сделать, скачав клиент BOINC и запустив мастер добавления нового проекта. На одном из шагов необходимо будет зарегистрироваться (что можно сделать прямо в программе), вот и все трудности. Если возникли затруднения с выбором конкретного проекта, то можно указать сразу несколько, и они будут считаться по очереди.

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

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

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

 

Очки за участие

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

По данным сайта Ukraine — Distributed Computing Team, Украина занимает в основном места во втором — четвертом десятке, в командном зачете, хотя иногда и поднимается выше, а в одном проекте даже лидирует.

 

Популярные проекты

Boinc

Boinc — это не распределенная сеть в традиционном понимании, а скорее посредник между проектами и пользователями. Изначально Boinc разрабатывался как клиент для SETI@home, но сейчас с его помощью можно подключиться и к десяткам других проектов.

 

Climate Prediction

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

 

Einstein@home

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

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

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

Einstein@home запущен в 2005 г. и на текущий момент его вычислительная мощность составляет приблизительно 0.5 petaFLOPS.

 

Rosetta@home

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

Проект запущен в 2005 г. и по состоянию на октябрь 2011 г. его вычислительная мощность составляла приблизительно 60 teraFLOPS (0.06 petaFLOPS)

 

Folding@home

Возможно, самый популярный проект распределенных вычислений. По вычислительной мощности уже сопоставим со всеми проектами, входящими в состав BOINC. Занимается практически тем же, что и Rosetta@home, т.е. изучением свойств белка, и с момента запуска благодаря ему были опубликованы более ста научных работ.

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

 

SETI@home

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

Несмотря на тринадцатилетний стаж, проект до сих пор не получил ни одного результата, сравнимого по скандальности с сигналом «Wow!», зарегистрированном в 1975 г. Тем не менее, на небе было найдено несколько точек — кандидатов на более тщательное сканирование, в связи с повышенной интенсивностью сигналов на фоне обычного шума. Вычислительная мощность проекта составляет приблизительно 0.5 petaFLOPS.

 

Majestic-12

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

Основная задача клиента, работающего на ПК, — индексирование страниц. В отличие от других типов распределенных вычислений, у Majestic-12 очень скромные требования к вычислительной мощности компьютера, но он очень интенсивно потребляет трафик.

По состоянию на октябрь 2009 Majestic-12 проиндексировал один триллион страниц. Google достиг той же цифры ненамного раньше — в июле 2008 года.

 

RainbowCrack

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

На текущий момент таблицы RainbowCrack уже занимают сотни гигабайт и позволяют за несколько минут найти любой пароль длиной до семи символов (состоящий из букв, цифр и других символов), зашифрованный с помощью нескольких разных алгоритмов (LanMan, MD5, SHA1, и др.).

 

FreeHAL@home

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

 

PlanetQuest

Проект все еще находится в стадии разработки и предназначен для поиска экзопланет, в том числе земного типа.

 

Orbit@home

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

 

Burp

Рендеринг 3D-анимации — весьма ресурсоемкая задача, поэтому и для нее нашлось место в распределенных вычислениях. Пока Burp находится в стадии Beta, а это значит, что сцены, загруженные для просчета, не обязательно будут выданы кому-то как задания, или могут быть выданы с задержкой, однако после полноценного запуска гарантируется рендеринг всех поступающих проектов.

 

Milkyway@home

Проект воссоздания трехмерной модели нашей Галактики, позволяющий узнать историю формирования Млечного Пути.

Помимо этого, просчитываются процессы столкновения и слияния Галактик.

 

Cosmology@home

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

 

Clean Energy Project

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

Как понятно из названия, эти, а также будущие задачи направлены на исследования альтернативных, экологически чистых источников энергии.

 

Magnetism@home

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


Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: