IBM ищет работу
АрхивИз журнала "Компьютерра"В московском офисе IBM собрали ученых самых разных специальностей: компания "ищет проект из России, который мог бы быть реализован с использованием grid-технологий".
В московском офисе IBM недавно собрали ученых самых разных специальностей, чтобы сообщить: компания "ищет исследовательский проект из России, который мог бы быть реализован с использованием grid-технологий на благо человечества".
Корпорация готова предоставить ученым вычислительные ресурсы своей системы глобальных распределенных вычислений World Community Grid. В качестве темы подойдет изучение различных проблем окружающей среды - моделирование изменений климата, прогнозирование природных катастроф, анализ процессов загрязнения природы и т. д. Приветствуются и другие идеи, способные принести пользу всему человечеству и уже воплощенные в программных кодах. В благодарность за помощь исследователи должны будут опубликовать полученные результаты, которые станут общественным достоянием. Мы попытались разобраться, зачем 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, уже превысила миллиард долларов! Чтобы выработать столько энергии, нужно сжечь около четырех миллионов тонн угля. А это значит, что за энтузиазм волонтеров приходится платить всем, мирясь с дополнительными вредными выбросами в атмосферу. Достоверность этих оценок, разумеется, небесспорна, но если уж печься о благе человечества, то устаревшие ПК лучше не подключать к сети. Они потребляют примерно столько же, а считают заметно медленнее современных офисных компьютеров.
К сожалению, коммерческих компаний, желающих хоть немного заплатить за фоновые расчеты на наших компьютерах, что-то не видно. А шансы на успех и научная ценность многих известных проектов очень сомнительны. Зачастую неясно, чего же там больше, науки или пиара. Господь бог ленив, и в естественных науках необходимость большого объема вычислений чаще всего свидетельствует лишь о неудачно поставленной задаче. Хотя, конечно, есть много проблем, для которых кроме тупого счета ничего лучше пока не придумали, а потому инициативу IBM можно только приветствовать. Вдруг российским ученым удастся сосчитать что-то на самом деле полезное. Тем более что дымить при этом будут трубы в основном американских электростанций.
Как работает WCG
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 были написаны на Фортране). Программисты WCG помогут правильно разделить задачу на задания, тщательно проверят код на стабильность и отсутствие вирусов, добавят сетевую обвязку, контрольные точки и другие необходимые причиндалы. Когда расчеты завершатся, ученые обязаны примерно за год проанализировать и опубликовать полученные результаты.
В отличие от других сетевых проектов, большинство из которых представляет в лучшем случае лишь чисто академический интерес, усилия WCG сосредоточены на задачах, способных принести человечеству реальную пользу. Они посвящены исследованию пространственной структуры белков, борьбе со СПИДом, раком, тропической лихорадкой и другими болезнями.