Все программы на сайте

Новости it-индустрии Новости железа Полезные советы новичкам



Распределенные вычисления«Раз, два, три, четыре. Сосчитаем дыры в сыре. Если в сыре много дыр, значит, вкусным будет сыр» -эта считалочка, как и наши простые детские подсчеты, осталась в прошлом. Теперь считают компьютеры, причем, считают много и без устали. С помощью Интернета и специального программного обеспечения такого как Victoria HDD
Источник: https://victoria-hdd.ru/ о котором можно почитать тут https://victoria-hdd.ru любой желающий может попробовать поучаствовать в решении ранее невыполнимых задач. Например, узнать, какая погода ожидает нас через 50 лет, или внести свой вклад в решение проблем научного характера - таких как поиск лекарств от ряда болезней. А еще можно объединиться в команду с коллегами и заниматься простыми, но в то же время не менее полезными задачами. Пятнадцать лет назад подобные действия были из области фантастики, но благодаря быстрому развитию Интернета сегодня появилась возможность объединить огромный ресурс в одну систему, более мощную, чем какой-либо суперкомпьютер в мире. Самую сложную задачу можно теперь «распараллелить» и тем самым ускорить процесс ее решения с помощью распределенных вычислений.

Что это такое

Распределенные вычисления -это технология, предназначенная для решения сложных вычислительных задач при использовании мощности множества обыкновенных персональных компьютеров, находящихся в совершенно разных точках планеты. Это часто использующийся в современной науке способ справиться с нехваткой компьютерных мощностей: вычисления, которые необходимо провести, «распараллеливаются», разделяются на множество отдельных подзадач, которые распределяются между объединенными в сеть обычными компьютерами. Во многих проектах это компьютеры пользователей Интернета, добровольно предоставляющих для вычислений часть своего машинного времени.

Впервые задача совместного использования свободных вычислительных ресурсов компьютеров была оригинальным образом решена в начале 1970-х гг. учеными из исследовательского центра PARC (Xerox, Palo Alto), занимавшимися разработкой программ для первых компьютерных сетей. В 1973 г. Джон Шох и Жон Хапп написали простую программу, которая запускалась по ночам в локальную сеть PARC, расползалась по работающим компьютерам и заставляла их выполнять вычисления.

Следующий скачок в техническом решении проблемы совместной работы многих компьютеров над единой задачей произошел к концу 1980-х гг., когда только появились персональные компьютеры и электронная почта. В 1988 г. Арьен Ленстра и Марк Менес, работавшие на компанию DEC (Palo Alto), написали программу для факторизации (разбиения на множители) длинных чисел. Для быстрого завершения поставленной задачи программа могла запускаться на нескольких не связанных друг с другом машинах, каждая из которых занималась обработкой своего небольшого фрагмента числа. До широких масс технология распределенных вычислений добралась во второй половине 90-х с появлением Интернета.

Началось, конечно, с любимых программистских задач шифрования и дешифрования, при решении которых необходим перебор большого числа вариантов. Первым техническим воплощением технологии распределенного вычисления Grid Computing, по-видимому, является кластер, созданный под руководством Томаса Стерлинга и Дона Бекера в научно-космическом центре NASA, Goddard Space Flight Center, летом 1994 года. Названный в честь героя скандинавской саги, кластер состоял из 16 компьютеров на базе процессоров 486DX4 с тактовой частотой 100 MHz. Каждый узел имел 16 Mb оперативной памяти. Связь узлов обеспечивалась тремя параллельно работавшими 10 Mbit/s сетевыми адаптерами. Кластер функционировал под управлением операционной системы Linux, использовал GNU-компилятор, поддерживал параллельные программы на основе MPI. Процессоры узлов кластера были слишком быстрыми по сравнению с пропускной способностью обычной сети Ethernet, поэтому для балансировки системы Дон Бекер переписал драйверы Ethernet под Linux для создания дублированных каналов и распределения сетевого трафика.

Идея «собери суперкомпьютер своими руками» быстро пришлась по вкусу академическому сообществу. Использование типовых компонентов, как аппаратных, так и программных, вело к значительному уменьшению стоимости разработки и внедрения системы. Вместе с тем, производительность получающегося вычислительного комплекса была вполне достаточной для решения существенного количества задач, требовавших большого объема вычислений. Системы класса «кластер Beowulf» стали появляться по всему миру.

Какими они бывают

Сегодня существует два направления распределенных вычислений - Distributed Computing и Grid Computing.

Задачи, которые решаются с помощью Grid Computing, требуют активного межмашинного взаимодействия и синхронизации, реализуемых с помощью специальных библиотек MPI, PVM, BSPlib и др. Эти библиотеки обычно применимы только в кластерных системах, поскольку требуют высокой скорости сетевых взаимодействий и, соответственно, большого объема непрерывного сетевого трафика. Это означает, что все машины должны быть доступны с начала и до конца решения задачи. Поэтому организованная по такому принципу вычислительная сеть возможна чаще всего в пределах некоторой замкнутой организации. Такие ограничения обычно не подходят для крупномасштабных распределенных проектов.

