ua     ru    Sitemap   Sitemap     | Поиск... |       Сайт открыт 14.12.2005

Ukraine - Distributed Computing Team

 

 » Навигация 
  Новости
  Новости (Архив)
  Описания проектов
  Наши опросы
  Архивы

  Форум
  Форум (PDA)

 » Статьи  


       Описания проектов 
Начало раздела > Folding@Home

О проекте и ПО 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)

  • Имя пользователя (параметр username) – имя под которым пользователь принимает участие в проекте.
  • Номер команды (параметр team) – номер команды, членом которой является пользователь. Команда Ukraine имеет номер 2164.
  • Спрашивать разрешение на выход в Интернет (параметр asknet). Установка в “Yes” означает, что клиент будет выдавать запрос пользователю каждый раз, когда ему будет необходимо получить задание, или отправить результат.
  • Порядковый номер клиент (параметр machineid). В случае многопроцессорной конфигурации, каждый запущенный на ней клиент Folding@Home должен иметь уникальный порядковый номер. Может иметь значение от 1 до 8, т.е. допускается не более 8 клиентов на одной машине (под Linux это ограничение можно обойти).
  • Количество выполненных заданий (параметр local) – количество заданий, выполненных данным клиентом Folding@Home. Считаются только 100%-завершенные блоки. Изменение параметра ни на что не влияет.
  • Получать большие задания (параметр bigpackets). Этот параметр означает согласие пользователя на получение больших, до 5 Мб и более, заданий, которые к тому же требуют больших объемов памяти для выполнения. Установка этого параметра не означает, что такие задания будут получены немедленно, это лишь рекомендация для сервера, который назначает задания.
  • Установки HTTP-прокси (секция http)
  • Доступ через прокси (параметр active). Установка в “Yes” означает, что клиент будет связываться с серверами проекта через прокси, используя другие параметры секции.
  • IP-адреса и порт прокси-сервера (параметры host и port).
  • Использовать установки IE (параметр usereg). Для доступа в Интернет используются установки прокси-сервера из конфигурации Internet Explorer'а. Установка в “Yes” означает, что дальнейшая настройка доступа в клиенте Folding@Home не нужна.
  • Прокси требует авторизации (параметр usepasswd). Установка в “Yes” означает, что для прокси будет использоваться авторизация с использованием логина и пароля.
  • Логин и пароль для прокси (параметры proxy_name и proxy_passwd).

   Установки ядра (секция core)
  • Загрузка процессора (параметр cpuusage). При работе клиентской программы используется 100% ресурсов процессора, но можно и уменьшить нагрузку на процессор до другого процента, например, если процессор перегревается или работает нестабильно с максимальной нагрузкой.
  • Приоритет процесса (параметр priority). Системный приоритет вычислительного ядра, которое запускается клиентом Folding@Home. Значение “0” означает приоритет “idle”, т.е. наиболее низкий, и установлен по умолчанию. Установка значения больше 0 может несколько ускорить расчеты, но ценой замедления выполнения других программ на данном компьютере и замедление его реакции на действия пользователя.
  • Выключить ассемблерные оптимизации (параметр disableassembly). Расчетные ядра Folding@Home имеют ассемблерные оптимизации, использование которых ускоряет вычисления за счет рационального распределения инструкций между исполнительными блоками процессора. Это позволяет выполнять по несколько операций за такт и уменьшить простои процессора в ожидании очередных порций данных. Если конфигурация не очень стабильна, то результирующая нагрузка становится непосильной, и потому возникает необходимость выключить оптимизации, чтобы компьютер хоть и медленнее, но все же мог выполнять вычисления.
  • Интервал между контрольными точками (параметр checkpoint) – это время между принудительными сохранениями состояния задания. Выбор оптимального значения интервала зависит от конфигурации компьютера и вероятности его зависания или внезапной перезагрузки. На средних по скорости (Sempron, Celeron и старших Athlon и Pentium) лучше устанавливать 5-10 минут, на медленных и быстрых – оптимальным было бы большее время, 15-20 мин. Медленные и быстрые машины не просто так объединены в одну группу – и на тех, и на других короткие интервалы нецелесообразны, хотя и по разным причинам. На медленных – потому что сам процесс сохранения занимает много времени. На быстрых – потому что естественные контрольные точки (границы фреймов) и так случаются достаточно часто, поэтому и необходимость в принудительных контрольных точках возникает только при расчетах наиболее сложных заданий.
  • Игнорировать конечные даты (параметр ignoredeadlines). Установка в “Yes” означает, что работа над заданием будет продолжаться даже после назначенной для него конечной даты. Имеет смысл только в случае, если таймер компьютера сбился или переводился, или не работает вообще. Стоит учесть, что если задание действительно просроченное, то за него не будут начислены очки.


   Тип клиента (секция clienttype)
  • Параметр type. Если компьютер выпущен более, чем 3-4 года назад и его процессор имеет частоту меньше 1ГГц, то существует вероятность, что он не будет успевать возвращать задания до установленного крайнего срока. В этом случае можно настроить клиентскую программу принимать только задания, которые не имеют определенного конечного срока (type=2). Значение type=1 говорит серверу, что необходимы задания с конечной датой выполнения. Значение type=0, а также отсутствие этого параметра, оставляет решение серверу.
  • Установки отображения (секция graphics)
       Параметры этой секции влияют на содержимое окна графического клиент, на скорость обновления изображений молекул в нем и т.д. Их установку лучше всего проводить в окне конфигурации графического клиента, где они к тому же исчерпывающим образом объяснены.


   Типы заданий

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

   Типы заданий и ядер:
  • Tinker (подробнее - http://folding.stanford.edu/tinker.html) – традиционное проверенное ядро, используется в проекте долгое время. Использует модели с неявным растворителем. Ядро написано давно, поэтому скоростные оптимизации выполнены на ассемблере под традиционные арифметические сопроцессоры (х87). Вследствие этого одни и те же Tinker-задания выполняются значительно быстрее на процессорах AMD, чем аналогичных по рейтингу Pentium IV или Power PC. Требования к памяти этого ядра – минимальные (около 10 Мб).
  • Gromacs (подробнее - http://folding.stanford.edu/gromacs.html) – более новое ядро, которое использует модели с явным растворителем. На протяжении 2004-2005 гг. стало основным ядром проекта, с помощью которого рассчитывается большинство заданий, благодаря большей эффективности. Имеет оптимизации под SSE/3D-Now/Altive, которые включаются автоматически при наличии поддержки со стороны операционной системы. Вследствие этого скорость выполнения заданий мало зависит от архитектуры процессора, а в основном от его тактовой частоты, и, для заданий большого объема, от скорости интерфейса «процессор-память», т.е. преимущество за Athlon 64. Требования к памяти – от 10-30 Мб для типичных заданий до 100-200 Мб для больших заданий, которые отправляются только тем, кто специально их разрешил и имеет не менее 512 Мб оперативной памяти.
       Ядро Gromacs имеет три вариации (разные бинарные файлы): стандартный Gromacs, GBGromacs (использует неявный обобщенный
    растворитель Борна, DGromacs (оптимизированный под SSE2 для случаев, когда нужна высокая точность расчетов).
  • Amber (подробнее - http://folding.stanford.edu/AMBER.html) – это более новое ядро, которое позволяет выполнять расчеты сворачивания в силовых полях с поляризацией. Является достаточно эффективным, однако, оптимизаций под SSE/3D-Now не имеет, и поскольку используются числа с плавающей запятой двойной точности, то их и не будет. Планируется оптимизация под SSE2, которая должна прибавить около 10% скорости. Не используется Mac OS клиентом.
  • QMD (подробнее - http://folding.stanford.edu/QMD.html) – в отличие от остальных ядер, QMD не использует в расчетах силовых полей, вместо этого атомные взаимодействия рассчитываются квантовым химическим методом или путем решения уравнения Шредингера. Требования к памяти для расчетов – от 200 Мб и больше. Задания этого типа не загружаются на компьютеры с менее, чем 768 Мб оперативной памяти, и если пользователь специально не разрешил их.
       Ядро оптимизировано под SSE2, но в связи с тем, что для компиляции используется компилятор Intel, то поддержка SSE2 распознается только на процессорах Pentium IV и Xeon, и не распознается на процессорах Athlon 64 и Pentium M. Таким образом, на последних расчеты могут продолжаться дольше в сравнении с аналогичными по рейтингу Pentium IV, и потому серверы проекта выдают такие задания только для процессоров Pentium IV.
       В последнее время задания, которые выполнялись ядром QMD, приносили наибольшее количество очков, [но в сейчас задания под это ядро временно не выдаются]. Машина, которая постоянно обсчитывает QMD-блоки, способна приносить своему хозяину более 400 очков в день. Такое положение вещей обусловлено тем, что такие блоки требуют значительных вычислительных ресурсов, прежде всего скоростной памяти, и являются экспериментальными (на протяжении по крайней мере 2005 года). Участники, которые их добровольно получают и обрабатывают, должны, по замыслу Pande Group, быть дополнительно вознаграждены. Поэтому половина очков, насчитанных за каждый рассчитанный QMD-блок, являются бонусными.
       Для получения QMD-блоков необходимо выполнить следующие условия:
    • необходимо иметь Pentium IV или AVD 64 с 512 Мб или больше памяти;
    • выставить bigpackets=yes в секции settings файла client.cfg
    • запускать клиент с параметром –advmethods в командной строчке.



   Самые частые вопросы, задаваемые новичками в проекте 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 Декабрь 2005
Прочитана: 27883 раза

Распечатать Распечатать    Переслать Переслать    В избранное В избранное

Другие публикации
  • Новичкам!
  • Установка обычного клиента Folding@Home
  • Как пользоваться UDmonitor
  • Установка SMP клиента
  • Folding@Home силами видеокарт NVIDIA
  • FAH SMP Affinity Changer
  • Folding@Home силами видеокарт ATI
  • Folding@Home и Linux
  • Folding@Home и Mac
  • folding@Home и playstation 3
    Вернуться назад

  •  » Поддержка (обращайтесь) 
    Folding@Home
     NikeLong246659609
     Alex266184514
     ReMMeR338177212
    Rosetta@Home
     uNiUs172324149
     KoDak313871706
    World Community Grid
     Dmitrio250896826
    FightAIDS@Home
     RHAngel50177406
    RC5/OGR
     Tamagoch53619819
     Paul B.Atton46941577
    Seti@Home
     Andrey Fenchenko285577622
    WebMaster
     ReMMeR338177212
     Rilian (PM)1
    Поболтать
     Dead J. Dona122008482