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

Существует множество научных задач, для решения которых нужны очень мощные компьютеры. Например, моделирование ядерных испытаний — именно этим занимается самый мощный в мире суперкомпьютер Roadrunner. Огромного ресурса вычислительных мощностей требует прогноз погоды — как раз для этой цели Гидрометцентр России недавно обзавелся новым 30-тонным суперкомпьютером с производительностью вычислений 27 терафлоп. И это только два примера из огромного количества подобных задач. До недавнего времени их обычно решали с помощью суперкомпьютеров.

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

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

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

Малой кровью

Этот малоосвоенный резерв — домашние и рабочие персональные компьютеры. Их центральные процессоры большую часть времени работают «вхолостую», даже когда пользователь набирает текст, смотрит видео или слушает музыку. Предоставив пропадающее даром процессорное время на нужды науки с помощью глобальной сети распределенных вычислений (distributed computing), владелец ПК не чувствует неудобств, кроме разве что шума от вентиляторов из-за повышенного тепловыделения процессора — вычисления выполняются с минимальным приоритетом, не сказываясь на работе других программ. Соединение с интернетом необходимо лишь для отправки результатов на сервер и получения новых заданий — расходы на трафик вырастут незначительно.

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

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

От математики до внеземного разума

Идея совместного использования вычислительных ресурсов нескольких машин возникла еще на заре компьютерной эпохи. В 1973 году Джон Шох и Жон Хапп из знаменитого калифорнийского научно-исследовательского центра Xerox PARC (Palo Alto Research Center) написали программу, которая по ночам запускалась в локальную сеть PARC, расползалась по работающим компьютерам и заставляла их выполнять вычисления.

Качественный скачок в обеспечении совместной работы многих компьютеров над единой задачей произошел с появлением первых персональных компьютеров и электронной почты. В 1988 году Арьен Ленстра и Марк Менес написали программу для факторизации (разбиения на множители) длинных чисел. Для ускорения процесса программа могла запускаться на нескольких не связанных друг с другом машинах, каждая из которых обрабатывала свой небольшой фрагмент. Новые блоки заданий рассылались на компьютеры участников с центрального сервера проекта по обычной электронной почте. Для успешного разложения на множители числа длиной в сто знаков этому сообществу потребовалось два года и несколько сотен персональных компьютеров. С успешным завершением проекта Ленстра-Менеса на древе эволюции вычислительных систем выросла новая жизнеспособная ветвь — распределенные вычисления.

28 января 1997 года распределенные вычисления сделали очередной шажок — стартовал конкурс RSA Data Security на решение задачи взлома методом простого перебора 56-битного ключа шифрования информации RC5−32/12/7. Благодаря хорошей технической и организационной подготовке проект, организованный некоммерческим сообществом distributed.net, быстро получил широкую известность.

17 мая 1999 года Дэвид Геди и Крейг Кеснов из Лаборатории космических исследований Калифорнийского университета в Беркли запустили распределенный проект поиска сигналов внеземных цивилизаций SETI@home (SETI — Search for Extraterrestrial Intelligence at Home), который до сих пор остается одним из наиболее массовых проектов. Огромной популярности способствовало то, что впервые была переведена на рельсы распределенных вычислений интригующая научная задача, далекая от скучной факторизации или взлома очередного ключа. Заслуга организаторов SETI@home не только в постановке интересной задачи, но и в разработке универсальной платформы BOINC (Berkeley Open Infrastructure for Network Computing) для запуска новых проектов. Сегодня количество проектов на этой платформе уже перевалило за сотню. Клиентская часть BOINC позволяет подключаться к нескольким проектам, вести статистику участия в них и наблюдать за протеканием вычислений. Практически каждый, кто обладает базовыми навыками программирования и у кого найдется достойная поддержки научная идея, может организовать собственный проект распределенных вычислений на основе BOINC. Так сделал, например, физик Константин Метлов из Донецкого физико-технического института (ДонФТИ). Практически в одиночку он запустил проект Magnetism@home по расчету магнитных конфигураций цилиндрических наноэлементов.

Распределенная мощь

Яркий пример того, насколько эффективным может стать вовлечение пользователей персоналок в научные исследования, — проект Folding@home, организованный Виджаем Панде из Стэнфордского университета для моделирования фолдинга (сворачивания) молекул белков человеческого организма. Более 400 000 только постоянно подключенных процессоров «разогнали» проект до 5000 терафлоп. Никакой суперкомпьютер не выдержит конкуренции с распределенной сетью такой производительности, ежедневно увеличивающей вычислительный потенциал за счет новых участников. Даже рекордсмен Roadrunner может похвастаться всего 1105 терафлоп при 129 600 процессорных ядрах.

