Установка и настройка Folding@Home в Windows

Итак, Вы решили присоединиться к проекту Folding@Home. Эта страничка поможет вам загрузить, установить и настроить клиента F@H на ваш компьютер под управлением Windows "штатным" способом. В нашем форуме можно изучить и другие способы установки и работы с клиентом, например, пакетную установку консольных клиентов на все доступные администратору машины в локальной сети, над которой работает участник команды targitaj, использование кэширующих программ и др.
Также вы можете изучить страничку, посвящённую установке, настройке и работе с консольным клиентом для многопроцессорных (многоядерных) SMP-систем в среде Windows, и страничку клиента для расчётов силами видеокарт (GPU ATI 2xxx и новее, NVidia 8xxx и новее).

Пока мы даём рекомендации только для операционной системы Windows, пользователям Linux придётся подождать, пока наши линуховоды в команде наберутся сил создать полноценное описание установки и под эту ОС. Полагаю, однако, что по крайней мере в настройках консольного клиента многое совпадает, и в любом случае прочитать эту страничку будет полезно для всех.

1.Первый этап - скачиваем клиентскую программу.

Надеюсь, вы прочли нашу страничку с описанием клиентского ПО для проекта и уже выбрали для себя консольную (я бы рекомендовал именно её) или графическую версию.

Свежие версии клиента на сайте разработчика под все ОС находятся здесь. В случае проблем с закачкой с официального сервера проекта актуальные версии для Windows 2000/XP можно забрать и из нашего файлового архива.

Графическая версия инсталлируется как большинство программных пакетов для Windows. Консольная версия, в отличие от неё, инсталляции не требует, так что её нужно положить в ту папку, где она и будет работать. При первом запуске, если консольный клиент не находит настроек в реестре, то автоматически предлагает вам заполнить необходимые настройки и пытается получить через Интернет новый UserID для данной копии клиента (без UserID клиент работать не будет). Будьте готовы настроить клиента правильно сразу же, поскольку в проекте Folding@Home при смене имени или команды очки навсегда остаются старому нику и старой команде... Номер нашей команды - 47191.

2. Установка и настройка клиента Folding@Home.

Дадим слово нашему товарищу Bar3ikk, создавшему краткий FAQ по Folding@Home в нашем форуме. С учётом накопленных с момента написания FAQ сведений, я внёс, где необходимо, поправки и добавил комментарии.

Настройка консольного клиента: краткая последовательность действий:

1) Создайте папку с удобным названием (например, таким, которое проще потом ввести вручную - путь и имя папки покороче, или наоборот, спрячьте папку глубже в недра файловой структуры).
2) Скопируйте FAH50x-Console.exe в папку, запустите. В окне консоли вам зададут вопросы, ответы на которые и будут первоначальной настройкой клиента. Чтобы ответить "да" или "нет", нужно ввести соответственно буквы "Y" и "N" и нажать Enter. Параметр по умолчанию выбирается простым нажатием Enter.
3) Первый вопрос - "Your Name?". Понятно, что следует писать (для совсем не знающих английского - ваше условное имя - ник в проекте. У меня, скажем, RU_Hil).
4) "Team Number?" - НАПИСАТЬ 47191. Это очень важно, иначе вы не будете с нами =)
5) "Launch automatically at startup, installing this as a service?". Автоматически запускаться при старте, устанавливая клиент как сервис? Это очень полезная и важная функция, но она, единственная из всех, требует прав администратора на машине. В общем случае для администратора машины ответ "yes" будет оптимальным решением. Если же вы не хотите использовать штатную систему запуска клиента как сервис, а, например, намереваетесь пускать его через nnCron или UDMonitor, ответьте "no".
6) "Ask before fetching/sending work?" Спрашивать перед отправкой, закачкой заданий? - Владельцам модемного соединения, у которых все "на счету" следует включить эту опцию.  (Я бы не был так в этом уверен. Ведь если клиент захочет что-то принять или отправить (с автодозвоном), без вашего участия сделать это он не сможет. Эту настройку лучше сочетать с установкой какой-нибудь кэширующей утилиты (UDMonitor?), иначе простоев не миновать).
7) "Use Internet Explorer settings?" Использовать настройки IE? - Всегда отвечайте "no". Даже если из-за этого вам придется вручную прописывать адреса прокси-серверов, параметры подключения, к сожалению, это лучше, чем невозможность соединиться с серверами проекта, которая гарантирована тем, у кого IE версии 7 (и, вероятно, более новых версий в будущем).


