Высшая математика
АрхивКомментарий дняОснователи крупнейшей на планете системы распределенных вычислений SETI@Home завершают работу над программной платформой BOINC, которая должна стать второй ступенью в эволюции идей и технологий distributed computing.
Массовые системы распределённых вычислений (distributed computing), насчитывающие в своих рядах миллионы пользователей со всего мира, несмотря на популярность сравнительно молоды: так, SETI@Home, нацеленная на поиски сигналов от внеземных цивилизаций, будучи одной из самых старых и известных систем, существует всего пять лет. Идея, положенная в основу подобных ей проектов всегда одна и та же, неизменно практичная: типичный офисный или домашний компьютерный пользователь редко когда использует более десяти процентов доступного ему машинного времени, а потому грех не задействовать оставшиеся 90%, уходящие впустую. И "лишнее" это время с успехом используют: помимо упомянутого выше SETI@Home, есть ещё добрый десяток известных проектов и, наверное, в десять раз больше таких, что не сумели добиться известности. Folding@Home, Distributed.net, проекты United Devices и многие другие работают за счёт добровольцев, запускающих на своих компьютерах клиентское программное обеспечение - решающее уравнения, составляющее химические формулы, анализирующее сигналы из космоса.
При всём разнообразии целей, сегодняшние системы распределённых вычислений роднит одно общее свойство: организаторы большинства проектов предпочитают решать все задачи организации огромной вычислительной системы "с нуля", своими силами. И в этом, как в чём другом, проявляется незрелость технических решений distributed computing. Как ни странно, но собственно постановка вычислительной задачи требует лишь малой толики усилий по сравнению с той массой, которую необходимо затратить на эффективную координацию работы участников любой системы. Момент этот неочевиден, но попробуйте представить сами, что значит организовать совместный труд почти пяти миллионов энтузиастов (почти столько сегодня клиентов в SETI@Home), участвующих в общем процессе ради удовлетворения самых разных амбиций. Неудивительно, что именно в головах основателей SETI@Home, в Калифорнийском университете Беркли, родилась идея создания универсального инструмента, который облегчил бы решение многих типичных задач, встающих перед организаторами новых систем распределённых вычислений, и сделал бы их производительней. Речь - о программной платформе Berkeley Open Infrastructure for Network Computing (сокращённо BOINC, примерный перевод: открытая инфраструктура для сетевых вычислений), неоднократно упоминавшейся за последний год в том числе и в русскоязычной прессе, но только в последние недели обретшей завершённые формы: вот уже около месяца BOINC проходит открытое бета-тестирование в двух распределённых проектах.
Несколько упрощая, BOINC можно представить в виде универсальной программы-оболочки, в которую легко поместить один или несколько программных клиентов для распределённых вычислений, решающих любые задачи. BOINC не заботит то, какие именно расчёты ведутся, её главная задача - предоставить функциональность, необходимую для эффективной организации вычислительного процесса, а также дать возможность пользователю управлять ходом работ на своём компьютере по собственному желанию. Плюсы такого подхода очевидны. Прежде всего, компьютерный пользователь, загоревшийся идеей участия в каком-либо проекте distributed computing, избавлен от необходимости каждый раз заново разбираться с новым софтом: BOINC всегда одна и та же, для любой платформы и аппаратной конфигурации. Второй плюс заключается в том, что заставить работать под крылом BOINC (исходники которой открыты) можно практически любую из существующих программ-клиентов - для этого нужно лишь особым образом откомпилировать её код. Таким образом есть шанс на использование BOINC многими из организаторов существующих проектов и большинством из тех, кто только готовится к запуску собственной массовой системы распределённых вычислений. Третий плюс - в хорошо проработанных средствах организации общего вычислительного процесса: BOINC сама заботится о шифровании канала связи и проверке аутентичности принимаемых данных (что устраняет главную проблему современных распределённых систем - их потенциальную опасность для компьютерного сообщества при взломе центрального сервера злоумышленниками), проверке качества выполненной работы (каждый блок данных обсчитывается дважды разными участниками, чтобы избежать случайной или умышленной ошибок), равномерном распределении нагрузки на центральные узлы. Наконец, последний плюс - в возможности пользователя запускать в одной оболочке несколько клиентов разных систем, работающих над разными задачами, и следить за их работой, а также самостоятельно распределять между ними ресурсы своей машины.
Попробовать BOINC можно уже сегодня, выкачав тестовую версию этой программы с официального сайта (для Windows, Linux, Mac OS X и Solaris). На данный момент в среду BOINC перенесены клиенты SETI@Home и AstroPulse (поиск испаряющихся чёрных дыр). Возможность переноса своих клиентов рассматривают и несколько организаторов других проектов. Официальный релиз BOINC ожидается весной.