Знаменитый SETI@home — проект поиска радиосигналов из далекого космоса — располагает только 315 000 активных процессоров с общей скоростью выполнения операций 500 терафлоп. Хотя это и не самые высокие показатели в мире распределенных вычислений, но даже их хватает, чтобы занять почетное третье место в TOP500, оттеснив на четвертую строчку суперкомпьютер NASA — Pleiades (487 терафлоп).

Большинство проектов распределенных вычислений носят некоммерческий характер, хотя некоторые предлагают своим участникам денежное вознаграждение за искомое событие. Например, организаторы GIMPS (Great Internet Mersenne Prime Search) — проекта поиска простых чисел Мерсенна (числа вида 2n-1, где n — натуральное число; на сегодня известно 45 таких чисел, самое большое из которых 243 112 609−1), имеющих большое значение в теории чисел и криптографии, — обещают поделиться наградой в $150 000 за нахождение простого числа, состоящего из 100 млн цифр. Но это скорее исключение, чем правило: большинство организаторов не планируют обогащения за счет использования компьютеров добровольцев и все полученные научные результаты размещают в открытом виде.

Развитие распределенных вычислений продолжается. Под ружье научного прогресса поставлены даже видеокарты и игровые приставки. Видеть в качестве вычислительного ресурса такие устройства непривычно, но на практике они могут дать фору самому мощному компьютеру. К примеру, в проекте Folding@home уже с лета 2006 года используют потенциал 8-ядерных процессоров Cell игровых приставок PlayStation 3, способных выдать примерно 20 гигафлоп, что на порядок больше, чем у обычного офисного компьютера. Благодаря соглашению с компанией Sony программа для моделирования динамики фолдинга белков встроена в приставки изначально, но владелец устройства сам вправе решать — подключаться ему к проекту или нет. Осенью того же года в Folding@home смогли освоить вычислительные возможности графических процессоров видеокарт компании ATI (ныне AMD), а в 2008 году очередь дошла и до видеокарт nVIDIA. Многоядерные графические процессоры оправдали все надежды, показывая феноменальную производительность в 100 гигафлоп. Этот технологический прорыв сделал Folding@home наиболее мощным вычислительным проектом на планете.

На любой вкус

Любой желающий может сегодня помочь науке, приняв участие в одном из проектов распределенных вычислений. Причем, разумеется, перечень наук не ограничивается только математикой, астрономией и биологией. Можно помочь физикам в планировании экспериментов на Большом адронном коллайдере или проектировании Neutrino Factory — будущего ускорителя, способного порождать потоки нейтрино. Широкий выбор у любителей астрономии — от поиска сигналов внеземного разума и обнаружения гравитационных волн с помощью гравитационно-волновых обсерваторий LIGO и GEO 600 до расчета конфигурации поглощения нашей галактикой одного из звездных скоплений созвездия Стрельца, нахождения «оптимальной» космологической модели Вселенной и расчета орбит астероидов, представляющих угрозу для Земли.

В области биологии и медицины запущено множество проектов по изучению структуры белков, новых средств профилактики СПИД, изучения раковых заболеваний и борьбы с вирусами семейства Flaviviridae, ответственными за возникновение вспышек лихорадки Деньге, желтой лихорадки и лихорадки Западного Нила. Химикам могут помочь решение задач квантовой химии методами Монте-Карло и моделирование межатомного взаимодействия в твердых телах.

Математики традиционно используют распределенные вычисления для поиска различных чисел: наименьшего числа Серпинского, простых чисел нескольких видов, простых чисел Вифериха, новых делителей чисел Ферма — или доказательства гипотезы Гольдбаха. Криптографы занимаются проверкой алгоритма шифрования RC5, поиском оптимальных линеек Голомба и дешифровкой последней из нерасшифрованных немецких радиограмм, датируемой 1942 годом. Кибернетики изучают возможность создания глобальной нейронной сети и воссоздают поведение человека на основе компьютерного моделирования лингвистического способа познания мира. А климатологи моделируют различные варианты изменения климата: в рамках проекта ClimatePrediction с 2002 года проверено более 400 000 климатических моделей с общим модельным временем 40 млн лет.

Подробную информацию о проектах можно найти на сайте www.distributed.ru

Статья «» опубликована в журнале «Популярная механика» (№6, Июнь 2009).