Non-IE settings:

8) "Proxy Name". Имя прокси - IP-адрес прокси-сервера, например, 192.168.0.5.
9) "Proxy Port". Порт прокси-сервера.
10) "Use username & password with proxy". - Использовать имя пользователя и пароль для прокси. Для прокси, требующего аутентификации, следует выбрать "yes".
11) "Proxy Username". Имя пользователя прокси-сервера.
12) "Proxy Password". Пароль для прокси-сервера.

13) "Allow receipt of work assignments and return of work result greater than 5MB in size (such work units may have large memory demands)". Разрешить прием и отправку заданий больше 5 Mб? Если у вас нет проблем с трафиком, или относительно слабая машина, спокойно ставьте "yes"! Создатели поощряют обсчет таких заданий большим количеством очков, даваемых за один юнит. Правда, кроме большого траффика, есть и другой "побочный эффект" - требовательность к объёму оперативной памяти (с QMD случалось 350 Mб и больше, возможность получать такие требовательные к памяти задания зависит от установки опции "доступная память" - см. ниже. Впрочем, на данный момент не выдают задания типа QMD, а все прочие задания не занимают больше 120 - 150 Мб памяти).
14) "Change advanced options?" Изменить дополнительные настройки? Не нужно ничего сверхестественного от клиента? Тогда прямо сейчас завершите настройку клиента, ответив "no". Но я бы посоветовал ответить именно "yes", принять большинство настроек по умолчанию, но настроить некоторые другие.

Advanced options:
15) "Core priority (idle/low)". Приоритет ядра расчетов. Разницы практически нет, если вы не используете второго клиента другого проекта РВ параллельно, ;) то оставьте "idle" (по умолчанию).
16) "CPU usage requested (5-100)". Разрешаемое использование ресурсов процессора. Приоритет у программы и так низкий, если что-то загружено, то нужных ресурсов она не отнимет. Лучше оставьте 100 процентов (по умолчанию).
Когда можно использовать этот параметр? Например, если хотите снизить нагрев или энергопотребление процессора, или запускаете другой клиент РВ параллельно, а он не умеет распределять ресурсы с F@H и простаивает.
17) "Disable highly optimized assembly code". Запретить высокооптимизированный код ассемблера. В силу того, что оптимизированный код намного быстрее обычного, лучше его не отключать, ответив "no". Если будут ошибки и зависания, то для диагностики можно поставить "yes", хотя вряд ли это правильный метод разрешения проблем.
18) "Pause if battery power is being used (useful for laptops)". Приостанавливать вычисления, если используется энергия батареи (полезно для ноутбуков) - Клиент остановит расчет, если компьютер будет использовать энергию батарей (в UPS, ноутбуках). В этих случаях ставьте "yes", иначе "no" (по умолчанию).
19) "Interval, in minutes, beetween checkpoints (3-30)” Интервал в минутах между контрольными точками (3 - 30) - Промежуток времени между контрольными точками, когда клиент сохраняет текущие вычисления. На самом деле, ставить 3 минуты имеет некий смысл только в том случае, если попадаются "быстрые" задания (которые считаются меньше полусуток, в большинстве случаев не имеет смысла ставить меньше 10 минут).
20) "Memory, in MB, to indicate (xxx available) [xxx]” Размер памяти в мегабайтах, который можно занять. Укажите размер вашей оперативной памяти в мегабайтах, например, 512. Если же вы хотите принимать не такие большие задания или, уже впоследствии, вы обнаружили, что систему донимает подкачка, попробуйте поставить меньше. За исключением специальных случаев, я не советую ставить больше наличного размера памяти. В этом случае вероятность торможения обычной работы на системе становится достаточно велика, ну а ставить более 512 Мб просто бессмысленно.
21) "Request work units without deadlines (no/yes) [no]". Запрашивать задания без дедлайна. Что такое дедлайн? Это крайний срок завершения задания, время от скачивания задания до момента, когда результат расчета этого задания станет неактуален. Если не успеть его посчитать до истечения дедлайна, задание просто удаляется и запрашивается новое, очков за старое вы не получите. В связи с тем, что задания без дедлайнов давно уже не выдаются, всегда отвечайте "no"!
22) "Set -advmethods flag always, requesting new advanced scientific cores and/or work units if available". Всегда включать флаг -advmethods для запроса новых расчетных ядер и/или заданий, если таковые доступны - Ставьте "yes" - обычно новые расчетные ядра лучше оптимизированы и в целом приносят больше очков. Правда, это в основном актуально для относительно новых компьютеров (Intel P4 или AMD A64). Эквивалентно установке type=3 в файле client.cfg. Если вы ранее вручную выставили type=4 в конфигурации (то есть, задания для бета-тестеров, также оптимизированные под современные процессоры), не соглашайтесь на это предложение.
23) "Ignore any deadline information (mainly useful if system clock frequently has errors)". Игнорировать информацию о дедлайнах (обычно полезно, если системные часы часто ошибаются). Если имеются проблемы с системными часами, временем на ПК. Лучше конечно, чтобы вы поставили no, так как можете пропустить информацию о том, когда у вашего задания - дедлайн. Ведь ее вам придется отслеживать самому.
24) "Maсhine ID (1-8)". Идентификатор машины (1-8). Используется в случае многопроцессорности, многоядерности (иными словами, для запуска нескольких копий клиента на одной машине). В этом случае придется запускать соответствующее число клиентов с разным Machine ID. То же самое относится и к технологии Hyper-Threading, правда, организаторы просят считать на них в одно ядро. Для того, чтобы сервер мог потом понять, от какого конкретно клиента поступает запрос на получение/отправку задания/результата, сервер использует значение Machine ID.

