Distributed Computing team of Ukraine | Ukraine - Українська Команда Розподілених Обчислень | Ukraine - Украинская Команда Распределённых Вычислений - Описи проектів

https://distributed.org.ua/index.php?go=Pages&in=view&id=2
Распечатать

О проекте и ПО Folding@Home



версія українською

автор - Роман Ковбасюк aka romko (авторские права cc-by-2.5), Перевод: Макс aka Arbalet


 

 

Folding@Home: Информация для тех, кто хочет присоединиться


   Для всех кому небезразлично развитие науки в области борьбы со смертельными болезнями уже шесть лет существует проект распределенных вычислений под названием Folding@Home: http://en.wikipedia.org/wiki/Folding@home. Исследования проводятся под эгидой Стенфордского университета.

   Суть проекта заключается в моделировании
сворачивания белков с целью выявления возможных проблем сворачивания, которые приводят к болезням Альцгеймера, Паркинсона, диабету типа II, коровьему бешенству, склерозу и некоторым типам рака. Глубокое понимание этих процессов поможет выяснить точную картину возникновения заболеваний и разработать методы противодействия.
   Подобно другим известным проектам (Find-a-Drug, distributed.net, SETI@Home и пр.), в Folding@Home принимают участие пользователи персональных компьютеров. Обсчет небольших порций-заданий проходит в фоновом режиме с минимальным приоритетом, поэтому не мешает нормальной работе за компьютером. Сейчас в проекте насчитывается более 200 тысяч активных участников, которые используют вычислительные мощности своих компьютеров для выполнения заданий, каждое из которых воспроизводит небольшую часть общей картины сворачивания белков. Интернет необходим только для получения заданий и отправки результатов. Типовые задания имеют размер порядка 100 Кб, а результаты – до 1-3 Мб на один блок. При этом на вычисления одного блока идет от 2 до 10 рабочих дней.
   Ведется статистика для каждого участника. Кроме того, участники могут объединяться в команды по странам, городам или общим интересам. Для этого в конфигурации необходимо указать номер команды (team), например 2164, если вы хотите считать за команду Ukraine :) Наша команда сейчас занимает высокое место место в общекомандном зачете:
официальная статистика или расширенная статистика.

   Кто-то спросит: Зачем задействовать сотни тысяч компьютеров, если можно воспользоваться одним суперкомпьютером и получить необходимый результат значительно быстрее?

   Современные
