Вы находитесь здесь: distributed.ru » Общий FAQ по распределённым вычислениям
Общий FAQ по распределённым вычислениям
Что это?
Q: Что такое распределённые вычисления?
Распределённые вычисления — это способ выполнения каких-либо сложных расчётов путём их разделения между множеством компьютеров. Подробнее о распределённых вычислениях, а также о том, какие бывают проекты можно почитать вот здесь.
А не считаем ли мы бомбу?
Q: Где гарантии, что клиентская программа рассчитывает именно то, что написано, а не занимается воровством паролей, рассылкой спама, разработкой оружия и т.п.?
Таких «гарантий» существует два вида:
- Доступность исходного кода программ, используемых в проекте. К сожалению, в большинстве проектов исходные коды клиентского и прочего ПО широкой публике не доступны;
- Доверие его авторам и организаторам. Как правило, популярные проекты создаются и поддерживаются весьма серьёзными и уважаемыми организациями (например, университетом Беркли, Стэнфордским и Оксфордским университетами, европейской лабораторией CERN, компанией IBM, и т.д.), которые вряд ли будут рисковать своей репутацией, заставляя участников поддерживаемого ими проекта высчитывать что-нибудь «не то», либо заниматься воровством паролей и рассылкой спама;
Тормозов не добавится?
Q: Не будет ли клиентская программа тормозить мой компьютер?
Клиентские программы всех современных проектов распределённых вычислений умеют корректно выставлять свой приоритет в самый низкий из существующих в операционной системе, а значит - работать они будут только в моменты, когда процессорное время ни одной другой программе не нужно. Причём, бездействие не обязано быть полным: например, проигрывание музыки (скажем, в WinAmp'е) на современных компьютерах занимает не более 5% процессора. Оставшиеся неиспользуемыми 95% операционная система вполне может выделить запущенной программе распределённых вычислений. WinAmp при этом тормозить, конечно же, не будет. К тому же (на крайний случай) в клиентских программах многих проектов можно выставить параметр, разрешающий использование компьютера для РВ только тогда, когда компьютер не используется владельцем (при подобной настройке, расчёты могут начинаться, к примеру, одновременно с запуском скринсейвера).
Стоит отметить вот какой момент. Если в вашем компьютере мало оперативной памяти (512 мегабайт и менее), некоторые из клиентских программ (наиболее «прожорливые» по части ОЗУ) могут занять заметную её часть, и таким образом другую работу на компьютере действительно, заметно притормозить. Поэтому, если памяти мало, стоит специально изучать вопрос по требовательности к ней каждого отдельного проекта, и участвовать только в тех, которые больших требований к её объёму не выдвигают.
Время? Трафик? Ограничения?
Q: Сколько все это отнимет у меня времени и трафика? Что мне придется делать?
Q: Есть ли какие-нибудь ограничения? (по производительности компьютера, времени его работы, скорости доступа в Интернет и т.п.)?
Всё зависит от конкретного проекта.
Многие проекты, занимающиеся решением математических задач, предъявляют минимально-возможные требования к ресурсам. Такие проекты могут принимать/передавать всего несколько килобайт данных в день, и во время работы занимать считанные единицы мегабайт памяти.
С другой стороны, проекты связанные с биоинформатикой (разработка лекарственных средств, изучение белков и т.п.), зачастую требуют значительных затрат трафика для получения с сервера проекта исходных данных для обработки.
Ограничения на минимальную производительность компьютера (и время его работы) предъявляются далеко не всеми проектами. Там, где они есть, они реализованы в виде сроков, за которые нужно обработать выданные задания и вернуть на сервер результаты.
Результаты есть?
Q: Какие-нибудь реальные результаты уже получены?
Да. См., к примеру, описание проекта Folding@home.
Чьи они?
Q: Кому будут принадлежать результаты?
Проекты публичных распределённых вычислений обычно предусматривают ту или иную форму публикации результатов для всеобщего доступа.
На всякий случай, уточняйте условия использования результатов перед началом участия в каждом конкретном проекте.
Зачем?
Q: Ага найдем лекарство, посчитаем геном, встретим пришельцев, а все это окажется никому не нужным или будет стоить уйму денег, зачем тогда считать?
Лучше какое-то лекарство, чем никакого. Лучше какие-то пришельцы, чем никаких. Деньги - дело наживное. И вообще, мы же в конце концов все умрём - зачем тогда жить? :))
Ради чего, кроме науки?
Q: Почему столько людей считают научно-бесполезные проекты, например RC5?
В основном из-за статистики, из-за желания увидеть своё имя повыше в рейтинге таких же «считающих». Ну или по привычке - с тех времён, когда ничего «полезного» не было в принципе, и «загрузить свой компьютер на 100%» можно было только тупым взломом какого-нибудь зашифрованного сообщения. Кроме того, «бесполезные» проекты, и самый известный из них - distributed.net RC5, как правило весьма неприхотливы в плане потребляемого трафика, а также имеют лёгкого в установке и настройке клиента (см. тот же самый d-net).
См. также статью Распределённые сообщества.
Поддерживать буржуев?
Q: Зачем вообще считать для буржуев?
Во-первых, не надо «считать для буржуев»! Надо считать для всего человечества, то есть выбирать для присоединения только такие проекты, результаты которых находятся в свободном доступе, и могут быть использованы всеми желающими, в том числе и российскими учёными.
Во-вторых, если подумать - что по-вашему лучше:
- отсутствие лекарства от СПИДа, рака или каких-то других тяжёлых болезней вообще, в принципе,
- или существование лекарства, но только «у буржуев», либо за большие деньги?
Подозреваю, что все больные соответствующим заболеванием, даже в России, и даже небогатые, всё равно предпочли бы второй вариант.
Не говоря уж о том, что если найденное вашим компьютером лекарство спасёт чью-то жизнь - так ли уж важно будет, окажется это жизнь американца, англичанина или русского?
Может лучше наших?
Q: Как обстоит дело с российскими проектами?
Некоторое время назад существовал проект MD@home, занимавшийся изучением особенностей поведения фрагментов белковых цепочек (олигопептидов). Проект проводился российскими учёными (а точнее, одним человеком - Константином Леонтьевым) из университета МГУ. Закончился 15 августа 2003-го года, при невыясненных обстоятельствах: руководитель проекта пропал с форумов, перестал отвечать на почту, а любые попытки что-то выяснить через близких к МГУ людей ни к чему не привели. Через некоторое время закончилась регистрация домена md-at-home.ru, и доступ к сайту проекта прекратился. Домен и сайт были (без всяких комментариев в новостях) на короткое время восстановлены неким Владимиром Матросовым, но на данное время сайт проекта вновь недоступен. Хронология завершения MD@home чуть подробнее описана вот здесь. Все подробности о запуске, работе и окончании этого проекта можно узнать из обсуждений на его официальном форуме.
Кроме того, отчасти российским наверное можно считать международный проект Fermat Search: хотя проводится он учёными из разных стран, россиян среди них довольно много (в их числе и руководитель проекта Леонид Дурман).
Основанная выпускниками МГУ им. М.В.Ломоносова компания Shoft планирует предоставлять имеющиеся у участников её распределённого проекта Shoft@home вычислительные мощности коммерческим арендаторам, и выплачивать владельцам этих мощностей полученную от заказчиков вычислений компенсацию. Бета-тестирование проекта Shoft@home проходило с июля-2005 по конец года.
Проект Magnetism@home (BOINC) ведёт Константин Л. Метлов из Донецкого физико-технического института НАН Украины (ДонФТИ НАНУ). В настоящий момент (окт. 2008) проект находится в стадии закрытого бета-тестирования (server status).