После того, как параметры установлены, клиент закачивает задание и счётное ядро для него, если ядра ещё нет в папке клиента. Если вы установили клиента как сервис, то самое время выйти из открытого окна консоли и запустить службу из панели управления службами (для доступа к панели можно просто запустить services.msc с помощью команды "Выполнить" в Windows). Найдите там вновь установленную службу, запустите её (если уверены в себе, можете обревизовать настройки перезапуска службы и т. п.). Альтернатива этому - перезагрузить машину, клиент должен начать работать в незаметном невооружённым глазом режиме сервиса.

Графический клиент - настройка под Windows

1-Запустите скачанный файл;
2-Зайдите в настройки и введите в поле “Team Number” число 47191 :
Нажмите правой кнопкой на иконку клиента в трее (рядом с часами), выберите “Configure...”. Откроется окно с тремя закладками.
Первая закладка - свое имя и номер команды, в которой ты хочешь участвовать.
Вторая закладка - “Connection”. Что бы клиент “автоматом” отсылал результаты нужно убрать галочку с “Ask before using network”. Если нужно использовать прокси — поставьте соответствующую галочку.
Третья закладка — настройки графики : здесь настраивается, сколько ресурсов отдавать под визуализацию данных в клиенте.
Настройки “ядра” - аналогичны в консоли.

Ручная правка настроек после установки клиента.
Обратите внимание, что после установки клиента в папке клиента появился файл client.cfg. Открыв его, можно увидеть примерно следующее (курсивом в скобках проставлены сделанные мною комментарии, которые нужно удалить, если будете копировать данные в файл!):

[settings]
username=RU_Hil
(мой ник в проекте, замените своим!)
team=47191
(номер команды TSC! Russia)
asknet=no
(обращение в Интернет для загрузки-выгрузки заданий осуществляется без запроса, иначе yes)
bigpackets=yes
(включает возможноть получения больших по трафику заданий, не означает, что вы обязательно получите именно такое)
machineid=1
(номер клиента на данной машине. Если на одной машине стоит несколько клиентов, при многопроцессорности, каждый из них должен иметь свой ID от 1 до 8)
local=161
(количество сосчитанных заданий - чисто справочное, правка его ни на что не влияет)