Вычислительные задачи, которые не требуют никакой синхронизации между машинами и не нуждаются в дополнительном управлении в процессе выполнения работы, чаще всего решаются с помощью технологии Distributed Computing. Этот тип задач очень подходит для массивных Internet-проектов распределенных вычислений, реализуемых посредством связки «сервер - компьютер участника». Дело в том, что отдельные фрагменты задачи могут выполняться в любом порядке и могут быть перераспределены по другим персональным компьютерам, если какой-нибудь из результатов не удалось получить с первого раза. Отсюда, кстати, следует избыточность вычислений, когда один и тот же блок задания рассылается нескольким участникам. Это необходимо, чтобы гарантировать получение результатов вычисления отдельного блока, что не всегда возможно, учитывая участников и установленное на их компьютерах программное обеспечение.

Участие в проекте распределенных вычислений выглядит примерно таким образом: пользователь, он же участник, скачивает специальное программное обеспечение - клиентскую часть для своей операционной системы, после чего производятся определенные настройки и программу запускают в фоне. Клиент периодически связывается с сервером проекта, запрашивая у него данные для обработки, и пересылает результаты. Получается, что компьютер постоянно находится в рабочем состоянии и не простаивает, в то время как клиент работает в фоновом режиме и не мешает основной работе. Что касается оперативной памяти, некоторые из клиентских программ могут занимать ее значительную часть, и в результате работа на компьютере действительно заметно притормаживает. В этом случае нужно смотреть требования к проектам и участвовать в тех, которые не требуют больших объемов оперативной памяти. Множество проектов занимаются задачами математического характера, предъявляя минимальные требования к ресурсам и занимая минимум оперативной памяти. Что касается интернет-трафика, то такие проекты принимают/передают буквально несколько килобайт данных в сутки.

Об участниках, проектах и о том, как можно на этом заработать

Кто же они - участники проектов распределенных вычислений? Каким образом они привлекаются в проекты? Прежде всего, это, конечно же, всевозможная реклама. Большое количество участников увлекаются описаниями поставленных задач - к примеру, поиском лекарств, спасающих человечество, или участием в решении других глобальных задач в области естественных наук. Многие проекты устраивают нечто похожее на соревнования. Стимулом является возможность показать свои результаты перед другими -причем как личные, так и коллективные. Ведутся рейтинги статистики проекта, образуется целая сеть из участников проекта. Сами же участники рекламируют проект и постоянно привлекают все больше единомышленников. Так же существует денежное вознаграждение, проще говоря, проекты предлагают финансовую поддержку при достижении определенных успехов в проекте. Обычно известные проекты создаются и поддерживаются крупными и уважаемыми организациями, которые не будут рисковать своей репутацией и привлекать людей ко всяким сомнительным проектам -к примеру, разработке оружия или краже паролей.

Какие же конкретно проекты с использованием технологии распределенных вычислений предлагают нам сегодня их авторы? Проект Distributed.net, стартовавший в 1997 году, сегодня объединяет вычислительные мощности, эквивалентные 160000 «Пентиумов», работающих круглые сутки. Сейчас участники проекта взламывают файл, зашифрованный с помощью криптоалгоритма RC5. Тот, чей компьютер первым подберет ключ длиной 72 бита, получит от компании RSA Lab приз в 10 тыс. долларов.

Более крупную сумму можно заработать через Great Internet Mersenne Prime Search (GIMPS). 130000 участников этого проекта, основанного в 1996 г., решают весьма масштабную задачу: они ищут самые большие простые числа, которые затем можно использовать для генерации криптографических ключей. Организация Electronic Frontier Foundation учредила призы в 50, 100, 150 и 250 тыс. долларов за отыскание простых чисел, в записи которых используется соответственно миллион, десять миллионов, сто миллионов и миллиард знаков. Первый из этих призов уже получен в 2000 году участником проекта GIMPS Наяном Хаджратвалой из США.

Следующее простое число, выскочившее в 2001 году на компьютере канадца Майкла Камерона, имело в своей записи только 4053946 цифр. Так что очередные призы EFF еще ждут своих героев. С бурным развитием Интернета распределенные вычисления стали использовать и для решения более «жизненных» задач. Проект SETI@Home, стартовавший в 1999 г., всего за три года собрал четыре миллиона добровольцев по всему миру, которые теперь отдают нерастраченные вычислительные мощности своих компьютеров на поиск сигналов внеземных цивилизаций. Поиск состоит в обработке космических радиошумов, записанных самым крупным радиотелескопом мира Arecibo в Пуэрто-Рико.

