Николай Довгий, команда Ukraine (2164), www.distributed.org.ua
Вычислительные ресурсы современных домашних компьютеров используются в лучшем случае на 10–20%, если ПК включается не только для того, чтобы поиграть. При работе в интернет- и офисных приложениях задействуются считаные проценты процессорного времени даже одноядерных CPU, а 3D-акселераторы так и вовсе простаивают, если не использовать Windows Vista с графическим интерфейсом Aero. Соответственно, вложенные в домашний ПК средства оправдывают себя лишь с появлением хорошей игры или при желании заняться творчеством. В поисках того, чем бы загрузить компьютер в свободное от тяжелых задач время, мы обратили внимание на проект Стэнфордского университета Folding@Home. В фундаментальных исследованиях рассчитываются сложнейшие математические модели, что дает отличную возможность в полной мере реализовать излишки вычислительного потенциала персональных компьютеров. Причем не из одного желания заставить ПК трудиться на благо человечества – дополнительное моральное удовлетворение можно получить от участия в национальной команде, укрепляющей престиж родной страны на мировой вычислительной арене. В этом материале мы не только расскажем о том, как сделать свой домаший ПК частью глобального суперкомпьютера, но и постараемся ответить на вопрос, стоит ли тратить электроэнергию на Folding@Home с точки зрения научной ценности результатов данного проекта.
Распределенные вычисления (РВ) – метод решения ресурсоемких задач с помощью множества персональных компьютеров, объединенных в вычислительную сеть. Каждый ПК, участвующий в проекте РВ, получает небольшое задание, обрабатывает его и отправляет результат в исследовательский центр в автоматическом режиме. При такой организации расчетов становится возможным объединенными ресурсами значительного числа обычных домашних или офисных ПК достичь вычислительной мощности суперкомпьютеров. В частности, суммарная производительность более 180 000 процессоров, задействованных в Folding@Home, на текущий момент превышает 210 терафлопс, что выводит данную вычислительную сеть на лидирующие позиции среди мощнейших суперкомпьютеров мира. Конечно, напрямую сравнивать распределенные и централизованные вычислительные «фермы» нельзя, но у Folding@Home в любом случае остается неоспоримое преимущество: стоимость использования 180 000-процессорного суперкомпьютера также распределяется между десятками и сотнями тысяч пользователей, выражаясь в незначительном увеличении счетов за электроэнергию. Сами программы РВ (так называемые клиенты) написаны таким образом, чтобы работать с наиболее низким приоритетом – т. е. они не «мешают» ни пользователю, ни программам и, по сути, подменяют собой процесс System Idle Process («Бездействие системы»).
Если вспомнить историю, первые проекты распределенных вычислений появились около десяти лет назад. Это были SETI@Home (поиск внеземных цивилизаций) и Distributed.net (участники пытаются доказать ненадежность криптоалгоритма RC5 путем прочтения зашифрованного им послания). Позднее возникли более общественно полезные проекты в разных областях науки – математике, физике, биологии. Folding@Home стартовал 1 октября 2000 года, и на сегодня это один из самых популярных (количество участников уже перевалило за 550 тыс.) и прогрессивных проектов распределенных вычислений, о котором немало говорят как специализированные, так и общественные средства массовой информации. Большой интерес вызывает он и у производителей аппаратного обеспечения – ATI и NVIDIA с их графическими процессорами и Sony с ее приставкой PlayStation 3 считают делом чести обеспечить возможность использования своих продуктов в Folding@Home.
Содержание
На сайте folding.stanford.edu/download.html следует выбрать версию клиента для Windows XP или Vista для центрального или графического процессора. Чтобы настроить систему с двумя видеокартами Radeon, необходимо внимательно изучить инструкции по адресу fahinfo.org/gpu/multi_gpu_howto.html. Для обычных клиентов процесс установки консольной версии приведен ниже.
После загрузки клиента копируем файл FAH50х-Console.exe в папку, которая в дальнейшем станет рабочей (например, C:Program FilesFolding). Затем запускаем клиент и отвечаем на вопросы:
Кроме научной ценности Folding@Home, существует еще и «спортивный» интерес для участников данного проекта: за каждое обработанное задание начисляются очки (см. сайты folding.stanford.edu/stats.html и folding.extremeoverclocking.com). Соответственно, чем выше суммарный балл – тем выше место в команде и в проекте в целом. Украинцы присоединились к Folding@Home в 2002 году, а сейчас команда Ukraine (2164) насчитывает полтысячи пользователей, принявших участие в проекте за четыре года, и входит в тридцатку сильнейших по вычислительной мощности среди 2000 команд, по которым ведется статистика.
Если говорить о текущем положении команды Ukraine (2164) в мировой вычислительной табели о рангах, в последние месяцы мы стремительно прогрессируем: войдя в сотню команд по общему количеству заработанных баллов (за всю историю Folding@Home), мы продолжаем уверенно двигаться вперед и сейчас приближаемся к 70-му месту. По среднесуточной производительности уже остались позади команды Польши, Латвии, Литвы, Дании, Норвегии, Греции, Китая, Малайзии, Бразилии, Китая, компаний MSI, AMD, ATI, разработчиков Google, Firefox, Mozilla, Futuremark, Web-сайтов Sharky Extreme, Toms Hardware, XtremeSystems.org, Macrumors.com и многие другие. Впереди – Россия, Португалия, Голландия, ну а на недосягаемой высоте – австралийцы, если говорить о национальных командах. Впрочем, почему недосягаемой? Все возможно, ежели поднапрячься: у самых успешных команд порядка 1000 активных участников, в то время как в нашей таких пока чуть более 150. Учитывая то, что «Домашний ПК» читают свыше 100 тыс. украинцев, можно только представить, как много вычислительных ресурсов у нас остаются незадействованными. Кстати, самый простой способ увеличить результативность – подключить максимум компьютеров – свой домашний, рабочий, ПК друзей. Конечно, можно это сделать и незаметно для пользователей (администраторы сетей поймут, о чем речь), но злоупотреблять служебным положением мы не рекомендуем даже на благо человечества и ради укрепления престижа родной державы.
Помимо альтруизма и патриотизма, есть и другой мотив для участия в Folding@Home: пользователи соревнуются в PPD (количество баллов в сутки), полученных с одной машины. Это очень похоже на состязания в разного рода 3DMark’ах, и «Домашнему ПК» не чужд азарт: редактору хардверного раздела Максиму Потапову удалось установить рекорд – впервые на просторах СНГ преодолеть барьер в 3000 PPD с одной машины на случайно выбранных заданиях. Для этого потребовалось немного разогнать редакционную тестовую систему на базе четырехъядерного Intel Core 2 Extreme QX6700 с видеокартой Sapphire Radeon X1950 XTX и дождаться благоприятного стечения обстоятельств – получения заданий, которые бы быстро просчитывались и щедро вознаграждались. И мы не собираемся останавливаться на достигнутом – вскоре будет добавлена «фреоновая» система охлаждения, и мы, по-видимому, снова обойдем россиян.
Поделиться о своих достижениях на поприще научных вычислений и познакомиться с участниками «национальной сборной» можно на форуме www.distributed.org.ua. Там же опытные «кранчеры» ответят на любые вопросы, касающиеся Folding@Home и других проектов распределенных вычислений.
Несмотря на схожесть вычислительных алгоритмов, время расчетов может существенно отличаться как для разнообразных программных ядер, так и для разных процессоров. В связи с этим нельзя говорить, что какая-то одна архитектура (Pentium 4/Netburst, Pentium M/Core или Athlon XP/64) является наилучшей для Folding@Home в целом – все зависит от конкретного задания. Впрочем, с появлением Core 2 большинство заданий быстрее всего выполняются именно на таких процессорах.
Эффективность выполнения заданий выражается прежде всего в результативности с точки зрения самого проекта – т. е. быстрый просчет отдельных заданий позволяет в кратчайшие сроки построить общую модель сворачивания белка. Кроме того, участники зарабатывают очки для себя и своей команды, однако эти две цели (научная и спортивная) могут конфликтовать: например, при одновременном запуске двух задач на одноядерном процессоре с технологией HyperThreading на 10–30% возрастает показатель PPD (Points Per Day). Но для всего проекта это означает снижение производительности, так как задания вернутся с бoльшей задержкой. С другой стороны, участники, которые выполняют задачи с повышенными требованиями к оперативной памяти и сетевому трафику, получают бонусные баллы.
Размер кэш-памяти не оказывает существенного влияния на скорость выполнения заданий. Так, различие между процессорами Athlon (XP или 64) и аналогичными Sempron с урезанным кэшем не превышает 1–2%. Единственным исключением являются большие задания, которые занимают 100–200 MB в памяти. Не в последнюю очередь именно благодаря своему емкому кэшу в этих задачах весьма хорошо себя зарекомендовали процессоры Pentium M/Core/Core 2. Архитектура Athlon 64 также позволяет быстро справиться с такими заданиями вследствие очень низкой латентности доступу к памяти.
Ядро Gromacs поддерживает оптимизации 3DNow!, SSE, а DGromacs – еще и SSE2, потому процессоры с реализацией этих технологий показывают довольно высокую производительность в Folding@Home. Поскольку эталонная конфигурация, по которой назначаются баллы для заданий, не использует SSE2, то аналогичная машина с SSE2 дает почти двукратный прирост быстродействия.
Большинство владельцев многопроцессорных или многоядерных машин одновременно запускают несколько копий консольного клиента, которые работают независимо друг от друга (по одному клиенту на ядро, используя разные директории).
Запуск N клиентов Folding@Home не обязательно приводит к N-кратному приросту производительности. Так, на двухъядерном Core Duo T2300@1660 MHz с 1 GB памяти DDR2 533 MHz один клиент способен выдавать до 563 баллов в день на заданиях серии 1495 (очень большие, сверх 100 MB в оперативной памяти), тогда как два таких клиента дают до 686 баллов. Для заданий малого калибра, например 2124 (около 4 MB), прирост практически 100% – со 102 до 202 PPD.
Основной целью проекта Folding@Home является моделирование фолдинга – процесса сворачивания белка в трехмерную пространственную структуру. Вспомним школьный курс биологии: все начинается с рибосом – клеточных фабрик по сборке длинных молекул белков из аминокислот в соответствии с «программой», считываемой из ДНК. Для того чтобы такая протеиновая «заготовка» стала функциональным белком, должен произойти процесс сворачивания молекулы в определенную пространственную форму (конформацию).
Процесс сворачивания белка долгое время ставил ученых в тупик, так как число возможных конформаций исчисляется миллионами, но протеин принимает одну и ту же строго определенную для каждого его вида форму. Белки, утратившие свою форму, становятся неработоспособными. Фолдинг происходит в несколько этапов, но наибольший интерес представляет решающая фаза, когда протеин практически мгновенно принимает свою окончательную форму под влиянием условий внешней среды. Расшифровка этого процесса является сложнейшей проблемой в моделировании молекулярной динамики белков, поэтому находится в фокусе особого внимания ученых.
Научный коллектив Folding@Home постоянно совершенствует методы моделирования фолдинга и благодаря вычислительным ресурсам участников проекта занимается непосредственным изучением закономерностей сворачивания белков человеческого организма. Особое внимание уделяется выявлению причин нарушений этого процесса, вызывающих многие тяжелые заболевания. Данные исследования являются фундаментом для разработки новых лекарств и способов лечения многих форм рака, болезней Альцгеймера и Паркинсона, склероза, диабета и др.
Проекту удалось достичь определенных успехов, замеченных и по достоинству оцененных мировым научным сообществом. Успешно завершены эксперименты по изучению влияния молекул воды на сворачиваемость белков. Получены практические результаты в исследовании гена р53, мутации которого вызывают около половины всех известных раковых заболеваний. На счету проекта десятки публикаций в ведущих специализированных журналах (Science, Chemical Physics, Biophysical Journal, Computational Chemistry и др.). Виджай Панде, руководитель проекта, отмечен в 2006 г. престижной наградой Ирвинга Сигала от Protein Society.
Перед проектом Folding@Home стоит еще одна важная задача – разработка усовершенствованных аналогов естественных белков, а также принципиально новых структур – так называемых искусственных «самосборных» протеинов с запрограммированной функциональностью. Появление подобных «протеиновых роботов» приведет к настоящей революции в медицине. Первый шаг в этом направлении сделан проектом в содружестве с Медицинским институтом Ховарда Хьюза при университете Вашингтона, где впервые в истории получен полностью искусственный белок Top7. Вначале была разработана компьютерная модель Top7, просчитанная участниками Folding@Home, которая затем успешно воплотилась в синтетический протеин в лабораторных условиях.
В 2006 г. команда Folding@Home начала изучать сворачиваемость протеинов и пептидов в ограниченном пространстве. Было опубликовано несколько научных статей, и первая из них была посвящена моделированию поведения пептидов в нанотрубках. Исследователи пришли к неожиданному результату: вода, заключенная в ограниченном пространстве, ведет себя иначе, чем ожидалось, и изменяет естественные свойства протеинов. Подробнее об этом и других результатах проекта Folding@Home – на сайте folding.stanford.edu/results.html