TSC! Russia. Получаем максимум в F@H!

Итак - Вы уверенно пробиваетесь к вершине в коммандном зачете, регулярно светитесь в поздравительных открытках, с надеждой участвуете в розыграше кулера. FAQ зачитан до дыр, проект изучен, косточки докторов перемолоты все до единой. Но чего-то не хватает - то ли кранчинг скатывается к пресной рутине, то ли слишком все просто, динамики, что ли, не хватает. Именно для Вас и составлен этот обзор дополнительных возможностей и свойств, которые позволят Вам получить еще большее удовольствие от участия в F@H.

Ни для кого не является секретом, что чем больше очков падает в копилку команды тем лучше. Поэтому вопрос который волнует многих заключается в том как бы поднять производительность своих нод. Как всегда, решение может быть экстенсивным и интенсивным.

Экстенсивное решение заключается в:

1. Увеличении числа задействованных в проекте компьютеров.
2. Модернизации (апгрейде) системы на более мощную.

К сожалению такой подход хотя и сулит легкое и быстрое увеличение производительности, на деле, для большинства членов команды оказывается сложно реализуемым, а также финансово затратным. Так, взять дополнительные компьютеры может быть просто неоткуда, а деньги на покупку мощного проца на дороге не валяются. Однако, тем кто решит идти по этому пути можно дать несколько рекомендаций...

Во первых, ночью компьютеры Ваших сотрудников им, как правило, не нужны, поэтому, если не опаздывать на работу, их можно оставлять включенными на ночь, а утром выключать, предварительно скинув насчитанное в сетку или на флэшку. Если ранние вставания не для Вас можно поступить проще, используя диспетчер, такой как nnCron, который сам будет выключать компьютеры до прихода их владельцев. Во вторых, сравнительно небольшое количество особо патриотично настроенных сотрудников способно сподвигнуться прийти на работу в выходные или праздничные дни - это время можно с успехом использовать на благо проекта. В третьих, установка клиента в виде сервиса позволит Вам эксплуатировать клиентскую программу на чужом компьютере в сравнительно невидимом виде (в диспетчере задач его все равно будет видно, однако немного людей обратят на это внимание). Можно привлекать к проекту компьютеры друзей, родственников, знакомых, договориться с сетевым администратором на работе (или еще лучше - стать им) - вариантов множество, главное помнить что чем больше компьютеров, тем лучше проекту. Кстати, Вы же помните, что в проекте не обязательно использовать только компьютеры подключенные к Интернет?

Касательно модернизации можно сказать лишь то, что чем выше тактовая частота у процессора тем быстрее он будет считать, наличие таких расширений как, например, SSE-2 может существенно ускорить подсчет заданий некоторыми ядрами, наличие технологии Hyper Threading дает прирост производительности в 10-20 процентов. Ну и, наконец, двухядерные процессоры позволяют считать практически с удвоенной скоростью. Так как все эти фичи несомненно пригодятся Вам и без участия в F@H, вероятно стоит учитывать это при планировании следующего апгрейда.

Интенсивное же решение блещет множеством вариантов на любой вкус:

1. Увеличение времени работы клиента.

Логично - чем больше времени в день работает клиент, тем больше он насчитает. Так что оптимальным представляется оставлять рабочие (а владельцам тихих кулеров или отдельных кабинетов и домашние) компьютеры на ночь. Перед этим рекомендуется сделать бэкап папки с клиентом на случай если пропадет электричество чтобы ничего не случилось с заданием. Пожаробезопасность этого метода все еще дискутируется, однако в случае отсутствия проблем с проводкой и наличия качественного блока питания сгореть ничего не должно. Дабы не будоражить уборщиц и сотрудников на работе имеет смысл выключать монитор, гасить клавишу NumLock, а также, возможно присобачить желтую липкую бумажку с какой-либо невинной надписью на индикатор включенного состояния компьютера - секретность еще никому не мешала. Кроме того имеет смысл удостовериться, что Ваш компьютер постоянно загружен расчетами F@H. То есть, если Вы уходя на работу видите что Вашей оффлайновой домашней машине осталось считать лишь два часа, а вернетесь Вы аж через восемь - тогда имеет смысл запустить на исполнение другое задание дабы с умом потратить эту разницу в шесть часов. Для этих целей всегда хорошо иметь в запасе бездедлайновую задачу. Досчитать же первое задание можно вернувшись с работы. Обеспечив постоянную загрузку своего компьютера Вы будете вознаграждены существенно увеличившимися сливами. Использование этого метода позволяет более чем в три раза увеличить производительность - must have для настоящего кранчера!

