Журнал "Компьютерра" №724
Шрифт:
Популярности глобальных расчетов среди ученых весьма способствовала опубликованная на условиях open source программная платформа BOINC. Она была разработана в Беркли для одного из первых (и поныне крупнейшего по числу участников) проектов распределенных вычислений SETI@home. Фактически BOINC стала стандартом и используется сегодня более чем в половине из сотни работающих глобальных расчетных сетей. Они охватывают самые разные темы - от шахмат и теории чисел до моделирования климата и борьбы с различными болезнями. Так что если вы загоритесь идеей загрузить свой компьютер работой на благо всего человечества - выбирать есть из чего.
Организовать свои собственные распределенные расчеты масштабом от нескольких ПК друзей до всей глобальной
С одной стороны, расчеты в большой сети волонтеров, такой как 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, уже превысила миллиард долларов! Чтобы выработать столько энергии, нужно сжечь около четырех миллионов тонн угля. А это значит, что за энтузиазм волонтеров приходится платить всем, мирясь с дополнительными вредными выбросами в атмосферу. Достоверность этих оценок, разумеется, небесспорна, но если уж печься о благе человечества, то устаревшие ПК лучше не подключать к сети. Они потребляют примерно столько же, а считают заметно медленнее современных офисных компьютеров.
К сожалению, коммерческих компаний, желающих хоть немного заплатить за фоновые расчеты на наших
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 помогут правильно разделить задачу на задания, тщательно проверят код на стабильность и отсутствие вирусов, добавят сетевую обвязку, контрольные точки и другие необходимые причиндалы. Когда расчеты завершатся, ученые обязаны примерно за год проанализировать и опубликовать полученные результаты.