Базовая информация о проекте distributed.net и его целях, предназначенная для информирования новых пользователей.
- Что такое distributed.net?
- Зачем это нужно вам?
- Пять побед, пока что одержанных distributed.net
- Кто стоит за проектом?
- Прошлые и возможные будущие проекты
- Другие источники информации
- При чем тут коровы?
- О партнерстве с United Devices
- Как все начиналось?
- Какого рода задачи подходят для распределенных вычислений?
В качестве группы относительно слабо связанных между собой пользователей компьютеров со всего мира, мы беремся за различные проблемы, запуская проекты, требующие значительных вычислительных ресурсов. Мы осуществляем это за счет использования времени простоя компьютеров наших участников. Вот почему мы называемся "distributed.net" (распределенная сеть). Более официальное название - Distributed Computing Technologies Inc. (DCTI). С дополнительной информацией о DCTI можно ознакомиться в нашем юридическом разделе, с более подробной информацией о наших целях - в описании задач.
Список (ни в коей мере не полный) людей, участвовавших в организации distributed.net, находится здесь.
Вам стоит присоединиться к нам по нескольким причинам.
Во-первых, наша основная цель - исследование возможностей распределенных вычислений. Вместе мы сможем узнать гораздо больше об этом новом увлекательном способе использования компьютеров.
Во-вторых, в случае решения любой из задач, поставленных RSA, мы выиграем $10000! Из них одна или две тысячи уйдут вам, если правильный ключ был найден вашим компьютером, и 6 тысяч - некоммерческой организации, выбранной голосованием среди участников.
Наконец, у нас есть отличная статистика. Чем больше процессорных циклов вы подарите нашим проектам, тем выше будет ваш рейтинг. А вы ведь, конечно, хотите посоревноваться со своими друзьями, не так ли :)
С дополнительной информацией можно ознакомиться в нашей пресс-комнате.
Основанная в 1997, distributed.net выросла в весьма большую сеть, объединяющую пользователей всего мира, большинство из которых просто запускают клиентские программы. Ну а здесь вы можете ознакомиться со списком людей, занимающихся администрированием этой сети, программированием клиентских программ, и другими вещами, необходимыми для функционирования distributed.net.
С дополнительной информацией по нашим прошлым, будущим и текущим проектам, можно ознакомиться здесь.
Основной веб-сайт distributed.net расположен по адресу http://www.distributed.net. Имеет смысл подробно исследовать ту массу полезной информации, что на нем расположена.
Кроме того, мы поддерживаем довольно оживленный IRC-канал в IRC-сети EFNet. Там можно найти многих ответственных людей distributed.net, даже если обсуждение не посвящено одному из текущих проектов или distributed.net. Качество дискуссии обычно довольно неплохое (по меркам IRC-каналов). На канале часто "висит" множество талантливых технарей, у которых всегда можно узнать что-нибудь интересное.
Также мы поддерживаем несколько общедоступных листов рассылки. Подписавшись на любой из этих листов, вы сможете принять участие в дополнительных обсуждениях текущих проектов distributed.net. Архив всех листов доступен в онлайне.
На ранних этапах становления distributed.net Джефф Лоусон (Jeff Lawson) решил, что необходимо ассоциировать с проектом некий легко узнаваемый символ в целях получения поддержки и новых последователей. Поскольку в то время Джефф использовал веб-сервер с именем хоста bovine.st.hmc.edu, термин "bovine" (коровий) очень быстро стал ассоциироваться со всей организацией.
[Примечание переводчика. Похоже, что у отца-основателя было все в порядке и с самоиронией, если он решил вытянуть символ всего проекта из слова, переводящегося также как "глупый, тупой, медлительный" и фигурирующего в устойчивом выражении "bovine stupidity" (глуп как корова).]
В течение все истории distributed.net иконка с радостно улыбающейся коровой обладала наибольшей притягательностью для участников проекта, и попытки сменить ее на что-то другое вызывали панику и бунты среди пользователей. Иконка с коровой быстро возвращалась.
Хотя в прошлом distributed.net планировала связать с каждым новым проектом отдельное животное: "Project Bovine: RC5" (корова), "Project Monarch: DES" (бабочка-монарх), "Project Kangaroo: OGR" (кенгуру), "Project Polarbear: CSC" (белый медведь), многие участники дали понять, что они предпочли бы придание большей значимости добродушной корове. Таким образом, дружелюбная медлительная корова была выбрана официальным талисманом всех проектов distributed.net.
27 ноября 2000 distributed.net и United Devices объявили о начале совместной работы по развитию крупномасштабных распределенных вычислений. Пресс-релизы можно найти по следующим адресам:
http://www.distributed.net/pressroom/news-20001127.html
http://www.ud.com/company/press/press_releases/11272000_2.htm
Нет, две организации по прежнему независимы, но они обе поддерживают единую цель развития распределенных вычислений. Существует ряд взаимосвязанных аспектов распределенных вычислений, которые фигурируют как в коммерческих, так и в некоммерческих задачах, так что мы надеемся, что с помощью объединения ресурсов мы улучшим работу везде.
distributed.net уже получила от United Devices новый двух процессорный сервер Xeon Dell, предназначенный для
замены сервера статистики.
Первоначальные попытки выиграть конкурс RC5-56 были начаты в New Media Laboratories. Из-за ряда внутренних причин New Media предпочли прекратить свое участие в работе по дешифровке. Во время хаоса, возникшего после таинственного исчезновения сервера New Media, студент колледжа Harvey Mudd Джефф Лоусон (Jeff Lawson aka Bovine) написал Bovine Proxy Keyserver. Целью этой программы было сохранение рассчитанных ключей до тех пор, пока сервер New Media не возобновит работу - чтобы спокойно продолжить проект. Однако, после того как стало ясно, что New Media не собирается возвращаться в проект, Key Server был переписан так, чтобы служить главным координатором, полностью контролирующим процесс генерации ключей и принявшим на себя полный контроль над проектом. Дальнейшее, как говорится, история.
В то время как свежесозданный проект Bovine стал набирать участников и, следовательно, вычислительные ресурсы, нам пришло в голову, что подобный большой распределенный компьютер может быть использован для решения ряда интересных задач, не связанных с RC5 или даже с шифрованием в целом. В ноябре 1997 года distributed.net была официально зарегистрирована в качестве некоммерческой организации (Distributed Computing Technologies, Inc.), при этом мы держали в голове эту новую долгосрочную цель. В целях поддержки этой новой цели стал проектироваться новый класс клиента общего назначения. Будущие клиенты должны были стать модульными и поддерживать любое количество различных вычислительных ядер, предназначенных для решения различных задач. Завершение этих клиентов должно было сделать возможным одновременное участие distributed.net в различных распределенных вычислительных проектах.
Распределенные вычисления могут быть использованы во множестве ситуаций, требующих большого количества расчетов, но существует ряд факторов, которые могут ограничить их эффективность. Практически любую вычислительную задачу можно распараллелить, но если накладные расходы (в терминах времени и/или сетевого трафика) на распараллеливание окажутся слишком велики, может оказаться быстрее использовать вместо этого вычисления на отдельной машине. В целом, задачей распределенных вычислений является минимизация общего времени, требуемого для решения задачи, от начала до конца.
Одним из самых важных факторов является низкий уровень соотношения "данные/вычисления" для данной задачи. Это соотношение отражает количество информации, которая должна быть передана/получена каждой машине от сервера в сравнении с объемом вычислений, которые осуществляются на каждой машине. В случае задач, требующих передачи большого количества данных, необходимых для вычислений, может оказаться, что большая часть времени уходит просто на доставку информации для расчета, а не на сам расчет. Во всех проектах, выбранных distributed.net, достаточно передать несколько сотен байт информации для нескольких часов расчета.
Другой фактор, отчасти связынный с предыдущим, - как много "межузлового взаимодействия" требуется для решения задачи. Некоторые задачи требуют, чтобы машины периодически синхронизировались, обменивались информацией с другими машинами, решающими эту же задачу. В зависимости от реализации, это взаимодействие может осуществляться как напрямую, так и с использованием центрального сервера.
Задачи, не требующие никакой координации или синхронизации между машинами, и не требующими дополнительного управления в процессе работы, обычно называются "неудобно параллельными". Этот тип задач очень подходит для больших распределенных вычислительных систем, поскольку отдельные фрагменты задачи могут быть выполняться в любом порядке, и могут быть перераспределены по другим машинам, если какой-либо из результатов не удалось получить с первого раза. В зависимости от типа проводимых вычислений, возможно, нет необходимости просчитывать все "рабочие единицы", если был получен некий "ключевой" результат, или было достигнуто некое пороговое значение. Все проекты distributed.net, как правило, попадают в эту категорию.compute-split-merge.png (19.4 K)
Такие программные библиотеки как MPI (Message Passing Interface), PVM (Parallel Virtual Machine), BSPlib (Bulk Synchronous Parallel library) обычно используются в научных вычислениях, которые требуют значительного количества аккуратных взаимодействий и межмашинных синхронизаций. Эти библиотеки обычно применимы только в кластерных системах, поскольку они требуют высокой скорости сетевых взаимодействий из-за большого объема практически непрекращающегося сетевого трафика. Тот факт, что сетевые взаимодействия осуществляются между всеми машинами, задействованными в вычислениях, также означет запрет на использование межсетевых экранов или других средств ограничения сетевых потоков. Также это обычно означает, что абсолютно все машины должны быть доступны от начала до конца решения задачи. В силу этих ограничений, задачи, требующие использования этих библиотек (или, другими словами, требующие высокой степени связности), обычно не очень подходят для крупномасштабных распределенных вычислительных систем, использующих Internet. compute-cluster.png (15.2 K)
В случае многопроходных схем, использующих серверную координацию, все промежуточные результаты собираются центральным сервером, который осуществляет согласование данных и при необходимости их повторное распределение по машинам. Задачи, основынные на этом подходе, по-прежнему должны имет низкое соотношение данные/вычисления, поскольку затраты времени на взаимодействие с сервером и передачу очередного фрагмента работы могут оказаться весьма значительными. compute-multi-split.png (33.7 K)
В публичных Internet-проектах, таких как distributed.net, основная вычислительная работа осуществляется машинами, которыми владеют добровольные участники проекта. Следовательно, чтобы люди захотели установить вашего клиента на свои компьютеры, ваша задача должна обладать определенной привлекательностью, которая побудит людей преподнести свои вычилительные мощности в дар решаемой задаче. Высокую привлекательностью обладают проекты, потенциально направленные на общее благо (например, направленные на достижение более высокого уровня безопасности информации, поиск лекарства от рака и других болезней и т.п.). Проекты, обладающие технической привлекательностью, также могут быть популярными среди определенных групп людей, хотя к ним бывает и сложно привлечь всеобщий интерес (такие как поиск больших простых чисел, выявление математических загадок и т.п.).
Некоторые люди готовы позволить использовать свои машины в любых целях в случае возможной значительной компенсации (некоторые группы людей даже готовы разрешить использование своих машин в коммерческих целях, не имеющих ничего общего с их личными или общественными интересами, если они получают каким-то образом персональную компенсацию). Иногда таковой компенсацией является непосредственная оплата каждой единицы использованного времени, иногда речь идет о значительно большей компенсации, распределение которой производится в лотерейном виде.
Наконец, многих людей привлекает соревновательная сторона, которая реализуется с помощью статистики и ранжирования участников в зависимости от затраченных вычислительных ресурсов. Этим людям нравится "видеть себя в лучах прожекторов", особенно если их ранг выше, чем у кого-то еще.
|
|