суперкомпьютеры состоят из сотен или тысяч процессоров. Иногда это количество достигает 10 тысяч процессоров (которые отдельно взятые часто медленнее современных десктопных процессоров), объединенных скоростными соединениями. Именно эти соединения делают суперкомпьютер единым компьютером, а не кластером из отдельных компьютеров, и являются чуть ли не самыми дорогими его компонентами.
   Так вот, специфика вычислительных алгоритмов, которые используются Folding@Home в том, что скоростные соединения между процессорами не нужны, а необходима максимизация скорости каждого процессора. Поэтому даже если в распоряжении проекта был суперкомпьютер из 1000 процессоров, то он бы выдавал результаты не скорее, чем 1000 отдельных компьютеров с такими же процессорами.
   Однако для получения важных результатов в Folding@Home нужны не тысячи процессоров, а сотни тысяч. Поэтому расчеты, которые проводят участники проекта, невозможны любым другим способом на данном этапе развития вычислительной техники, и еще долго не будут возможны. 



   Результаты работы проекта

   В отличие от других проектов распределенных вычислений, Folding@Home работает под эгидой академического учреждения, Pande Group, входящего в состав кафедры химии Стенфордского университета. Pande Group является неприбыльной организацией, которая не продает данные, полученные в результате работы данного проекта, и не получает деньги любым другим способом.
   Полученные данные делаются доступными для других исследователей на сайте проекта по мере завершения просчета отдельных симуляций сворачивания белков. Анализ симуляций сотрудниками Pande Group публикуется в научных журналах и также делается доступным на сайте проекта.



   Достижения Folding@Home

   Завершены симуляции процесса сворачивания нескольких белков продолжительностью 5-10 микросекунд. Эти результаты подтверждены лабораторными исследованиями. Научные труды, которые детально представляют результаты, тот, кто силен в английском языке, может просмотреть здесь. Многие из этих статей прошли рассмотрение другими учеными и были опубликованы в ведущих научных журналах (Science, Nature, Nature Structural Biology). Количество таких статей на данный момент превышает количество публикаций по результатам всех других проектов распределенных вычислений вместе взятых. 



   Требования к компьютеру для участия в Folding@Home

   Любой персональный компьютер, выпущенный за последние 3-4 года, подходит для участия в проекте. Таким образом, подходит любой процессор Pentium, Athlon, Duron, Sempron, Celeron, Power PC. Клиентские программы существуют для Windows, Linux, Mac OS, видеокарт NVIDIA, ATI, игровой приставки playstation3. Также могут принимать участие компьютеры с FreeBSD или OpenBSD.
   При работе клиентская программа использует типично 10-20 Мб, в зависимости от размера белковой молекулы и сложности расчетов. Существуют задания, которые требуют значительно больше памяти, но их получают лишь те участники, которые специально этого захотели.
   При работе программы используется 100% ресурсов процессора, однако поскольку приоритет данного процесса является наименее возможным, то на нормальной работе с компьютером это не отражается, и никакого замедления реакции на нажимание клавиш или чего-то подобного не наблюдается.
   Более того, машины, которые работают нестабильно при полной загрузке процессора (причинами могут быть чрезмерный разгон или некачественные комплектующие, прежде всего память) лучше к проекту не подключать, пока не будут исправлены все неполадки и не будет доказана способность стабильной работы при полной загрузке. 



   Компоненты клиентского программного обеспечения Folding@Home

   Клиент Folding@Home может быть реализован в виде консольной программы (Windows, Linux, Mac OS X), графического клиента (Windows, Mac OS X) или скринсейвера (Windows, Mac OS X). Загрузить их можно отсюда.
   Графический клиент может сворачиваться в трей, и при автоматическом старте он запускается в свернутом состоянии. Графический клиент и скринсейвер при работе показывают трехмерную динамическую модель белка, который просчитывается. Для отображения используется OpenGL-ядро, и на это расходуется 3-5% ресурсов процессора.
   Консольный клиент при работе в Windows занимает место на панели задач и не может быть свернутым в трей. Под Windows 2000/XP консольный клиент может запускаться как сервис, чтобы не занимать место в трее или панели задач и не зависеть от авторизации пользователя (запускается при старте системы). Если компьютер имеет несколько процессоров, или его единственный процессор имеет несколько ядер, то можно запустить несколько консольных клиентов для одновременного выполнения нескольких заданий. При этом они должны быть установлены в разные папки.
   Все клиенты являются небольшими программами (размер инсталляции 300-500 Кб). Разница между ними заключается в способе запуска и показа результатов. Получение заданий и отправка результатов осуществляется ими одинаково, а для выполнения вычислительных заданий используются ядра. При получении задания клиент проверяет, есть ли в его каталоге необходимое для расчетов этого задания ядро, и если оно отсутствует или устарело, то происходит загрузка с сервера. Ядра, как и задания, передаются в сжатом виде, и размер загрузки составляет порядка 500-700 Кб. Целостность загруженных данных подтверждается цифровой подписью.
   В один каталог можно установить и графический, и консольный клиент, и произвольно переключаться между ними без потери промежуточных результатов расчета задания. При этом должны выполняться два условия: версии клиентов должны быть совместимы (один клиент не должен быть намного старше другого) и клиенты должны запускаться по одному. 



   Конфигурация клиента

   После установки клиента на компьютер с помощью программы инсталляции рекомендуется сразу настроить его конфигурацию.
   Это можно делать в диалоговом окне графического клиента, можно запустить консольный клиент с параметром “-config” в командной строчке и ввести ответы на запросы, можно отредактировать файл конфигурации “client.cfg” с помощью текстового редактора. Последнее можно делать и во время работы клиента, только следует помнить, что изменения вступят в силу после перезагрузки клиента.
   Можно комбинировать эти подходы: запустить графический клиент, сделать все необходимые настройки, нажать ОК, дождаться получения ядра и успешного старта расчетов. Потом завершить работу графического клиента, запустить консольный, и далее пользоваться им, внося при необходимости изменения в конфигурацию ручной правкой файла “client.cfg”. Вручную можно изменять любые параметры, кроме “proxy_passwd”, который сохраняется в закодированном виде, и может быть записан только самой клиентской программой.
   Если запустить консольный клиент на компьютере, где никогда не использовались программы Folding@Home и отсутствуют файлы заданий и конфигурации, то он сразу запустится в режиме конфигурирования, после чего файл конфигурации будет создан и заполнен введенными значениями.
   Кроме файла конфигурации, Windows-клиенты Folding@Home сохраняют некоторые параметры в реестре. Единственным значимым среди них является “UserID” – уникальный идентификатор компьютера в проекте, по которому определяется, какой машиной выполнено задание, и учитывается, сколько машин использует пользователь. 



   Параметры конфигурации клиента

   Общие установки (секция http)


   Установки ядра (секция core)


   Тип клиента (секция clienttype)


   Типы заданий

   На данный момент задания в проекте бывают 4 основных типов. Узнать тип задания можно или по названию ядра, которое показывается в окне клиента, или в журнале его работы, или по номеру проекта на странице проектов. Там указан размер задания в атомах, количество дней на выполнение (желательное и крайнее), количество баллов, которые будут насчитаны за выполнение. С этой же страницы можно перейти к детальному описанию проекта, где указано, сворачивание какого белка исследуется и с какой целью.

   Типы заданий и ядер:



   Самые частые вопросы, задаваемые новичками в проекте Folding@Home

   Почему мне снова выдано задание, которое я уже рассчитал?
   Такой вопрос часто задается новичками, компьютер которых только что просчитал задание pNNN, и снова начал обрабатывать задание pNNN. Такие ситуации вполне возможны, но они не означают, что повторно рассчитывается то же самое задание. На самом деле, это разные задания одного проекта, поскольку pNNN означает только номер проекта, который в свою очередь может содержать тысячи или десятки тысяч блоков-заданий. Чтобы убедиться в том, что это действительно другое задание, нужно посмотреть в протокол (в файле “FAHlog.txt”) и обратить внимание на числа вида (Run 33, Clone 82, Gen 3) после “Project: NNN” в одной из строчек, которые соответствуют фазе начала расчетов. Номера после “Run”, “Clone”, “Gen” будут разными в каждом случае.



   По какому принципу насчитываются очки за выполненные задания?
   Каждый проект имеет определенное количество очков, которые насчитываются участникам за успешное выполнение его заданий. Количество очков зависит от времени, которое тратится на вычисления эталонной машиной. Эталонная машина имеет процессор Pentium IV 2.8ГГц с включенной SSE2, и выполняет только консольный Linux-клиент Folding@Home. После определения времени выполнения задания, количество очков, которое будет насчитываться за него, вычисляется по формуле: 
   points = 110 * (daysPerWU),
   где daysPerWU – количество дней, которое заняли расчеты.
   Время, которое идет на расчеты в других конфигурациях, может отличаться в ту или другую сторону, но для одной и той же конфигурации при тех же условиях выполнения время вычислений всех заданий одного проекта является одинаковым. Этим Folding@Home отличается от некоторых других проектов распределенных вычислений, где однотипные задания могут иметь разные времена расчета в зависимости от достижения определенных условий.
   Кроме очков, которые насчитываются за потраченное время, некоторые проекты имеют так называемые «бонусные» очки. Они предназначены тем проектам, задания в которых являются экспериментальными или требуют очень много ресурсов, в сравнении с нормальными заданиями, и поэтому более требовательны к конфигурации. По замыслу авторов проекта, бонусные очки являются наградой тем участникам, которые подключают к проекту современные компьютеры, тратятся на приобретение дополнительной памяти. По состоянию на ноябрь 2005, дополнительные очки давались за задания, выполняемые ядром QMD и большие Gromacs-задания, которые выдаются участникам, поставившим в конфигурации опцию «Получать большие задания».
   На
странице проектов указано, сколько очков дается за выполнение задания определенного проекта. Бонусные очки отдельно не определены, показывается только общее количество.
   За не полностью просчитанные задания насчитывается только часть очков, которая пропорционально соответствует выполненной части задания. Такие задания потом могут пойти для повторных просчетов другим участникам проекта. 



   Как сделать так, чтобы результаты с нескольких компьютеров засчитывались на одно имя?
   Достаточно указать в конфигурации всех компьютеров одно и то же имя пользователя (username), например “romko” :) Все. Никаких дополнительных установок. Честно :)) Нужно только не забывать о регистре, и поэтому “Romko” и “romko” – это разные имена.
   Один и тот же пользователь может быть членом нескольких команд одновременно, если он подключил к проекту несколько компьютеров. Для этого достаточно указать разные номера команд в конфигурации его разных компьютеров.


| 16.12.2005 08:38