NoNaMe :: Распределённые вычисления для чайников (F@H)

Часть 1 (теоретическая). Что это такое и как это работает.


Согласно определению в Википедии, распределённые вычисле́ния — это способ решения трудоёмких вычислительных задач с использованием двух и более компьютеров, объединённых в сеть.
Сейчас, в связи с развитием интернета, многие проекты задействуют для вычислений компьютеры простых пользователей, подключенные к интернету. Это связано с тем, что современные компьютеры используют менее 10% мощности для повседневной работы, а большую часть времени и вовсе простаивают (можете убедится сами, в “Диспетчере задач” 95% времени процессора отдано Бездействию системы Idle).
Задачи, решаемые в рамках этих проектов весьма разнообразны – от бессмысленного “спортивного” взлома шифров на скорость методом перебора, до проверки физических гипотез и моделирования структуры белка для поиска лекарств от пока неизлечимых болезней.
Я попробую наиболее просто объяснить общую схему участия в таких проектах.

----------------------<cut>----------------------


Знакомьтесь, это Василий Пупкин – начинающий учёный. Он занимается фундаментальными медицинскими исследованиями, но, к сожалению, ничего не понимает в математике.

В один прекрасный момент Василий столкнулся со сложной математической проблемой. Её было необходимо решить в короткие сроки для успешного продолжения исследований, но гуманитарный склад ума не позволял Василию этого сделать.

И тут на помощь Василию пришли коллеги. Оказалось, что задача может быть хорошо распараллелена, т.е. поделена на более простые подзадачи, которые можно решать отдельно и независимо друг от друга.

Поступив таким образом, Василий раздал части задания коллегам и стал ждать результатов.

Кто-то справлялся быстро и брал новый кусочек, кто-то медленно, но в результате Василий получил ответ, близкий к окончательному. Начислив каждому коллеге очки за решённые фрагменты, Василий по уже отработанной схеме раздал для решения новые кусочки, пообещав начислять за них в два раза больше очков, так как они сложнее предыдущих.


Завершив и этот этап, Василий уже самостоятельно с помощью сложения в столбик получил окончательный результат. Ура!
А как же точность? Где гарантия, что кто-нибудь из коллег не ошибся в одном фрагменте и не повлиял таким образом на всё решение?

Хитрый Василий всё предусмотрел заранее. Когда дробил задачу, он делал по три копии каждого фрагмента, да ещё и раздавал их коллегам в запечатанных конвертах для предотвращения случайной порчи данных. А когда они ему (также в конвертах) возвращали ответы, он сравнивал их между собой и легко обнаруживал ошибки.
Да, при этом коллеги выполняли лишнюю работу, но точный результат был важнее, да и очки за фрагменты коллеги получали независимо от того считал ли кто-нибудь этот фрагмент до них или нет.
Конечно, в реальности всё несколько сложнее, расчёты – не простое сложение чисел, да и считать будете не вы, а компьютер :) Поэтому перейдём к практической части.

Часть 2 (практическая). Folding@Home. Быстро устанавливаем клиент для видеокарт и начинаем считать!
Проект Folding@home (читается Folding At Home) проводится Стэнфордским Университетом. Цель проекта — с помощью моделирования процессов свёртывания/развёртывания молекул белка получить лучшее понимание причин возникновения болезней, вызываемых дефектными белками, таких как Альцгеймера, Паркинсона, диабет типа II, болезнь Крейтцфельдта — Якоба (коровье бешенство) и склероз. К настоящему времени проект Folding@home успешно смоделировал процесс свёртывания белковых молекул на протяжении 5—10 мкс — что в тысячи раз больше предыдущих попыток моделирования. По результатам эксперимента вышло несколько научных работ.
Один из результатов:


Помимо практической ценности участия в проекте, есть также и спортивный интерес, можно вступать в команды и бороться за попадание на верхние строчки статистики.
Россию в этом проекте представляет команда TSC! Russia (номер 47191), насчитывающая около 1500 активных участников. Команда занимает 7 место в общекомандном зачёте и пока не сдаётся, но и враги не дремлют.
Итак, для участия в проекте созданы клиентские программы для одноядерных процессоров (CPU), многоядерных процессоров (SMP) и видеокарт (GPU), а также для Playstation3. Поддерживаются ОС Windows, Linux, Mac OS X.
Для начала установим клиент для видеокарт — самый простой в установке и использовании, также является одним из самых производительных.
Требования:
— Видеокарта: не ниже GeForce 88xx (драйвера 177.35 и более новые) или Radeon 24xx (драйвера Catalyst 8.1 и более новые)
— .NET Framework 2.0 или выше.

Скачать (c официальной страницы проекта):
Windows XP/2003/Vista/7 GPU System tray client (installer msi) (5.5Mb)

Установка и настройка:
При установке нужно лишь согласиться с лицензионным соглашением и нажать Next. После запуска клиента он будет виден в трее и надо будет сразу изменить следующие настройки:


Имя: Для начала предлагаю использовать командное имя nnm.ru, если потом будет желание побороться в одиночку, в любой момент сможете сменить на что-нибудь типа nnm_ваш_ник_на_нонейме (без кириллицы) чтобы выделяться из толпы. Проверить не занят ли ник можно здесь.
Команда: 47191 – это номер команды TSC! Russia.
ОК.
Дополнительно регистрироваться нигде не нужно – имя появится в статистике сразу после первого успешно сданного WU (WU = work unit = job = жаба). Можно использовать одно и то же имя на любом количестве клиентов.
Осталось перезапустить клиент и он скачает из интернета ядро, задание и начнёт работать. На завершение одного WU может потребоваться от получаса до суток в зависимости от количества очков, начисляемых за его расчет и мощности видеокарты. Полученный результат будет автоматически отправлен на сервер, после этого будет закачан новый unit, итд. Траффик мизерный — до 200 килобайт на unit. Перед запуском игр клиент лучше остановить (результаты сохранятся).
Пока всё, в следующий раз напишу как установить клиент для многопроцессорных систем.
Много информации можно почерпнуть по следующим ссылкам:

Ссылки:
Форум команды TSC!Russia — информация по настройке различных клиентов и масса полезных советов.
FAQ (часто задаваемые вопросы) по расчету на видеокартах nVidia в проекте Folding@Home
FAQ по Folding@home
FAQ команды TSC! Russia
Неофициальная статистика — более удобна и информативна.

Противостояние TSC! Russia и OVERCLOCK.NET! Покажем им, чего стоят наши валенки, балалайки и медведи!

PS: Термин PPD (points per day, очков в сутки) — среднее количество очков, которое можно получить за сутки при постоянно работающем клиенте. Зависит от типа клиента, производительности системы и заданий.

Источник: http://nnm.ru/blogs/folding/raspredelennye_vychisleniya_dlya_chaynikov_f_h/

Яндекс.Метрика Rambler's Top100

© 2000–2012 NoNaMe