TSC! Russia    
Присоединяйтесь к команде распределенных вычислений TSC! Russia!
о команде | новости | ссылки | файлы | форум команды
наши герои | наши даты | наши достижения

Проект Folding@Home | Другие проекты

Настройка и оптимизация

Как избавиться от иконки клиента в трее?

Ключи controller:cli, controller:java 

Как установить две ноды на один ПК?

Как заставить считать неподключенный к Интернету компьютер?

Как изменить внешний вид графической оболочки?

Какой компьютер для расчетов самый быстрый?

Как изменить настройки клиента вручную (без графического клиента)?

Будет ли толк от технологии Intel HyperThreading?

Чем занять процессор при простое клиента TSC?

Как просмотреть кандидатов в очереди, не дожидаясь их попадания в "молотилку" клиента?

Если нужна массовая установка клиента

Итак, клиент работает, кандидаты считаются, отправляются на сервер, Вы продвигаетесь вверх по турнирной таблице. Однако хочется чего-нибудь ещё? Пожалуйста! ;)

1. Хотите полностью избавиться от иконки клиента в трее, чтобы его вообще не было видно? Ну, в списке процессов, все, конечно, останется как было, но это уж убрать никак нельзя (увы, в новой версии клиента переименовать d2ol.exe в какой-нибудь svchost.exe стало невозможно). 
Для того, чтобы сделать работу клиента более незаметной, надо запускать его с ключом controller:file в командной строке, т.е. путь в ярлыке должен быть, например, "C:\Program Files\CommunityTSC\TSC\D2OL.exe" controller:file. Этот ярлык можно положить в автозагрузку, или, что ещё лучше, можно записать эту строку в реестр вот сюда (HKEY_LOCAL_MACHINE\Run). Тогда все будет запускаться и работать в режиме полной невидимости.
При использовании этого ключа всё управление клиентом осуществляется путём внесения несложных изменений в файл, постоянно читаемый программой (это файл control.prp в каталоге TSC). В нём всего три изменяемых параметра, позволяющие выгрузить клиента, приостановить/возобновить расчёты без выгрузки и показать/убрать GUI. В этом режиме "прибивать" процессы клиента придется, вручную редактируя этот файл (или подменяя его заранее заготовленными "шаблонами", что можно автоматизировать с помощью bat-файлов) или через Диспетчер задач. В последнем случае достаточно снять процесс "d2ol.exe", все остальные закроются сами собой.

2. Есть и ещё два документированных ключа клиента - controller:cli (запуск клиента с текстовым окном Java VM) - в обычной работе он не пригодится; и controller:java (при этом вместо привычного значка в трее запускается "облегченное" графическое окно клиента, которое, кстати, установлено по умолчанию, например, в версии клиента для Solaris). Можете его попробовать ради интереса, но в версии 2.0., имеющей собственную страницу статистики, всякая необходимость в этом отпала.

3. Есть вариант с установкой двух нод на один ПК (проверен участником команды vagrant). Смысл - в нагрузке второго процессора в двухпроцессорных системах.
Просто установите вторую ноду обычным способом, но в другую директорию и запустите в нужном Вам режиме. Переименовывать файл D2OL.exe больше нельзя, но и без переименования его можно запускать в нескольких копиях из разных папок. 

4. Заставить считать не подключенный к Интернету компьютер не так просто, как в Find-a-Drug, но всё же достаточно просто. Есть два необходимых условия: хотя бы одна система должна иметь доступ в Интернет (и на ней нужно или установить, или хотя бы иметь возможность запускать клиента), и нужно средство для переноски информации на неподключенный компьютер. При 1-2 компьютерах можно использовать и дискеты, но вообще лучше что-нибудь типа flash-диска на USB, CD-RW и т.д. - при еженедельном обновлении на каждую приличную по мощности ноду на этом носителе нужно иметь хотя бы по 3-5 Мб свободного места для переноски данных.

Внимание! При использовании предложенных ниже способов нужно иметь в виду, что все операции, связанные с удалением, переименованием, перезаписыванием и обновлением файлов клиента вручную необходимо делать только после его выгрузки!