2. Разгон процессора.

Математические вычисления прямо коррелируют с вычислительной мощностью центрального процессора. Таким образом получение дополнительных мегагерц выльется в увеличенную производительность. Однако следует учитывать, что в клиент встроена мощная система определения достоверности результатов и переразгон или нестабильность системы может приводить к аварийному завершению заданий (Early Unit End). За посчитанный кусочек очки Вам насчитают, однако, в целом, это тормозит проект, неэффективно расходует трафик и добавляет Вам мороки, так что лучше разгоном не злоупотреблять! Ну и, разумеется, разгоняя следует понимать что Вы делаете и не забывать о дополнительном охлаждении. Больше про разгон можно узнать на известном сайте http://forums.overclockers.ru/. Эффективность данного метода прямо пропорциональна значению достигнутого разгона и обратно пропорциональна степени кривизны рук.

3. Минимизация загрузки процессора.

Чем меньше загружен процессор, тем больше его вычислительной мощности может быть использовано клиентом. Таким образом, в идеале, максимальная производительность достигается на чистой системе, с выгруженными резидентными программами, в запертом помещении ключи от которого давно утеряны. Разумеется это недостижимо - вряд ли кто-то будет покупать компьютер исключительно для расчетов F@H, однако парочкой советов все же стоит воспользоваться: перегрузите машину перед тем как уходить с работы (на работу, в отпуск, в загул - в общем перед уходом на длительный период времени); выгрузите из памяти ненужные резидентные программы; отключите навороченные скринсейверы; не стоит считать F@H на машине круглосуточно занятой индексированием баз данных или кодированием видео - эти процессы крайне процессорозависимы и клиенту мало чего останется. По опыту автора всего навсего активная работа с Интернет на Селероне 1800 оборудованном 512Мб оперативной памяти замедляет подсчет задания в два-три раза! И да - не забывайте запускать клиента!

4. Использование преимуществ Вашей платформы.