Записи нарезаются на кусочки по 107 секунд и раздаются отдельным персоналкам для выявления в них упорядоченных сигналов. На сегодня вычислительная мощность этой «любительской» сети при стоимости проекта в $500 тыс, достигает 50 терафлопс (триллионов операций с плавающей точкой в секунду). Это в четыре раза больше, чем дает суперкомпьютер ASCI White ценой $150 тыс. И даже больше, чем дает самый мощный суперкомпьютер мира, установленный в японском государственном центре исследования Земли в Иокогаме -у него 35 терафлопс. В позапрошлом году соучредитель Microsoft Пол Аллен пожертвовал на SETI еще 11.5 миллионов долларов. Теперь руководители проекта обещают, что после введения в строй нового телескопа Allen Telescope Array внеземная жизнь будет найдена в ближайшие 25 лет. Бешеный успех SETI@Home привел к тому, что идея «вычислений на дому» набрала популярность.

United Devices, Entropia, Distributed Science, Parabon, Popular Power -неполный список компаний, которые бросились внедрять системы распределенных вычислений для предсказания погоды, поиска новых лекарств или просто для сбора мощностей «на заказ». Весной этого года в игру включилась даже поисковая система Google - в ее «примочке» для браузеров Google Toolbar появилась кнопка проекта Folding@Home, участники которого - более 200 тыс компьютеров -заняты моделированием процесса формирования протеинов. Более того, уже есть и успешно завершенные проекты. Весной сеть Anthrax Project, координируемая из Оксфорда, выбрала из 3.5 миллиардов молекулярных формул те 300 тыс, которые являются наиболее вероятными кандидатами на роль лекарства от сибирской язвы. С помощью более миллиона персоналок эта задача была решена всего за месяц вычислений «в свободное время».

А в Канаде был создан четвертый по мощности суперкомпьютер мира, который, «проработав» всего один день, решил поставленную перед ним задачу по моделированию химической реакции, после чего снова «распался» на 1360 обычных компьютеров, стоящих в 20 разных научных центрах... На сегодня самая мощная сеть распределенных вычислений SETI@Home использует всего 1% компьютеров, подключенных к Интернету (сразу вспоминается, что человек использует только 5% своего мозга). Однако таких проектов становится все больше. Что они будут делать, чтобы убедить пользователей отдать свои ресурсы именно им, а не кому-то другому? Вопрос пока остается открытым. Не меньше проблем и с сетями на «чистом энтузиазме» - наиболее привлекательными могут оказаться не самые важные или просто нерешаемые задачи. Например, можно ожидать, что проект предсказания погоды Climateprediction.com будет столь же популярным, как SETI@Home, однако он может оказаться и бесполезным.

Скорее всего, сети распределенных вычислений будут использовать универсальный стимул - деньги. Это могут быть призы за отдельные достижения, как в случае GIMPS, либо более продвинутые схемы повременной тарификации. В частности, руководитель научного отдела United Devices и директор SETI@home Дэвид Андерсон уже вынашивает проект «всемирной операционной систе -мы» на основе Интернета (Internet-scale Operating System). Предполагается, что ISOS будет аккуратно отслеживать использование ресурсов каждого участника вычислительной сети и перечислять ему деньги в зависимости от расценок, установленных «покупателем вычислений». Наконец, сами вычисления могут стать валютой для взаиморасчетов между владельцами сайтов и их посетителями. Технология, разработанная отечественным математиком Михаилом Корманом, предполагает, что при загрузке веб-страницы ваш компьютер выполняет небольшое дополнительное вычисление, «спрятанное» в самой странице на языке javascript - например, вычисление дискретного преобразования Фурье над вещественным сигналом. Конечно, время загрузки страниц при этом увеличивается, как и при загрузке рекламных баннеров. Но зато, в отличие от баннеров, невидимые вычисления хотя бы не мозолят глаза.

Что будущее нам готовит...

Число компьютеров и программ выросло во много раз, так что сегодня распределенные сети для «паразитических» или «пиявочных» вычислений (leech computing) могут прятаться где угодно. Например, этой весной модуль системы распределенных вычислений был найден в популярной программе KaZaa, которая используется миллионами интернетчиков для обмена музыкой через Интернет. Гениально! Ведь если пользователь часами скачивает сотни мегабайт музыки, он и не заметит, что его компьютер потратил несколько лишних минут на какую-то другую задачу. Распределенным вычислениям сегодня придают большое значение. Так, Институт распределенных вычислений (Institut des Grilles), созданный французским

Национальным центром научных исследований (Centre National de la Recherche Scientifique, CNRS), должен обеспечить ученым легкий доступ к сверхмощным вычислительным ресурсам разного рода. Новый Институт объединит почти все значительные вычислительные ресурсы французских лабораторий: суперкомпьютеры, кластеры, сети из множества обычных компьютеров, осуществляющих параллельные вычисления. Со временем люди стали все больше углубляться в распределенные вычисления, в создание своих проектов. C возникновением новых проектов у участников появился выбор - и вопрос о денежном вознаграждении, как правило, не является здесь решающим. Наиболее значимые факты гораздо проще. Стабильна ли клиентская программа? Устойчиво ли она работает в фоне, не мешая пользователю и другим программам? В любом случае, вычислять или не вычислять на благо обществу - выбор все равно остается за вами.