Способ первый (автор - Doors4ever).  
Для этого способа необходима внимательность и программа для резервного копирования. Я использовал Windows Backup, поскольку она входит в стандартную поставку WinXP, а для Win9x или Win3.х её можно установить с инсталляционного диска, находится она в разделе "Система". 
Последовательность действий (не пугайтесь столь подробного, а потому длинного описания, на самом деле процесс весьма несложен! - прим. Wilde):

5.1. Сначала устанавливаем на компьютер № 1 (с доступом в Интернет) вторую ноду. Для этого ничего не нужно удалять и переносить, достаточно установить программу в директорию, отличную от первой, предположим, TSC2. 
5.2. Когда программа предложит ввести адрес почты, вырубаем её и делаем полную копию папки TSC2 c помощью Windows Backup. Это очень просто и в результате получаем полную резервную копию свежеустановленной программы, назовём её TSC2.bkf. Она нам понадобится только для сравнения. 
5.3. Запускаем ноду № 2, настраиваем, регистрируем, качаем нужное количество кандидатов и вырубаем опять. Не увлекайтесь большим количеством кандидатов, от этого зависит объём переносимой информации. Для начала оставьте значение по умолчанию 50 или установите около 100, а потом разберётесь и подберёте оптимальное количество. 
5.4. Опять делаем резервную копию папки TSC2 в файл TSC2.bkf, но теперь просим программу сохранить не все файлы (режим Normal), а только те, которые изменились или добавились (режим Incremental). Важно: обязательно включите опцию "Заменять данные" (по умолчанию стоит "Добавлять"), чтобы программа создала резервную копию только тех файлов, которые изменились или добавились по сравнению с начальным вариантом. 
5.5. Теперь тащим эту резервную копию и инсталляшку программы на неподключенный компьютер № 2. Устанавливаем программу, естественно, без регистрации, запускаем Windows Backup и просим восстановить TSC2.bkf. Утилита добавляет к первоначальной чистой копии все данные, которые мы получили на компьютере № 1 при подключении к Интернету. В результате получаем полностью готовую к работе программу с набором данных для подсчёта. 
5.6. Первым делом опять делаем полную копию папки TSC2 и начинаем считать. Когда всё посчитается, повторяем пункт 4 и получаем только те файлы, которые изменились или добавились по сравнению с вариантом до начала счёта. Нам осталось только восстановить эти файлы на комп № 1 и получить на нём программу, закончившую считать. Подключаемся к Интернету, сливаем посчитанное, закачиваем следующую порцию кандидатов и несём на компьютер № 2 уже знакомым нам способом. Циклы можно повторять сколько угодно. Удачи!

Способ второй, специально оптимизированный для нескольких компьютеров без подключения к Интернету (автор - Hil). Он также не требует проверки того, что именно изменилось, и, соответственно, более тонкого освоения программ типа Backup, а также не будет проблем типа "ой, я забыл сделать резервную копию!".
Как стало известно уже после публикации первого способа, за входящую очередь отвечают различного рода файлы (и подкаталоги) в каталоге CommunityTSC\TSC\res, которые занимают гораздо меньше места, чем весь клиент целиком (в сжатом виде с внушительной очередью в 1000 кандидатов, которой любой системе будет довольно на неделю, - порядка 3,5 - 4 Мб), а "посторонних" файлов в этом подкаталоге немного. Поэтому можно поступить несколько проще. Итак,

