Распределённые сообщества
За последние несколько лет проекты распределённых вычислений приобрели в Интернете значительную популярность, в основном благодаря статьям в СМИ и "народной молве" о таких проектах как SETI@home и distributed.net. Эта статья рассматривает основные причины, побуждающие людей присоединяться к ним, а также сообщества, сформировавшиеся среди участников таких проектов.
Что такое распределённые вычисления?
Идея выполнять сложные расчётные задачи с помощью сразу нескольких процессоров далеко не нова. Кластерные вычисления с использованием архитектур MPI (Message Passing Interface) или PVM (Parallel Virtual Machine) возможны уже много лет. Первый Beowulf-кластер был построен почти 10 лет назад в NASA, после чего этот способ создания недорогих но высокопроизводительных систем начал широко использоваться в области академических исследований. Но хотя Beowulf-кластеры и дешевы настолько, что большинство исследовательских лабораторий могут их себе позволить, они ограничены в размерах доступным пространством, а также предполагают значительные затраты на электроснабжение и охлаждение.
Распределённые вычисления(РВ) обходятся намного дешевле. Исследователям больше не нужно самим покупать компьютеры: вычислительные ресурсы предоставляются пользователями по всему миру. Десять лет назад это было невозможно, однако благодаря быстрому распространению Интернета появляется возможность обьединить огромный обьем вычислительных ресурсов в одну систему, более производительную, чем самый мощный суперкомпьютер в мире. Но с другой стороны, кажется абсурдным, что множество людей по всему миру согласятся бесплатно предоставлять ресурсы своих ПК незнакомым людям. Или нет?
Рост сообщества
Первым проектом распределённых вычислений получившим широкую известность был, вероятно, distributed.net. Проект пытался перебором взломать 56-битный ключ RC5. Первому из участников, кому удастся это сделать был обещан денежный приз. Таким образом, предоставляя неиспользуемое время вашего компьютера у вас был небольшой шанс получить деньги, в случае если пакет с "выигрышным" ключом достанется вам. Для многих, этого оказалось достаточно. Участие в проекте было похоже на лотерею, но вместо того чтобы тратить деньги на билеты, нужно было просто установить на свой компьютер небольшую, работающую в фоне программу.
Хотя победитель получал всего 1000$ - намного меньше чем выигрыш в лотерею - многие участники сильно увлеклись процессом. В надеждах первыми найти ключ, они модернизировали свои ПК, покупали новые или "занимали" их на работе. Чем больше процессорных мощностей удавалось подключить к проекту, тем больше был шанс выиграть. Группы друзей, или коллеги по работе формировали свои команды, надеясь вместе победить в соревновании. Спустя некоторое время, команды обьединяли уже не только лично знающих друг друга людей. Вокруг проекта началось развитие форумов и новостных групп, начали появляться небольшие онлайновые сообщества, где люди могли обсудить проект и получить помощь. Всего в Distributed.net принимало участие более 300000 пользователей - но сегодня, в его текущем этапе по взлому 72-битного шифра участвуют всего около 10000.
Куда делись остальные 290000? Некоторым это просто надоело. Некоторые начали волноваться о проблемах с безопасностью, или замедлении работы игр из-за клиента РВ. Многие перешли в другие распределённые проекты - но уходя, они кое что взяли с собой. Они сохранили дух соревнования и товарищества, сохранили свои сообщества, многие из которых выросли в большие онлайновые группы, со своими собственными сайтами, статистикой и форумами.
Довольно часто эти группы обьединены общими взглядами и принципами, без разделений по географическим или культурным границам. Их можно назвать "распределёнными сообществами". Самые большие из них имеют более 5000 участников: Dutch Power Cows, Ars Technica, Knights who say Ni!, и FreeDC. Некоторые из них, например новостной сайт Ars Technica, существовали и до участия в распределённых вычислениях.
Выбор проекта
Постепенно, все больше и больше людей стали осознавать потенциал распределённых вычислений, и начали создавать свои проекты. Для распределённых вычислений подходила любая задача, которая могла быть сравнительно просто разделена на много небольших подзадач с возможностью независимого решения каждой из них и последующей "сборки" окончательного решения. Такие задачи часто называются "тривиально параллелизуемыми". В качестве примеров можно взять поиск простых чисел, анализ больших обьемов данных, моделирование сворачивания белков, и даже поиск молекул для новых лекарственных средств.
С появлением огромного количества новых проектов у пользователей появилось кое что, чего не было раньше: выбор. Так как любой из проектов обычно занимает все свободные ресурсы процессора, большинство пользователей могут одновременно участвовать только в одном проекте. По сути, проектам РВ приходится одновременно и привлекать новых пользователей в распределённые вычисления, и соревноваться между собой за "ветеранов" РВ.
Каждая группа участников РВ тестировала новые проекты по мере их появления. Если "испытателям" нравился проект, они рассказывали об этом своим товарищам по команде. В некоторых случаях, это сопровождалось массовыми переходами команд из одного проекта в другой. Это приводит нас к вопросу, что именно эти "испытатели" ищут в каждом новом проекте? Что заставляет участников и команды покидать один проект и переходить в другой?
Деньги обычно не являются важной причиной. Ни один из проектов пока не предложил достаточно большого приза, чтобы только этим оправдать участие в нём. Наиболее важные факторы - гораздо проще. Стабильна ли клиентская программа? Нормально ли она работает в фоне, не мешая пользователю и не замедляя другие программы? Хотя у многих сейчас имеются высокоскоростные подключения к Интернету, возможность участвовать в проекте имея только модемное соединение остаётся значительным плюсом. Однако, любая нормально написанная программа обладает этими качествами, так что должно быть что-то ещё. Важными элементом является внимание лидеров проекта к вопросам и пожеланиям участников. Но наиболее мощной, привлекающей участников к проекту силой является его статистика.
Статистика, и ещё раз статистика
Хотя большинство современных проектов РВ больше не предлагают денежных или других вознаграждений, соревновательный дух никуда не изчез. Целью стало удовлетворить свое эго, доказать, что "мой компьютер больше твоего". Обходя в статистике других участников и команды, люди получают ни с чем не сравнимую возможность повысить своё самомнение. Они получают поздравления от участников своей команды, и могут наблюдать разочарование среди участников "вражеской". Можно сказать, они участвуют в гонках на своих компьютерах.
Статистика проекта отражает количество выполненной каждым участником работы, будь то блоки заданий, CPU-время, или что-то ещё. Хотя она и не важна для целей проекта, пользователи придают наличию честной статистики огромное значение. Чтобы достичь более высокого места в рейтингах, некоторые участники постоянно модернизируют медленные компьютеры или даже покупают новые.
К статистике в подкультуре РВ относятся очень серьезно - любой проект с нечестной статистикой наверняка будет проигнорирован. Многие команды даже пишут специальные скрипты, чтобы обрабатывать статистику с официального сайта и отображать её на своих. Это делается для получения более подробной информации, например о прогнозируемых датах обгона одной команды другой, полных рейтингов участников с первого и до последнего места, и так далее.
Большие команды часто начинают свои собственные мини-соревнования. Например, кто наберет больше очков за неделю (каждая из участвующих команд может даже переключить на это время все ресурсы в один проект). Всё это делается для развлечения - победители не получают ничего, кроме права хвастаться своей победой вплоть до следующего матча. Благодаря таким играм со статистикой, распределённые вычисления становятся более интересными для уже участвующих, а также более привлекательными для потенциальных новых пользователей.
А как же наука?
Это, конечно, не значит, что проектами РВ занимаются только из-за статистики. Каждый участник имеет свои собственные причины. Большинство проектов пытается решить какую-то фундаментальную математическую или научную задачу, например найти первые два миллиарда цифр числа Пи, или лекарство от сибирской язвы или рака. Многие люди очень заинтересованы в задаче, решаемой "их" проектом. Для многих, предоставить свободное CPU-время - это единственный шанс помочь в её решении. Такой шанс особенно важен для тех, кто потерял своих близких из-за каких-то болезней, например рака. Эти люди рады любой возможности помочь в исследованиях и найти лекарство от этих болезней. А другим, может просто понравиться клиент-скринсейвер какого-то из проектов. Некоторые же, просто не могут вынести мысли, что их новенький мощный процессор бездействует почти всё время, пока они проверяют e-mail и печатают письма.
Ясно, что распределённые вычисления будут только развиваться, и постепенно именно такие участники будут приносить наибольшую пользу. Пока несколько тысяч человек посвящают проектам РВ своё свободное время, каждый день проверяют статистику и наслаждаются товариществом таких же как они, миллионы людей по всему Интернету даже не слышали о термине "распределённые вычисления", не говоря уж о том чтобы участвовать в каком-то из проектов. Но именно они и есть будущее распределённых вычислений.
В настоящее время использована только малая часть потенциала РВ. Всё больше и больше проектов начнут использовать распределённые вычисления, так что станет важным донести это до как можно более широкого круга людей и призвать их направить свои неиспользуемые ресурсы на помощь проектам с важными целями. Распределённые вычисления ждет яркое будущее, и по мере того как всё больше людей узнают о них, руководителям проектов придется убеждать новых участников присоединиться именно к их проекту, а не к какому-либо другому. Надеюсь что мы сможем помочь пользователям научиться распознавать проекты, заслуживающие времени их компьютера.
Об авторе
Говард Фельдман живет в Торонто, Онтарио, Канада, где он пишет программы для исследования сворачивания протеинов, а также является главным разработчиком в Blueprint Initiative/Mount Sinai Hospital. Занимается разработкой проекта Distributed Folding.
Ссылки
- Используйте ваш компьютер на все 100%! — что такое распределённые вычисления, краткое описание некоторых проектов
- Наиболее популярные проекты РВ — статьи, описания, FAQ и т.д.
Статья "Distributed
Communities", автор - Говард
Фельдман.
Перевод на русский язык - Роман Мамедов. Опубликовано
с разрешения автора. При воспроизведении перевода или его части ссылка на distributed.ru
обязательна.