[http]
active=no
(прокси не имеется, прямой либо через NAT доступ в Интернет. Ниже настройки прокси-сервера, действующие, если active=yes)
host=localhost 
port=8080
usereg=no
proxy_name=
proxy_passwd=
usepasswd=no

[graphics]
(здесь настройки для графического клиента, можно на них особенно не задерживаться)
subtitle=
drawgap=125
drawtitle=1
saver_mode_enabled=0
saver_runs_core=0
saver_idle_minutes=1
drawlogos=0
logourl=
drawmode=1

[core]
priority=0 
(обычный idle приоритет для счётного ядра)

cpuusage=100 
(снижение этого параметра резервирует часть процессорных ресурсов для других заданий, которые, возможно, имеют "интеллектуальную" систему загрузки процессора и не выполняются вообще, даже хотя приоритет ядра F@H - самый низкий. Обычно трогать не надо. Также можно снизить этот параметр для уменьшения нагрузки на процессор)

disableassembly=no
(не отключать оптимизированный код счётных ядер. Нужно только для гипотетических проблем совместимости с процессорами, на сегодня таковых не имеется, так что оставьте no)
checkpoint=15
(периодичность записи промежуточных результатов в минутах. Часто виснете или перегружаетесь? Можете выставить поменьше. Но лучше побороть это)
ignoredeadlines=no
(обычно задания имеют т.н. "дедлайн", то есть время, после которого их расчёт теряет актуальность. Лучше всего его не достигать, ибо если задание не нужно проекту, то зачем его считать? Но если у вас бывают ошибки системных часов или вы уверены, что хотите посчитать даже просроченное задание, можете поставить yes, чтобы система не удаляла задания, для которых считает истекшим дедлайн).

[power]
battery=no
(актуально только для ноутбуков, можно поставить yes, чтобы не считало во время работы от батарей)

[clienttype]
memory=300
(максимально разрешённое количество оперативной памяти под счётный модуль клиента, при установлении достаточно малой величины влияет на загружаемые задания. По умолчанию имеет смысл ставить равным количеству оперативной памяти или вообще не включать эту строку в файл)

type=4
(предпочтительный тип заданий, где: 
type=0 позволяет назначающему серверу выбрать самостоятельно, 
type=1 чаще других выдаёт неоптимизированные под современные процессоры задания типа Amber, больше вероятность получить малые Gromacs по сравнению с типом 3;
type=2 гипотетически выдаёт (а на самом деле - не выдаёт) задания без дедлайнов;
type=3 выдаёт оптимизированные под SSE, иногда SSE2, SSE3 задания;
type=4 выдаёт задания для команды бета-тестеров (официально его не существует вовсе. Сюда же можно отнести и типы 5, 6, которые дают ещё более непредсказуемые результаты);
Нужно заметить, что относительно однородны только редкие или уже даже вовсе не встречающиеся задания типов AMBER, TINKER, GBGROMACS, у которых для разных серий заданий разброс очков редко превышает 20%. Другие типы, особенно GROMACS, могут различаться по очкам разных серий на некоторых типах процессоров намного сильнее, вплоть до 3 - 4 раз).

nonet=yes 
(настройка ТОЛЬКО для бездедлайновых заданий, если вы не включите type=2, она игнорируется. Даёт возможность загрузить до 10 бездедлайновых заданий в кэш клиента и спокойно их считать даже при перерывах в доступности Интернета или временном отключении серверов. За отсутствием таковых заданий не имеет значения)


Я бы рекомендовал соблюдать осторожность в правке, не копировать строки откуда-то, а править в файле, не затрагивая конца строк, либо вовсе обходиться штатным способом правки настроек: запустить консольный клиент с параметром -configonly (в этом случае вы проходите описанную выше процедуру настройки всех параметров, а после завершения процедуры клиент выходит, и вы можете его запустить снова удобным вам способом) или воспользоваться меню графического клиента через значок в системном трее.

Данный материал подготовлен Hil с использованием трудов Bar3ikk.

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

  Rambler's Top100 Internet Map