5.7. Устанавливаем на подключенном к Интернету компьютере новую ноду в иной, чем по умолчанию, каталог, например, такой: C:\Program Files\CommunityTSC2 (можно также использовать и основную счётную ноду, но это будет приводить к частому сбросу у неё всей очереди заданий, то есть, к лишнему трафику).
Если не имеющих подключения компьютеров у Вас несколько, и Вы принципиально хотите иметь каждый из них в статистике отдельно, то после регистрации ноды и выгрузки клиента переименовываем файл node.prp в node1.prp (или там vanyatka.prp, и т. п. - как Вам будет удобнее). Теперь перезапуск клиента приведет к новой регистрации и созданию нового node.prp, который нужно снова будет переименовать, теперь уже в node2.prp (mama_home.prp), и так далее, столько раз, сколько компьютеров нужно обеспечить работой в оффлайне. ;) Последний файл также переименуйте, после чего скопируйте любой из .prp в node.prp. 
На каждый из неподключенных к Интернету компов копируем прямо эту, чистую ноду, или устанавливаем новую на месте, но не регистрируем (да и не получится ;), а вместо этого копируем нужный файл .prp в node.prp на соответствующей ноде. На этом первый этап закончен. Если нод нужно очень много, можно попробовать воспользоваться специальным методом установки.
5.8. Закачиваем на базовом компьютере новенькую очередь для каждой неподключенной ноды. При этом закачка обязательно производится с очисткой имеющейся очереди заданий - методом flush all tasks. 
Перед закачкой можно восстановить файл node.prp от соответствующей ноды, используя ранее переименованные файлы. Текущая версия клиента этого не требует (важен номер только при сливе, а не при закачке), но в перспективе то, что закачивала одна нода, а сливала другая, может показаться странным, да и вдруг в следующую версию будет встроено ограничение?
Для автоматизации процедуры "подмены ноды" лучше всего создать bat-файлы (свой на каждую ноду, например, node1.bat, node2.bat и т.д.) - это делает процесс куда проще. В них помещаем следующую строку:

copy /Y "c:\Program Files\CommunityTSC2\TSC\res\node1.prp" "c:\Program Files\CommunityTSC2\TSC\res\node.prp"

Вместо node1.prp подставляем имя соответствующего файла для каждой ноды, а путь к программе указываем тот, который выбрали в п. 5.7. И тогда времени отнимать этот процесс практически не будет. Не забывайте только выгружать клиента перед запуском bat-файла. 
Пока "качальный" клиент загружает очереди, основного можно выгрузить, чтобы под ногами - в трее :) - не мешался. После закачки очереди архивируем и копируем на сменный носитель подкаталог res каталога TSC со всем его содержимым, и если нужно закачать ещё одну очередь,  повторяем процесс с начала пункта.
5.9. Переносим архивы с подключенного компьютера на компьютеры без подключения. Перед их распаковкой на каждом неподключенном компьютере архивируем на сменный носитель файл resultQueue.dat (его мы позже отнесём на базовый компьютер), после чего  распаковываем принесённый архив с каталогом res и новенькой входящей очередью (исходящая затирается, но после копирования resultQueue.dat это уже неважно).
5.10. Восстанавливаем файлы resultQueue.dat и соответствующий ему node.prp на базовом компьютере и вручную сбрасываем данные на сервер. Можно сразу после этого провести закачку (со сбросом всей очереди!) и сохранить свеженькую очередь. Осталось повторить процедуру для других неподключенных нод. 
Цикл завершён.

6. Если Вас чем-то не устраивает внешний вид графической оболочки, ее можно изменить по своему вкусу. Вот здесь ("...CommunityTSC\TSC\res\data\gui\img") лежат все картинки, в ней использующиеся. Кстати, вот этот файл ("...CommunityTSC\TSC\res\data\gui\img\usa.gif") можно изменить и подставить вместо американского флага российский. :) Один из участников нашей команды - Magneto aka Pilot сделал для всех три варианта российского флага (огромное ему за это спасибо!) - статический (), анимированный () и анимированный с прозрачным фоном (). Выбирайте на Ваш вкус! Для того, чтобы увидеть этот флаг в графическом клиенте, нажмите на "пустое место" в правом нижнем углу. :) Внимание! Анимация будет работать только вместе с вращением кандидата - вручную или автоматически.

7. Теперь о том, какая платформа для расчетов самая быстрая, и что вообще влияет на скорость расчета. По результатам исследования производительности разнообразных систем вот этой утилитой (расчет одного простейшего кандидата) было выяснено, что лучшим процессором для TSC является AMD Athlon. К примеру, на Athlon XP с частотой около 1.8 ГГц (что соответствует рейтингу 2200+) скорость расчета тестового кандидата стабильно меньше 200 секунд, тогда как при использовании Pentium 4 с частотами порядка 2.8 ГГц - так же стабильно больше 200 секунд. К сожалению, с последними версиями клиента эта программа больше не работает.

