ОБЗОР

Проект Folding@Home (folding. stanford.edu) развивается учеными Стэнфордского университета с 2000 г. В его рамках изучается процесс сворачивания белков, о котором исследователи всего мира имеют смутное представление. Известно лишь, что белок перед тем, как приступить к одной из множества своих функций, быстро собирает сам себя в устойчивую трехмерную структуру. Если удастся понять, как это происходит , то появится возможность излечения множества болезней (например, рака), связанных с неверной самосборкой белка, а также создания новых материалов с удивительными характеристиками. Но действующие модели процесса сворачивания требуют огромных вычислительных ресурсов: микросекунды белковой сборки разворачиваются в десятки лет счета на однопроцессорном компьютере.

Стэнфордская группа разработала модель формирования белка, пригодную к реализации в grid-сети. Любой желающий может скачать к себе на ПК клиентскую программу, которая задействует простаивающие ресурсы процессора для выполнения кусочка счета и отправки его на сервер исследователей. Такой подход оправдал себя уже в первые годы - успешно завершены первые эксперименты по моделированию сборки коротких белков. Реальное время 10 мкс было "проиграно" в сети за несколько месяцев. Ранее же удавалось смоделировать лишь доли одной микросекунды.

К проекту в последнее время активно привлекаются ресурсы пользователей графических плат Radeon фирмы ATI (ati.amd.com). При поддержке программистов компании PeakStream (www.peakstreaminc.com) она внедрила в свои чипы технологию Stream Computing, которая как раз и ориентирована на коллективное решение задач, требующих значительных ресурсов. По оценкам инженеров ATI, с помощью Stream Computing расчеты ускоряются в десятки раз. Эти оценки подтверждены практикой - на конец октября в Folding@Home насчитывалось около 200 000 активных участников (их число заметно меняется в течение суток), с общей производительностью 200 Тфлопс. При этом до 30 Тфлопс приходится на графические сопроцессоры, которых пока задействовано всего лишь несколько сотен - в сравнении с десятками тысяч чипов типовых ПК.

На рисунках представлены компьютерные модели

 белков (с сайтов www.cs.siue.edu, www.biochem.mpg.de)

Авторы проекта в ближайшее время обещают выпустить клиент, ориентированный на игровые приставки PlayStation 3 (выходят на рынок в ноябре) и создаваемый при активной поддержке специалистов Sony. В приставках, поддерживающих Linux, задействован процессор Cell, восемь векторных графических ядер (суммарная теоретическая производительность 1,8 Тфлопс) и контроллер Gigabit Ethernet. Разработчики клиента надеются, что подключение к проекту многотысячной армии пользователей PlayStation 3 повысит ресурс Folding@ Home до петафлопов и существенно ускорит процесс моделирования. В будущем также планируется выпустить клиент и для платформы Torrenza - технологии, рассчитанной на расширение возможностей 64-разрядных процессоров AMD несколькими вспомогательными сопроцессорами.

Немаловажно, что проект Folding@ Home некоммерческий. Всем желающим открыт доступ к результатам исследований, анализы обещано опубликовать в научных изданиях, а "сырые" данные моделирования будут доступны для скачивания с сайта проекта. В Folding@Home можно участвовать анонимно или включиться в одну из команд. Например, российские жертвователи, как их называет проект, объединились в группу TSC! Russia (www.overclockers. ru/TSC/). Чтобы войти в ее состав, в настройках клиента надо задать правильный идентификатор.

Пока подобные проекты единичны и уникальны, поэтому остаются открытыми вопросы качества и корректности результатов столь масштабных экспериментов. Разработчики графических плат, в отличие от производителей универсальных чипов, не стремятся раскрыть их внутреннее устройство и предоставляют доступ к внутренним интерфейсам лишь в рамках корпоративных соглашений. Да и сами авторы Folding@Home не хотят публиковать исходные тексты клиентских программ, опасаясь, что злоумышленники могут создать поддельные клоны, внешне схожие с оригиналом, но выдающие неверные результаты. Из-за такой закрытости, для подобных проектов нехарактерной, затруднительно выяснить, насколько графические чипы подходят для специализированных математических расчетов. Ведь выполняемые ими вычисления ориентированы в основном на геометрические задачи, решаемые параллельной обработкой наборов значений. Так, передовые видеоплаты содержат десятки ядер, работающих на частотах до 1 ГГц, за счет чего достигается десятикратное превосходство над универсальными процессорами. Однако подобная векторная обработка пока реализована в лучшем случае для 32-разрядных значений так называемой одинарной точности - этого достаточно для построения в реальном времени трехмерных изображений, где помехи и мелкие погрешности не так принципиальны и сглаживаются самим алгоритмом. Для важных расчетов точность желательна более высокая, двойная (64 разряда). При интенсивном использовании 32-разрядных значений с плавающей запятой погрешность нарастает экспоненциально, поэтому либо надо задействовать двойную точность для обработки промежуточных значений, либо использовать специальные численные методы расчета, не выпускающие погрешность из допустимых рамок.

