Разделяй и вычисляй

GRID-системы наглядно иллюстрируют закон перехода количества в качество.
В 1949 году журнал «Популярная механика» написал, что в будущем компьютеры будут весить не более полутора тонн. Тогда, на заре развития вычислительных устройств, никто и представить себе не мог, какую гигантскую производительность ПК смогут продемонстрировать уже через несколько десятилетий. Всего через двадцать лет развитие компьютеров позволило отправить первого человека на Луну. С тех пор технологии шагнули еще дальше: любой современный смартфон значительно производительнее использовавшегося в конце 60-х годов компьютера Nasa.
Скорость процессоров удваивается в среднем каждые 18 месяцев. Это приводит к тому, что суперкомпьютеры, на которых еще недавно лежала оборона целых государств, сейчас можно сравнивать с калькуляторами. Мир стоит на пороге очередного перехода количества в качество, благодаря которому доступную вычислительную мощность можно будет поднять на недостижимый прежде уровень.
Ключевую роль в новом «квантовом скачке» играет Интернет. Любой пользовательский компьютер, каким бы мощным он ни был, невозможно применять для более или менее серьезных расчетов. Однако с помощью Всемирной паутины даже расположенные в разных концах света ПК можно объединять в сверхмощные вычислительные сети. Такие кластеры называют «распределенными сетями», или GRID (от англ. grid — решетка, сеть).
Муравьи против динозавров
Чтобы лучше представить себе возможности GRID, стоит сравнить их с суперкомпьютерами — самыми мощными на планете, использующимися в основном в научно-исследовательских целях.
На текущий момент первую строчку в рейтинге наиболее производительных компьютеров занимает K computer, быстродействие которого оценивается в 8 Пфлопс (8·1015 флопс — операций с плавающей запятой в секунду). Следующий за ним Tianhe-1A уже значительно медленнее и его скорость — всего 2,5—4,5 Пфлопс. Замыкает первую десятку Roadrunner, производительность которого едва превышает 1 Пфлопс.
Японский K computer попал на первую строчку лишь летом 2011 года, а до этого первое место в рейтинге самых быстрых вычислительных систем безоговорочно занимала сеть распределенных вычислений Boinc, на базе которой работает более 60 проектов. Еще в мае 2010 года Boinc демонстрировала производительность в 5,2 Pflops, то есть вдвое больше, чем у самого мощного суперкомпьютера на тот момент. С запуском K computer системы GRID не утратили своего преимущества, поскольку в те же самые 8 Pflops сейчас оценивают производительность распределенной сети Folding@home.
Пару лет назад казалось, что GRID-системы уже готовы нанести нокаутирующий удар суперкомпьютерам. Пока эти прогнозы не сбылись, однако простая арифметика показывает, что сети распределенных вычислений все же станут доминировать по скорости, просто это произойдет немного позднее, чем ожидалось.
Помимо производительности у GRID есть и другое важное преимущество. Их можно использовать фактически бесплатно, в то время как на постройку мощного компьютера нужно потратить миллионы долларов, но через пару лет он все равно устареет.
Чудеса в решете
Прежде чем мы узнаем, почему будущее серьезных вычислений — за GRID, а не за суперкомпьютерами (которые, впрочем, никуда не исчезнут), стоит подробнее остановиться на том, что же эти сети из себя представляют.
Несколько компьютеров всегда решают распараллеливаемую задачу быстрее. Проблемы возникают тогда, когда задания на них нужно копировать, к примеру, с физического носителя. Если ПК расположены в разных городах, то время, потраченное на дорогу, нивелирует все преимущества от использования нескольких вычислительных блоков. С появлением Интернета эту проблему удалось решить — компьютеры в любой точке планеты могут получать задания для расчетов синхронно.
Современная сеть распределенных вычислений состоит из обычных ПК, на которых пользователи запускают программу (клиент), получающую задания для расчета. Вычисления могут выполняться от нескольких минут до нескольких дней, после чего приложение отправляет полученные результаты обратно. Учитывая, что в некоторых проектах участвуют по нескольку сотен тысяч компьютеров, расчеты происходят очень быстро несмотря на то, что не все ПК доступны 24 часа в сутки.
Расчеты можно делать не только на персональных компьютерах. Для этих целей отлично подходят и игровые консоли. Так, PlayStation 3 с успехом используют в проекте Folding@Home. Долгое время консоль даже опережала по производительности обычные компьютеры, пока разработчики не выпустили оптимизированные клиенты для многоядерных процессоров и графических ускорителей.
Производительность GRID постоянно растет, причем нередко скачкообразно: выпускаются клиенты для неподдерживаемых ранее операционных систем и устройств, оптимизируется код, к проекту подключаются новые пользователи.
Вычислительные мощности для всех, недорого
Распределенные вычисления сегодня применяют практически в любой отрасли науки: астрономии, физике, химии, биологии, медицине, математике и многих других.
В медицине компьютеры чаще всего позволяют лучше понять возможности человеческого организма, помогают в поиске эффективных лекарств. Самый известный проект Folding@home занимается симуляцией сворачивания белков для разработки новых медикаментов против рака, болезни Альцгеймера и других заболеваний. F@H — не единственный проект подобного рода. Ряд крупных организаций и институтов разработали схожие программы для моделирования поведения белков.
Популярным в последнее время стало и предсказание климата. На компьютерах пользователей ищут самые точные модели его описания. Для этого в качестве исходной информации в ПК вносятся корректные данные, скажем, двухсотлетней давности, после чего компьютер тестирует различные модели в поиске тех, которые выдают результат, наиболее близкий к имеющемуся сейчас в действительности.
Физики и астрономы всегда делали много расчетов, и именно им, как никому другому, пригодились новые вычислительные мощности. С помощью GRID ведут поиск гравитационных волн в проекте Einstein@Home, устанавливают структуру Млечного Пути (MilkyWay@Home) и даже ищут сигналы других цивилизаций (SETI@home). Большой адронный коллайдер также производит часть расчетов в GRID. Для основных вычислений у него есть и собственный суперкомпьютер, однако некоторые второстепенные детали все же отправляют для просчета на доступные ПК энтузиастов.
Говорят, что как только изобретение начинают массово применять в коммерческих целях, можно считать, что оно доказало свою жизнеспособность и имеет будущее. В связи с этим следует отметить интересный факт: совсем недавно на инфраструктуре BOINC запущен проект BURP, предназначенный для рендеринга 3D графики, то есть для использования распределенных сетей в решении обычных бытовых задач. Отсюда мы плавно перейдем к тому, что произойдет с GRID в ближайшем будущем.
В будущее вместе
Системы GRID чем-то похожи на пиринговые сети P2P (BitTorrent, eMule). Быстро скачать файл в любой момент можно благодаря тому, что в мире всегда включено определенное количество компьютеров, раздающих этот файл. Вероятно, в будущем с такой же легкостью мы сможем получать доступ не к файлам, а к вычислительным ресурсам других компьютеров. Все, что нужно для этого, — разработать специальную программную платформу, позволяющую применять ПК как ячейку вычислительной системы. В небольших масштабах такие эксперименты уже проводятся. Например, достаточно популярный клиент обмена текстовыми сообщениями Digsby уже несколько лет распространяется со встроенным модулем Digsby Research Module, который во время простоя компьютера использует процессор для различных научных вычислений. Конечно, в будущем было бы лучше, чтобы такие модули встраивались непосредственно в операционную систему или, скажем, в драйвера видеокарты, но при этом оставляли пользователю возможность отключить программу в любой момент.
В ближайшее время можно ожидать серию последовательных скачков производительности GRID-сетей. Благодаря переходу на вычисления с помощью видеокарт сети смогут увеличить быстродействие на порядок, поскольку процессоры графических ускорителей выполняют специфические расчеты намного быстрее центральных процессоров. За следующие пять лет производительность GRID вполне может вырасти в 10 раз и даже более. Для сравнения: быстродействие Folding@home возросло в 7 раз за предыдущие 3,5 года, и темпы роста лишь увеличиваются со временем.
Возможно, стоит ожидать и выпуска GRID-клиентов для мобильных устройств. Современные смартфоны по производительности практически сравнялись с консолями текущего поколения, а именно последние позволили несколько лет назад проекту Folding@home войти в Книгу рекордов Гиннесса как самому быстрому вычислительному кластеру в мире. Смартфоны вполне могут производить расчеты и во время подзарядки, поэтому пользователям не придется беспокоиться об их автономности.
Большинство участников GRID отдает вычислительную мощность своего компьютера бесплатно, понимая, что эти расчеты ведут не к каким-то абстрактным целям, а к вполне конкретным результатам. Исходя из своих интересов любой человек всегда может подобрать подходящий проект: кто-то с детства увлекался астрономией и станет расшифровывать сигналы, полученные из космоса, кто-то захочет помочь в создании лекарств от не излечимых пока болезней, а кого-то заинтересует поиск доказательств математической гипотезы.
Некоторые проекты даже имеют небольшое финансирование, поэтому при достижении определенных результатов выплачивают денежное вознаграждение пользователю, на компьютере которого было найдено решение задачи.
А что у нас?
Подключаясь к проектам GRID, пользователь чаще всего может указать команду или страну, от которой он участвует. Все виртуальные очки, полученные им за успешно просчитанные задания, будут также зачисляться в копилку выбранной страны. По статистике сайта distributed.org.ua, в некоторых проектах Украина занимает очень высокие места, в том числе и первые. В среднем же на платформе Boinc мы находимся сейчас на 41-м месте.