Журнал "Компьютерра" №724
Шрифт:
Приветствуются и другие идеи, способные принести пользу всему человечеству и уже воплощенные в программных кодах. В благодарность за помощь исследователи должны будут опубликовать полученные результаты, которые станут общественным достоянием. Мы попытались разобраться, зачем IBM понадобились российские ученые и зачем российским ученым нужна IBM.
Читатели "Компьютерры" знают, что идея добровольных распределенных вычислений завоевала популярность еще на рубеже тысячелетий. К тому времени сети разрослись, а компьютеры стали достаточно многочисленными и мощными, чтобы большую часть времени бесполезно простаивать. Но они еще оставались для многих дорогой диковиной, простой которой казался расточительством. Сегодня ведь никому не приходит в голову все время что.то кипятить или гладить на том основании, что в хозяйстве имеется электрический
Популярности глобальных расчетов среди ученых весьма способствовала опубликованная на условиях open source программная платформа BOINC. Она была разработана в Беркли для одного из первых (и поныне крупнейшего по числу участников) проектов распределенных вычислений SETI@home. Фактически BOINC стала стандартом и используется сегодня более чем в половине из сотни работающих глобальных расчетных сетей. Они охватывают самые разные темы - от шахмат и теории чисел до моделирования климата и борьбы с различными болезнями. Так что если вы загоритесь идеей загрузить свой компьютер работой на благо всего человечества - выбирать есть из чего.
Организовать свои собственные распределенные расчеты масштабом от нескольких ПК друзей до всей глобальной сети сегодня не так уж сложно. Например, канадская фирма Intelligence Realm, состоящая всего-навсего из двух человек, замахнулась на создание всемирного искусственного интеллекта путем реинжиниринга работы мозга. Вряд ли это легче, чем поймать сообщения от инопланетян, но экзотическая идея уже нашла поддержку у нескольких десятков волонтеров из шестнадцати стран. В чем же тогда смысл предложения IBM, если для организации "глобального проекта" достаточно лишь настроить свой сервер под Linux?
С одной стороны, расчеты в большой сети волонтеров, такой как World Community Grid, заметно осложняют работу научной группы. Нужно создать код, который бы функционировал на разных компьютерах под разными операционными системами и удовлетворял еще целому ряду неприятных ограничений. Это заметно хлопотнее, чем затеять "доморощенный" проект или просто погонять свою задачу на кластере/суперкомпьютере (если на них, конечно, есть деньги).
С другой стороны, если уж связываться с весьма специфической и не слишком удобной grid.технологией, то опора на World Community Grid сулит ученым ряд преимуществ. Главные проблемы при запуске очередного проекта - это поиск волонтеров и невозможность предвидеть популярность идеи, а с нею и время, требующееся на исследования. К тому же, устанавливая у себя безвестного клиента, волонтер неизбежно рискует подцепить вирус или обрушить свою систему кривым софтом, так что у заштатного университета или фирмы мало шансов собрать большую команду.
Совсем другое дело - World Community Grid. В сети зарегистрировано 356 тысяч добровольцев (треть из них уже работает с BOINC, см. врезку) и 882 тысячи компьютеров, мощности которых сегодня делятся между пятью [Кроме этих пяти, четыре задачи уже благополучно завершены, а еще две тестируются и ожидают своей очереди] одновременно выполняемыми проектами (кстати, все пять по доступным вычислительным ресурсам входят в первую десятку мировых волонтерских сетей). WCG продолжает расти благодаря рекламной кампании в прессе и партнерским соглашениям с фирмами, поощряющими своих сотрудников подключать к сети офисные компьютеры.
Самодеятельность здесь может не приветствоваться, поскольку за дополнительный расход электроэнергии и сетевой трафик платит босс.
Кстати, излишний расход электроэнергии из-за неэффективности вычислений - главное зло, в котором упрекают grid.технологии. Например, почти два миллиона компьютеров, участвующих в проекте SETI@home, заметно проигрывают в суммарной производительности крупнейшему из суперкомпьютеров BlueGene/L, у которого всего около ста тысяч двухъядерных процессоров PowerPC 440.
По данным BOINC, незанятый компьютер волонтера в среднем потребляет 100 ватт, а во время расчетов 150 ватт. Так вот, стоимость "дополнительной" электроэнергии, потраченной на расчеты в сети SETI@home, уже превысила миллиард долларов! Чтобы выработать столько энергии, нужно сжечь около четырех миллионов
тонн угля. А это значит, что за энтузиазм волонтеров приходится платить всем, мирясь с дополнительными вредными выбросами в атмосферу. Достоверность этих оценок, разумеется, небесспорна, но если уж печься о благе человечества, то устаревшие ПК лучше не подключать к сети. Они потребляют примерно столько же, а считают заметно медленнее современных офисных компьютеров.К сожалению, коммерческих компаний, желающих хоть немного заплатить за фоновые расчеты на наших компьютерах, что.то не видно. А шансы на успех и научная ценность многих известных проектов очень сомнительны. Зачастую неясно, чего же там больше, науки или пиара. Господь бог ленив, и в естественных науках необходимость большого объема вычислений чаще всего свидетельствует лишь о неудачно поставленной задаче. Хотя, конечно, есть много проблем, для которых кроме тупого счета ничего лучше пока не придумали [У волонтерских grid-сетей много недостатков, но есть одно любопытное преимущество. Пока работает закон Мура, с их помощью можно считать некоторые NP-трудные задачи, которые теоретически по зубам только квантовым компьютерам. Объем расчетов для получения следующего решения в таких задачах растет по экспоненте, но с той же скоростью растет и производительность компьютеров добровольцев. То есть очередной результат мы будем получать более-менее регулярно], а потому инициативу IBM можно только приветствовать. Вдруг российским ученым удастся сосчитать что.то на самом деле полезное. Тем более что дымить при этом будут трубы в основном американских электростанций.
World Community Grid была создана в ноябре 2004 года специально для выполнения различных глобальных гуманитарных инициатив. Сперва система работала на коммерческом программном пакете Grid MP и только с Windows, но в 2005 году к ней была добавлена платформа BOINC, которая постепенно должна полностью вытеснить Grid MP. Сейчас в сети могут работать компьютеры с Windows, Linux, Mac OC X и FreeBSD.
ункционирует World Community Grid по технологии клиент сервер примерно так же, как и другие сети. Вычислительная задача делится на множество параллельно выполняемых заданий, которые серверы рассылают на компьютеры добровольцев. Из соображений безопасности волонтеры обмениваются данными только с серверами, но не друг с другом. Задачу стараются разбить так, чтобы одна порция считалась приблизительно десять часов и требовала передачи по сети не более одного мегабайта исходных данных оконечному компьютеру и такого же объема результатов обратно на сервер. Если расчеты короче, а данных нужно передавать значительно больше, то проще все сосчитать прямо на сервере.
Задача считается на компьютере волонтера с минимальным приоритетом, загружая процессор не более чем на 60%, чтобы избежать "тормозов" или случайного перегрева забитой пылью машины. Благодаря контрольным точкам в расчетах, ПК можно выключать, но если десятичасовое задание не просчиталось за неделю, оно отменяется. Поскольку надежность удаленных расчетов невелика, серверы рассылают одно и то же задание сразу нескольким компьютерам, а затем сравнивают результаты. Впрочем, дублирования можно избежать, если заказчики конкретного проекта смогут предложить приемлемую процедуру верификации результатов.
Минимальные требования к компьютеру добровольца могут меняться от проекта к проекту. Обычно требуется процессор от 200–500 мегагерц, 128–512 мегабайт оперативной памяти и до 10 гигабайт на жестком диске.
Хотя код клиента открыт, код самого научного приложения является закрытым, а данные шифруются. Волонтер может выбирать, в каких расчетах участвовать, и наблюдать за их ходом, но никогда не знает, что конкретно у него считается. Это существенно повышает безопасность системы.
Ученые, идеи которых получают одобрение Экспертного совета WCG, должны предоставить IBM хорошо отлаженный код желательно на языке С/С++ (хотя, например, запущенные прошлым летом программы Кейптаунского университета по моделированию африканского климата African Climate@Home были написаны на Фортране). Программисты WCG помогут правильно разделить задачу на задания, тщательно проверят код на стабильность и отсутствие вирусов, добавят сетевую обвязку, контрольные точки и другие необходимые причиндалы. Когда расчеты завершатся, ученые обязаны примерно за год проанализировать и опубликовать полученные результаты.