С 1985 г. принят международный стандарт IEEE 754 на арифметические операции с плавающей запятой, но создан он был и активно применялся как внутренняя спецификация в компании Intel еще с середины 1970-х годов. В серьезных счетных проектах обычно используются математические библиотеки, которые отвечают этому стандарту, да и большинство универсальных процессоров поддерживает работу с числами в формате IEEE 754. Но производители графических чипов, особенно последних версий с поддержкой параллельных вычислений, такой стандарт не жалуют. Чипы ATI и NVidia еще несколько лет назад обрабатывали преимущественно 16- и 24-разрядные числа с плавающей запятой, сегодня вычисления только-только переводятся на стандартную одинарную точность, а к двойной точности у них отношение вообще как к ненужной роскоши. Более того, корпорация Microsoft под давлением этих производителей ввела в библиотеку DirectX 9.0, используемую практически в каждой компьютерной игре, специальный режим вычислений с ограниченной точностью, что ускоряет выполнение специализированных графических операций.

Проблемы эти, конечно, решаются (например, с помощью специальных алгоритмов), да и сами производители заинтересованы в расширении рынков сбыта графических плат. Так, одним из важных результатов недавнего слияния компаний AMD и ATI стала объявленная в октябре инициатива Fusion - создание принципиально нового "универсально-графического" чипа, в котором многоядерный параллелизм обычного процессора расширится векторными операциями, характерными для графических устройств.

Вопросам корректного использования графических чипов для универсальных вычислений посвящен портал GPGPU.org. На нем собрано множество технологий применения графических процессоров в самых разных сферах. Из средств разработки отметим библиотеку Sh (libsh.org) - распространяемое в исходных текстах векторное расширение языка C++, созданное канадским университетом Ватерлоо, а также новую модель параллельного программирования Accelerator корпорации Microsoft, версия которой 1.1 стала доступной в конце октября. Она ориентирована на платформу .NET (и соответственно на любые языки программирования для нее) и предназначена для оптимизации транслируемого кода "на лету" и автоматического распараллеливания векторных операций. Загрузить Accelerator можно из одноименного раздела сайта research.microsoft.com/act/, посвященного передовым технологиям компиляции.

В проекте Folding@Home использованы наработки системы Cosm (www. mithral.com/projects/cosm/) - открытой библиотеки для быстрого создания grid- и пиринговых сетей. Авторы также применяли достижения проекта Brook (graphics.stanford.edu/projects/ brookgpu/) - в его рамках создана так называемая "потоковая" версия языка Си, ориентированная на параллельные архитектуры, прежде всего на графические многоядерные процессоры. Компилятор и среду поддержки выполнения Brook можно свободно получить на сайте sourceforge.net/projects/brook.

Далеко не все начинания, подобные Folding@Home, завершаются успешно. Так, закрылся из-за недостаточного финансирования схожий международный проект Genome@Home (genomeathome.stanford.edu) по изучению генов и белков, да и отечественный MD@Home по той же причине просуществовал недолго. Если Folding@Home все же завершится успешно (благо его создатели заручились поддержкой солидных спонсоров), понимание механизма сборки белков будет лишь одним из промежуточных шагов в борьбе с тяжелыми болезнями. Далее предстоит решить не менее сложную задачу создания эффективных лекарств. Имеются проекты, в которых, в частности, цель проектирования лекарства от рака сформулирована с самого начала (например, Screensaver Lifesaver, www. chem.ox.ac.uk/cancer/). Внушительный список исследований, к которым привлекаются ресурсы энтузиастов, можно найти на сайте boinc.berkeley.edu, предлагающем общедоступное ПО для создания собственных grid-систем.

Версия для печати