С помощью той же программы мы выяснили, что на скорость расчета кандидатов практически не влияют ни частота системной шины, ни частота памяти, ни её тип и размер кэша второго уровня на процессоре. Влияет, конечно, объем памяти, в том смысле, что при менее, чем 128 МБ клиента лучше не устанавливать совсем, ведь его постоянное потребление памяти в процессе счёта даже после последнего апдейта составляет от 50 до 55 Мб. ;)

8. Если хочется автоматизировать настройки клиента или устанавливать их вручную, скажем, по сети, то практически все настройки, доступные через его меню, можно изменить вручную (без открытия GUI). Это делается в файлах general.prp, network.prp и update.prp в директории "...\CommunityTSC\TSC\res" (разобраться с ними несложно при наличии базовых знаний "компьютерного английского"). 
Остальные файлы в этой директории лучше не трогать совсем. Толку не будет, а вот покалечить ноду можно запросто! Ещё раз напоминаю, что файл node.prp лучше всего сохранить в надежном месте, в худшем случае создать резервную копию в той же папке.
Перед редактированием (подменой) этих файлов клиента потребуется выгрузить (в режиме controller:file это можно сделать даже по сети при наличии прав записи в папки клиента).

9. Одной копии клиента толку от новой технологии Intel - HyperThreading - не будет, поскольку основные исполняемые файлы (GridWin.exe и DockWin.exe) состоят из одного единственного потока (thread). Однако, если запустить их две одновременно, тогда средняя скорость счета заметно увеличится (на 25-30%).

10. Участник нашей команды Asteroid написал просто превосходную утилиту TSCView, которая показывает ещё не посчитанных кандидатов в очереди, позволяя тем самым найти что-нибудь интересное (см. наш "зверинец"), да и вообще - просто посмотреть на различные молекулы химических соединений, не дожидаясь, пока они попадут на "молотилку" клиента. Еще одно достоинство утилиты - она занимает всего 108 кб в архиве!

11. И напоследок, маленький совет от Hil: в случаях, когда требуется "пакетная" установка нод на многих системах, можно вместо стандартной установки распаковать подготовленный заранее архив незарегистрированной ноды с "пустой" очередью заданий (в любую папку, но логический диск у исходной и новой установки обязательно должен быть тот же!). Можно сделать архив и только что зарегистрированной "пустой" ноды, если не хотите, чтобы новые ноды отражались в статистике - тогда "установка" будет ещё проще. Хорошо упакованный RAR'ом "чистый" архив клиента для Windows, полностью готового к регистрации/закачке кандидатов, имеет размер порядка 11,8 Мб (если несколько сот килобайт для Вас критичны ;)

При создании архива можно добавить SFX-модуль, прописав нужный путь для установки прямо в него. В итоге установка будет ещё немного быстрее, а архив увеличится всего на 50 - 70 кб. 

Если у Вас в архиве незарегистрированная нода, при наличии соединения с Интернетом можно запустить из скопированного клиента файл d2ol.exe, чтобы зарегистрировать новую ноду (профессионалы наверняка смогут ещё усовершенствовать этот процесс, добавив в SFX автозапуск d2ol.exe после распаковки; ещё можно добавить туда импорт ключа автозапуска клиента (как вариант, такого) в реестр, тут фантазия безгранична!), ну а если соединения нет - нужно скопировать файл node.prp из соответствующей папки зарегистрированного клиента на другом компьютере (если Вам хочется иметь в статистике точное и правдивое количество нод, способ создания многочисленных файлов node.prp можно найти тут). 

В принципе этот метод ещё можно совершенствовать, комбинируя его с методикой работы в оффлайне, описанной выше.

 

Надеюсь, что общими усилиями этот раздел будет все время пополняться. Пишите нашему капитану, а ещё лучше - заходите в соответствующую ветку нашего форума!