Не секрет, что разные задания с разной эффективностью считаются на разных процессорах. И грех этим не воспользоваться! Так Атлоны исключительно хорошо считают Тинкеры на которых Пни еле плетутся. В свою очередь Пентиумы 4 демонстрируют просто чудеса при работе с Дабл Громаксами. И те и другие показывают прекрасную производительность на заданиях построенных на ядре QMD. Для того чтобы определиться какие задачи лучше идут на именно Вашей платформе имеет смысл вести свою статистику, или воспользоваться чужой. Найти ее можно на сайте другой российской дружелюбной команды (http://distributed.ru/wiki/pro:fah:workunits) или в соответствующей ветке форума транснациональной команды распределенных вычислений TSC! Russia.

Регулировать какие задания к Вам приходят можно за счет изменения параметра type в разделе [clienttype] файла конфигурации client.cfg. Этот параметр может принимать следующие значения:

0 - по умолчанию
1 - Amber
2 - Tinker
3 - Gromacs/QMD
4 - GBGromacs/DGromacs

Правда стоит учитывать, что в случае если искомых заданий нет Вам могут прийти задания абсолютно не соответствующие значению type. Ничего не поделаешь - такова натура Стенфордских докторов.

Другим способом отсева непроизводительных заданий может быть внесение в список запрещенных IP адресов серверов с которых назначаются эти задания. Полный список IP и соответствующих им задач можно найти здесь. Правда, как показывает практика, клиент может неделю пытаться ломиться на запрещенный сервер, однако по истечении этого срока начнет обращаться на другой. Натренировав таким образом клиентов можно добиться практически полного исключения неэффективного использования Ваших вычислительных ресурсов. По некоторым сведениям более быстрому обучению клиента может способствовать удаление ветки реестра HKEY_LOCAL_MACHINE\SOFTWARE\PandeGroup. Тогда клиент при следующем запуске получит новый UserID и, возможно, будет обращаться уже на другой сервер.

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

5. Бэкап - куда же без него.

Как бы хорошо не считала Ваша машина, какие бы толстые задания на нее не сыпались - от произвола Чубайса, козней Митника или нестабильной работы продукции Гейтса никто не застрахован. Нет ничего хуже чем потерять посчитанное на 90% задание весом в пол тыщи очков. И пусть создание резервных копий лишь косвенно можно отнести к средству повышения производительности Вашего компьютера, тем не менее сохранить существующую производительность оно позволяет. Для бэкапа просто скопируйте папку с клиентом в другое место, выключать клиент при этом не обязательно (ядра и самого клиента можно не копировать). Это позволит Вам откатиться назад в случае переразгона, черезмерного усердия уборщиц умудряющихся нажимать на кнопку Power протирая пыль, скачков напряжения и т.п. Кроме того, создание бэкапов можно осуществлять с помощью FahMF

Эффективность данного метода зависит от Вашей везучести и организованности, однако нервы он сохраняет, поверьте!

6. Грамотное использование клиента.

Как и в случае с бэкапом производительности данный метод не добавит, однако от ненужных потрясений сбережет. Как Вы знаете для каждого UserID может быть 8 значений MachineID. Они предусмотрены для использования на многоядерных или многопроцессорных машинах. Также их можно использовать для кормежки оффлайнового компьютера. И в них очень легко запутаться. Поэтому лучше сразу сделайте себе 8 клиентов с MachineID от 1 до 8 и больше никогда этот параметр не меняйте.

Компьютер подключеный к Интернет
(MachineID1) сам считает
(MachineID2)<------задание-------> Оффлайн-комп (MachineID2)
(MachineID3)<------задание-------> Оффлайн-комп (MachineID3)
(MachineID4)<------задание-------> Оффлайн-комп (MachineID4)

Поясню - предположим Вы сделали копию клиента дабы унести задание на домашний компьютер и забыли поменять MachineID. Таким образом, когда Вы слили второе задание на тот же MachineID сервер может решить что с первой задачей что-то случилось и выслать ее повторно. Результат - Вы дважды посчитаете одну и ту же задачу, однако зачтут Вам ее лишь один раз. Налицо падение производительности в два раза. Возможен и другой вариант - сервер может выдать новое задание, однако на этот раз первую задачу он больше не будет считать закрепленной за Вашим первым компьютером и выдаст кому-либо еще. Если этот кто-либо сможет посчитать ее быстрее Вас, то Вам она не зачтется, так как она уже зачлась ему. Или наоборот она не зачтется ему... Опять таки - падение производительности или же прямой вред другому участнику проекта. Поэтому играть со значениями MachineID нужно исключительно осторожно и детально понимая что Вы делаете.

Легко также запутаться, если Вы заливаете задание не на том компьютере на котором его получили (точнее не на то значение UserID). С проблемой повторной выдачи заданий или дублированием их выдачи сталкивается множество участников проекта, при этом теряеться драгоценное машинное время и замедляеться общее развитие проекта - будьте исключительно осторожны и разочарование будет обходить Вас стороной. Не питая доверия к горе-програмистам написавшим клиент с таким количеством дырок, а также памятуя о тотальном нежелании докторов что-либо менять либо признавать свои ошибки рекомендуется самостоятельно фиксировать, например в виде экселовской таблички, задания, даты, MachineID, UserID, ppd и прочую полезную информацию. Это поможет избежать потери производительности и даст Вам более четкое представление о том как, собственно, функционирует проект.

При некорректном завершени ядра (пропажа электричества и т.п.) клиент может не всегда включать поддержку SSE что тормозит работу в два-три раза. Поэтому, дабы не терять вожделенный ppd, рекомендуеться самостоятельно убедиться, что в логе присутствует строка вида
[14:59:31] Extra SSE boost OK.
В случае если такой строки нет просто перезапустите клиента и убедитесь что она появилась. Также не мешает убедиться что ваш процессор поддерживает этот самый SSE и что ядро данной задачи способно использовать эти инструкции (Amber и Tinker их не поддерживают). ;-)

Не рекомендуется выключать клиента и его ядро вручную через Диспетчер задач! Это, зачастую, приводит к потере задания. Если Вам необходимо выключить клиента достаточно нажать CTRL Break. Если же клиент установлен в виде сервиса необходимо остановить его через
Панель Управления\Администрирование\Службы.
Не забудьте потом его включить, иначе он так и останется выключенным.

Также рекомендуется использовать файловую систему NTFS - количество случаев "слета" задания на ней значительно меньше чем на FAT.

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

Суммируя же следует сказать что только органичное объединение всех упомянутых здесь методов повышения производительности способно дать Вам возможность заслуженно заявить: "Я выжал из своей системы все! Я кранчер!" Удачи Вам в разгоне и пусть не пропадут наши труды всуе...

Вашими комментариями и пожеланиями можно поделиться здесь.
Telegram-канал @overclockers_news - это удобный способ следить за новыми материалами на сайте. С картинками, расширенными описаниями и без рекламы.
Оценитe материал

Возможно вас заинтересует

Популярные новости

Сейчас обсуждают