Вы находитесь здесь: distributed.ru » Проекты распределённых вычислений » Folding@home » FAQ по Folding@Home
FAQ по Folding@Home
Сконвертировано в Wiki из «статического» FAQ версии 12, от 15-Apr-2004.
Что такое Folding@Home (F@H)?
Folding@Home - это научный проект, ставящий своей целью получение более точного представления о болезнях, вызываемых дефектными белками. Воссоздав условия, в которых возникает искажение структуры белка, можно будет понять, как и почему это происходит.
Как присоединиться? Что такое "клиент"? Какие бывают версии клиента?
Для участия в проекте нужно скачать и установить одну из версий клиента.
Клиент — это программа, занимающаяся получением заданий от центрального сервера, их обработкой и отправкой результатов. Работает в фоновом режиме, не мешая вашей работе на компьютере и не влияя на его производительность. Существуют графическая и текстовая версии.
Логичным развитием идеи задействовать для расчетов простаивающий центральный процессор является попытка аналогичным образом задействовать простаивающий видеопроцессор вашей видеокарты. В самом деле, с регулярным увеличением сложности и мощи GPU этот вычислительный блок, присутствующий почти в любом современном компьютере, по ряду возможностей далеко обошел любые современные CPU. Желающие могут принять участие в открытом бета-тестировании GPU-версий клиента. (Не следует пугаться слов «бета-тестирование»: руководители проекта весьма ответственно относятся к выпуску публичных версий клиентов и вычислительных ядер, так что участвуя в открытом бета-тестировании вы вряд ли столкнетесь с серьезными проблемами.) Возможность запуска этого вида клиента существенно ограничена требуемыми видеопроцессорами (видеокартами), ОС, версиями драйверов и пр., так что перед началом стоит ознакомиться с подробным FAQ по теме на официальном сайте проекта. (
Желающие могут перевести его или дописать в виде отдельной главы сюда.) Существует как графическая, так и текстовая версии GPU-клиента (включая версию для работы на нескольких GPU), их настройка практически ничем не отличается от таковой у аналогичных версий для центрального процессора (подробнее читайте ниже).
Графическая и текстовая версии клиента. Что выбрать?
Если вы только начинаете участвовать в проекте, лучше всего выбрать графическую версию. Она более удобна в настройке, может работать свернувшись в трей (а не в панель задач) и имеет режим графического отображения текущей молекулы.
К преимуществам консольной(текстовой) версии можно отнести возможность запуска нескольких (установленных в разных каталогах) копий одновременно, причем каждую можно запустить со своими настройками.
А вообще, принципиальной разницы между ними нет. Дело в том, что все научные вычисления проводит специальный модуль — так называемое «ядро», которое в обоих клиентах одинаково. Клиент служит лишь «связующим звеном» между ядром и пользователем: получает от сервера задания и отправляет результаты, а также скачивает новые версии ядра.
Если вы всё же решили выбрать консольную версию, для упрощения её настройки можно использовать программу ConFold, а для 3D-просмотра обрабатываемых молекул — программу FoldinGL.
Следует иметь в виду, что в некоторых случаях (на сегодняшний день это справедливо только для совсем старых видеокарт и экзотических интегрированных чипсетов, которые иногда встречаются в ноутбуках) работа графической версии клиента может приводить к зависанию компьютера или клиента вследствие неполной или некорректной поддержки OpenGL видеоадаптером. При этом клиент нормально работает, будучи свернутым в трей, а к ошибке приводит только желание посмотреть на картинку с молекулой. Несчастливым обладателям компьютеров с подобной видеосистемой рекомендуется либо попробовать другие версии видеодрайверов, либо все же перейти на консольную (текстовую) версию клиента. Проверить, нормально ли ваш компьютер справляется с OpenGL-ускорением, можно при помощи маленькой утилиты GLTest.
Как установить и настроить графическую версию клиента?
Запустите скачанный файл и следуйте инструкциям на экране :)
После установки не забудьте зайти в настройки и ввести в поле «Team Number» номер команды, к которой хотите присоединиться.
В меню, открывающемся по щелчку правой кнопкой мыши на иконке клиента в трее (ну, там где часики), следует выбрать «Configure…». Откроется окно с четырьмя закладками.
- На первой указывается имя (ник) и номер команды, в которой ты хочешь участвовать.
- Вторая закладка - «Connection». Если хочешь, чтобы клиент «автоматом» отсылал результаты – убираешь галочку с «Ask before using network». Если нужно использовать прокси – ставишь соответствующую галку и заполняешь нужные поля. Проставление последней, самой нижней галочки приводит к тому, что компьютер будет получать так называемые big WU – задания, требующие больше памяти при работе и трафика при получении и отсылке данных, но «вознаграждаемые» за это большим количеством очков.
- Третья закладка – настройки графики: выбираешь, сколько ресурсов отдавать под визуализацию данных (лучше «ползунок» отвести до упора влево, скорость обновления картинки при этом самая низкая, но изображение все же получается вполне сносное, а ресурсов тратится чуть меньше). Здесь же можно выбрать тип отображения молекулы протеина, задать запуск клиента только в качестве скринсейвера (то есть когда компьютер некоторое время бездействует) и задать параметры работы скринсейвера. В нижней части закладки можно добавить вывод произвольного текста и собственного логотипа в окне с изображением молекулы.
- Наконец, на последней закладке задаются настройки работы вычислительного ядра.
- «Core Priority» (приоритет): лучше «Lowest possible» – это рекомендованый режим, повышать стоит только если у тебя параллельно работают еще какие-то проекты распределённых вычислений.
- «CPU Usage» (процент использования процессорных ресурсов): смело ставь на 100%, нормальной работе это не мешает.
- Опция «Disable highly optimized code» отключает использование расширенных наборов команд процессора (таких как SSE или 3DNow!), к постоянному использованию категорически не рекомендуется. Можно попробовать включить этот режим при нестабильной работе системы, но только в качестве быстрой проверки: если же проблемы действительно исчезли, следует добиваться стабильной работы без применения этого параметра (снижением разгона, увеличением таймингов памяти и пр.), так как он очень сильно снижает скорость расчетов, да и вообще это неправильно – бороться с перхотью отрубанием головы :).
- «Checkpointing frequency» (частоту сохранения точек отката) лучше поставить в максимальное значение, уменьшать имеет смысл только для машин, которые очень часто перегружаются по какой-то необходимости. Увеличение этого интервала меньше нагружает жесткий диск и слегка ускоряет процесс расчета, отрицательно влияя лишь на величину потраченного впустую времени между последним сохранением контрольной точки и перезагрузкой/выключением машины (чем в абсолютном большинстве случаев можно пренебречь).
- Ниже можно включить приостановку расчета на время работы компьютера от батарей (полезно для ноутбуков и машин с ИБП), а также режим игнорирования дедлайнов на случай, если системное время на вашем компьютере часто сбивается или умышленно переводится вперед/назад.
- Наконец, можно указать получение только заданий, имеющих или не имеющих дедлайн, в последнем случае возможна работа в «пакетном режиме», когда клиент за один раз скачивает несколько заданий и рассчитывает их по очереди, без необходимости каждый раз подключаться к интернету.
Как установить и настроить текстовую версию клиента?
По инструкции. :)
Как использовать возможности многоядерных процессоров?
Текущая версия клиента под Windows (справедливо, по крайней мере, для версий 5.x) не умеет задействовать возможности даже двухъядерных процессоров и процессоров с Hyper-Threading. Таким образом, для большинства участников проекта Folding@Home единственным выходом остается одновременный запуск на компьютере нескольких копий клиента (о том, как это сделать, читайте ниже), где количество одновременно запущенных копий определяется количеством свободных ядер процессора. (Случай псевдомногопроцессорности — процессоры Intel Pentium 4 с технологией Hyper-Threading — более сложен: хотя очков при использовании нескольких клиентов на процессоре с HT выдаётся больше, руководители проекта не рекомендуют этого делать.)
В то же время, обладатели систем на базе многоядерных процессоров архитектуры x86, работающих под управлением Mac OS X или 64-битных версий Linux могут принять участие в открытом бета-тестировании SMP-версии клиента. (Не следует пугаться слов «бета-тестирование»: руководители проекта весьма ответственно относятся к выпуску публичных версий клиентов и вычислительных ядер, так что участвуя в открытом бета-тестировании вы вряд ли столкнетесь с серьезными проблемами.) Для обеих ОС существует только текстовая версия SMP-клиента, ее настройка практически ничем не отличается от таковой у обычной текстовой версии для Windows (подробнее читайте выше).
Как на одном компьютере одновременно запустить несколько копий клиента?
Создайте два (три, сколько надо) каталога с консольной версией (FAH5Console.exe). Запустите каждую из них с ключом -config. В разделе «Advanced Settings» для каждой задайте различные значения Machine ID. Для запуска каждой консоли создайте ярлык или .bat-файл следующего содержания:
<путь к файлу>\FAH5Console.exe -local
Примечание: в качестве одной (только одной!) из копий можно использовать графическую версию клиента.
Что такое "Deadline"?
Deadline — это время, после которого скачанные с сервера, но не обработанные юниты теряют ценность для проекта (от нескольких часов до 3 месяцев - в зависимости от юнита). До истечения дедлайна WU нужно обработать и вернуть результат на сервер, иначе тот же юнит будет выдан на обработку другому участнику, а вы не получите очков за его расчет (если все же досчитаете после дедлайна и попытаетесь вернуть результат).
В проекте существует еще один временной параметр для каждого WU: желательный срок возврата результата (колонка «Preferred» в таблице статистики проекта). Он всегда наступает раньше дедлайна, и именно по истечении этого срока «ваш» юнит отдается на обработку другому участнику. Таким образом, если интересы науки для вас важны, надо стараться вернуть результат не только до дедлайна (чтобы заработать очки), но и до желательного срока возврата (чтобы не «распылять» вычислительную мощь проекта на дублирование выполненных вами вычислений).
Если вы не уверены, что сможете обеспечить своевременный расчет заданий, выставьте клиенту ограничение для получения только без-дедлайновых юнитов. В большинстве случаев такие задания приносят немного меньше очков, но зато вы будете уверены, что не тратите время своего компьютера впустую. Указание, как запрашивать для расчета только юниты без дедлайна, вы можете найти в описании настройки графической и текстовой версий клиента, а в общем случае достаточно изменить в файле конфигурации (client.cfg, расположен в том же каталоге, что и исполняемые файлы F@H):
... [clienttype] type=0 ...
значение type на 2 (операцию можно проделать в любом текстовом редакторе, например, входящем в состав Windows Блокноте(Notepad)).
От чего зависит количество очков, выдаваемое за тот или иной юнит?
Судя по официальному FAQ, каждый WU перед запуском в сеть тестируется на эталонном компьютере - Pentium 4 с частотой 2,8 ГГц (с отключенным SSE2). Очки за юнит рассчитываются по следующей формуле:
points = 110 * (daysPerWU)
где daysPerWU - количество дней, затраченное на его обработку эталонным компьютером. (Кстати, дедлайн для юнита тоже определяется в зависимости от скорости его расчета эталонным компьютером.)
А узнать количество начисляемых очков за все доступные в данный момент юниты можно на странице »Project Summary».
Что такое сертификат, как его получить?
Сертификат – это документ, удостоверяющий ваш вклад в дело проекта. Cсылка на сертификат находится на вашей личной странице статистики. При открытии этой страницы появляется картинка сертификата, которую можно распечатать, вложить в рамочку и повесить на стену :-)
Полная ссылка на страницу с сертификатом выглядит примерно так:
http://fah-web.stanford.edu/awards/cert.php?u=SniperSDD&pts=2864&t=wus&bg=1
Здесь:
- u=… - ваш ник, единственный параметр, который должен обязательно присутствовать в ссылке.
- pts=… - кол-во очков, на которое хотите получить сертификат. Если не указывать или указать больше чем насчитали, то берется «реальное». По замыслу разработчиков служит для различия между донорами с одинаковыми никами, но из разных команд. При этом кол-во очков в сертификате ограничино не суммой, а максимальным результатом среди доноров разных команд.
- t=wus - если указан, то сертификат на WU, иначе на кол-во очков.
- bg=… - число от 1 до 5, выбираем фоновое изображение на сертификате.
Как отправить результаты?
Результаты клиент отсылает сам, сразу по завершению обработки. Если на этот момент подключения к Интернету нет, проще всего закрыть клиента, подключиться, и запустить его заново.
У клиента есть буфер на 10 завершенных заданий, куда он складывает результаты, которые почему-либо не удалось вернуть на сервер. После завершения задания клиент сначала отсылает последний результат, а потом неотосланные задания из буфера (queue). Так что в любом случае ничего не теряется, если сразу не отправилось, отправится в следующий раз.
Какие есть ключи командной строки?
Полный список можно посмотреть, запустив клиента с ключом -help. Здесь перечислены лишь некоторые из них.
- Ключ
-send allзаставляет клиента выполнить отправку всех находящихся в буфере результатов. - Ключ
-advmethodsзаставляет клиента запрашивать с сервера юниты для новых расчётных ядер - тех, в стабильной и беспроблемной работе которых у авторов проекта полной уверенности пока нет. На практике же, проблемы с новыми ядрами весьма редки, а выдаваемые при использовании этого ключа юниты могут иногда приносить больше очков, чем «обычные». - Очень полезен ключ
-verbosity 9: он заставляет клиента выводить более подробные сообщения, в частности во время загрузки юнитов и отправки результатов. - Ключ
-oneunitпозволит рассчитать одно задание и отправить результат, после чего клиент завершит свою работу. Можно задать этот параметр запуска и клиенту, установленному в качестве сервиса, но если тип запуска этого сервиса – автоматический (как оно задается по умолчанию при установке клиента в качестве сервиса), то после остановки (по завершению расчета одного задания) клиент будет запущен заново. В таком случае остается только перевести тип запуска в ручной хотя бы на время расчета заданий с ключом-oneunit. Для продолжения расчетов нужно снова запустить клиент/сервис.
Как считать задания на машине, которая не имеет доступа к сети?
Подробная статья на эту тему.
Можно ли скрыть клиента так, чтобы его не было видно ни в трее, ни в панели задач?
Скрыть можно. Поставить консольную версию и пользоваться программами UD Monitor, WStart или HideItX. Подробнее - здесь.
Можно ли скрыть клиента из списка процессов (или переименовать его)?
Затеряться в списке процессов вряд ли получится. Можно переименовать клиента (FAH5Console.exe или WinFAH.exe), но не расчётные ядра (FahCore_nn.exe). Впрочем, написанные некоторыми участниками проекта приложения позволяют не только переименовывать расчётные ядра, но и автоматизировать установку и запуск клиента, а также многое другое. Более подробная информация доступна на нашем форуме.
Я считаю Folding@home с помощью Google Toolbar. Можно ли указать своё имя пользователя и номер команды?
Да, можно. Откройте в блокноте файл »C:\Program Files\GoogleDCC\GoogleFah\client.cfg». Он будет выглядеть примерно так:
[settings] username=google210975797549510 team=446 asknet=no userid=14BEEDFA74270ECE machineid=1 [http] active=no host=localhost port=8080 usereg=yes
Нас интересуют строки, начинающиеся с «username=» и «team=». В них указывается имя пользователя (без пробелов!) и номер команды соответственно.
Как выбрать тип WU для обсчёта?
Никак. Сервер сам распределяет различные типы юнитов по компьютерам участников.
В теории — в зависимости от их производительности, выясняемой с помощью Benchmark'а. На практике — как попало ;-))
Есть, правда, возможность выбрать для обсчёта только те юниты, которые не имеют ограничений по времени(deadline).