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

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

О клиенте

Общие сведения.

Особенности.

Минусы.

О трафике.

Раньше здесь было написано: "Хочу оговорить сразу, что проект этот довольно новый, и клиентское ПО отлажено далеко не до идеального состояния." К счастью, на сегодня этот период в прошлом: версия 2.0 клиента TSC отлажена практически до идеального состояния, и если даже порой нам и не хватает каких-то возможностей, то по крайней мере, на баги жаловаться не приходится никогда.

Тем не менее, клиент имеет несколько особенностей, которые накладывают определённые ограничения в плане его использования и совершенствования.

Начнем с того, что данный проект использует ПО распределенных вычислений компании Sengent (Boca Raton, Флорида, США). В прошлом большие проблемы с доводкой клиента были связаны именно с этим: сотрудники проекта TSC к клиентскому ПО прямого отношения не имели - они занимались только генерацией кандидатов, их проверкой и обслуживанием серверов. К счастью, сейчас ситуация несколько изменилась, и хотя глобальных изменений в ПО организаторы проекта по-прежнему не вносят, мелкие поправки в случае обнаружения ошибок будут внесены оперативно.

Клиент работает вполне надежно. Все проблемы с зависанием системы, изредка встречающиеся у отдельных участников, вызваны переразгоном/недостаточным охлаждением системы, ибо клиент нагружает ее вычислительные мощности очень серьезно - ни одному игровому тесту или реальному приложению, кроме специализированных тестов стабильности и таких же клиентов других проектов, с ним не тягаться. ;)

Кстати, по некоторым сведениям, данное ПО очень понравилось Голубому гиганту (IBM), который собирается продвигать его как стандартное для распределенных вычислений. Так что будущее у этого ПО вырисовывается весьма неплохое.

Важная особенность - ПО построено с использованием Sun Java 2 (используется Java Virtual Machine - виртуальная машина Java от Sun версии не ниже 1.4), что, с одной стороны, имеет несомненный плюс (широкая кроссплатформенность), а с другой - не слишком располагает к высокой производительности из-за особенностей языка Java; эта часть клиента имеет высокие системные требования. 

Однако два главных исполняемых модуля программы (занимающие обычно 99% времени и 70% всей памяти, выделенной клиенту) написаны на Microsoft Visual C, C++, что является если не лучшим, то неплохим выбором в плане системных требований и скорости.

Сам по себе клиент (так для краткости я буду называть клиентское ПО в дальнейшем) для Windows (есть клиенты и под другие ОС - Linux, MacOS, Solaris, но в команде довольно мало участников, их использующих, поэтому урезанное описание имеется только для клиента под Linux) выглядит очень красиво и даже, не побоюсь сказать, элегантно и стильно (точнее, так выглядит его графическая оболочка, написанная как раз на Java):

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

Во-первых, установочный комплект клиента для Windows занимает аж 15,5 Мб, причем 10 из них - та самая виртуальная машина Java. Правда, никто не мешает Вам скачать урезанную версию клиента без Java - она "весит" 5,5 Мб, но - увы и увы! - работает только в том случае, если у вас имеется установленная виртуальная машина Sun Java 2 версии 1.4.0 или выше. Каковая поставляется с последними (полными, "with Java") версиями браузера Opera, а также может быть скачана с соответствующего сайта http://java.sun.com. 

(На мой взгляд, кстати, выгоднее иметь отдельную Java VM, а клиента качать урезанного - отдельная машина устанавливается и годится для любых приложений, использующих Java, а вот та, что поставляется с клиентом, не устанавливается, и используется только им самим. Однако имейте в виду: самые последние версии Sun Java 2 SE 1.4.2. и выше не устанавливаются на Windows 2000 без SP2 (впрочем, можно просто скачать версию 1.4.0), к тому же клиент TSC с включённым Java универсален для установки на любых машинах. - Hil).

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

Теперь поговорим об оперативной памяти, которой тоже приходится платить за установку клиента TSC. Помимо постоянно занятых ~20-25 Мб под основной процесс клиента d2ol.exe (который, впрочем, как правило, легко залезает в файл подкачки, так как частого обращения не требует), во время счета клиентом попеременно автоматически запускаются две разные программы - GridWin.exe (~5% времени) и DockWin.exe (~95% времени). И если первая занимает достаточно скромный объем оперативной памяти (около 16 Мб), то вторая хочет уже от 45 до 55 Мб, так что на ПК с объемом памяти меньше 128 Мб устанавливать клиента просто бессмысленно, а если памяти менее 256 Мб, то клиент может создавать помехи основной работе (хотя это сильно зависит от вашей работы). На ПК с объемом памяти 256 МБ присутствие клиента уже практически не ощущается.

Еще раз подчеркиваю, что на скорость работы других приложений клиент не влияет совсем. Многие из участников нашей команды замеряли, например, показания тестов 3D Mark - результаты с запущенным и не запущенным клиентом были практически одинаковыми (в пределах погрешности измерения). В играх также никто не замечал задержек или снижения fps, про другие, не столь критичные к ресурсам процессора, программы и речь не идёт.

Теперь об одном из главных вопросов, связанных с распределенными вычислениями - о трафике, который создает клиент во время своей работы (для обладателей выделенных линий и т. п. соединений), или времени, которое приходится выделять под загрузку и отправку данных (при работе через dial-up).

Входящий трафик относительно небольшой - по 3-4 кб на кандидата, что было достигнуто во второй версии клиента за счёт применения архивации. Системе класса Athlon 2500+ на сутки нужно в среднем 100 кандидатов при круглосуточной работе, то есть, максимум 400 кб входящего трафика в день (формально, это всего пара минут на приличном модемном соединении; но с учётом разных факторов - до 5 минут), требования прочих систем можно вычислить, исходя из соотношения реальных частот и среднесуточного времени работы с названным. 

С Pentium IV всё еще проще - считают они медленнее, хотя HyperThreading и позволяет ускорить процесс на 30% (ценою запуска второй копии клиента из другой папки, с отдельной очередью заданий и удвоенным расходом памяти), но до уровня Athlon XP соответствующего рейтинга они и с применением этой технологии не дотягивают, а без неё - и подавно.

Исходящий трафик побольше - по 5-7 кб на кандидата, или, при тех же темпах счёта, 500 - 700 кб в сутки на клиента. Обычно, впрочем, оплачивается только входящий трафик (если Ваш компьютер - не вебсайт ;)), ибо исходящий - это контент, за который провайдер деньги брать не должен (если это не жадные провайдеры GPRS; ведь за трафик платит принимающая сторона). Ну а если ваш - берёт, тогда самое время задуматься о его смене на менее жадного. ;) А если отправлять результаты по модему, это пока всё (в оба направления) укладывается в 8 - 10 минут в сутки.

Если сравнить с проектом SETI@Home (в котором основатели нашей команды в своё время тоже принимали участие), то там было значительно хуже, поскольку один лишь входящий трафик на системе того же класса там достигал ~2 - 2,4 Мб в сутки.

Разумеется, во время работы клиента постоянное соединение с Internet не нужно. Для этого существует очередь заданий, которую лучше держать достаточно длинной на случай возникновения проблем с сервером или соединением Интернет. По старой памяти мы (старожилы :) ориентируемся на размер очереди 500 кандидатов, хотя клиент позволяет выставить и 2 000. 

Теперь, получив предварительную информацию о клиентском ПО и оценив его достоинства и недостатки, Вы можете перейти к руководству по установке самого клиента (пока только для Windows и Linux).