А теперь приступим к рассмотрению математического проекта GIMPS (The Great Internet Mersenne Prime Search http://www.mersenne.org/prime.htm). О своей работе организаторы говорят следующее: «Мы объединили тысячи небольших компьютеров, вроде вашего, для поиска иголок в стогу сена». Результаты такого поиска очень даже воодушевляют с момента старта проекта в январе 1996 года уже было найдено 5 этих самых иголочек (всего их на сегодняшний день известно 39). Вот, что имеется в виду. Согласно определению, простые числа это, те которые делятся только на самих себя и на единицу. Mersenne primes это такие простые числа, которые можно записать в виде 2P 1, где Р простое число. Первыми Mersenne primes являются 3, 7, 31, 127 и так далее. Как я уже говорил, пока известно 39 таких чисел. Последнее было найдено в Канаде 14 ноября прошлого года и равнялось 213, 466 ,917 1. Его размеры впечатляют более четырех миллионов разрядов!
Все, математики достаточно, поговорим о компьютерных вопросах. Для работы по требуется IBM-совместимый компьютер как минимум класса Pentium. Также разработчики утверждают, что в проекте могут принять участие и многие пользователи UNIX и PowerMac (категории немного не стыкуются :-), но именно такая информация дана на сайте GIMPS). Клиент занимает около 10 Mб на жестком диске и использует около 8 Mб оперативной памяти. Нагрузка распределяется между клиентами следующим образом: наиболее быстрые машины (Pentium II 400+) делают первичные тесты, машины среднего класса (Pentium 90+) работают над повторными проверками, самые медленные выполняют дополнительные подсчеты, призванные упростить выполнение задач быстрым машинам.
Информация на сайте проекта подается на нескольких языках, но русского и украинского среди них нет . Вдобавок обновления неанглийских версий ресурса не всегда происходят вовремя. Пользователям предлагают использовать переводчик от АльтаВисты :-). Лично меня приятно удивило наличие у GIMPS странички benchmark’a (по-русски «пометка скамейки» :-)). Здесь вы можете пометить вашу скамейку… тьфу… оценить ваш процессор для данного соревнования. Кроме простого списка процессоров с параметрами каждого из них, имеется в наличии форма, заполнив которую, вы моментально получите расчетное время работы определенного задания на вашей машине. Да, чуть не забыл, борьба тут идет не ради спортивного интереса, а за крупный денежный приз. Правда, он будет выдан тому, кто найдет такое простое число, в котором 10 миллионов разрядов, так что все еще впереди.
Скептически настроенные читатели пробегут глазами ранее описанные проекты и скажут: «Это все, конечно, хорошо, но где же реальная польза от всех этих затей?». Но ведь эти огромные вычислительные мощности можно тратить не только на поиск инопланетян, но и на взлом алгоритмов шифрования. Чуть далее я расскажу о проектах, которые объединяют профессиональные знания и опыт ученых (химиков, врачей) и огромные скорости обработки данных распределенных вычислительных систем. Начну, пожалуй, с проекта, наиболее широко распространенного в Украине и поддерживаемого ранее упоминавшейся Ukraine RC5 Team. Итак, речь пойдет о Ukraine RC5 Against Cancer (http://www.ud.org.ua), являющемся частью совместного проекта Intel (http://www.intel.com/cure), United Devices (http://www.ud.com) и Оксфордского Университета (http://www.chem.ox.ac.uk/curecancer.html) по поиску лекарства от рака. Хотя «распределенная» версия проекта была запущена в апреле 2001 года, на самом деле все началось раньше, и программа виртуального отбора только часть длительного процесса по созданию лекарства. После лабораторных исследований было найдено порядка 250 миллионов молекул, являющихся потенциальным лекарством от рака. «Виртуальный отбор» заключается в том, что специальное программное обеспечение (UD-THINK) моделирует и анализирует взаимодействия каждой из молекул с 16-ю известными белками, предположительно вызывающими рост раковых клеток. Более того, THINK исследует молекулы, чтобы узнать, нельзя ли внести в них небольшие изменения с целью повышения их шансов на химическое взаимодействие, что позволит исследователям проанализировать еще несколько вариантов для каждой молекулы. Согласно информации United Devices анализ среднестатистической молекулы на процессоре с тактовой частотой 750 МГц занимает около 1-2 минут, а в одном пакете, принимаемом агентом (программой-клиентом), 100 молекул. В дальнейшем все полученные результаты будут сведены вместе. Удачные молекулы те, у которых сила взаимодействия оказалась наибольшей, будут анализироваться и сравниваться друг с другом с целью определения того общего, что позволило им взаимодействовать с протеином. Позже, на основе результатов проекта, фармацевтические компании или исследовательские лаборатории начнут синтезировать молекулы и исследовать их реальное взаимодействие. Все результаты виртуального отбора этого проекта остаются в собственности Оксфордского университета и NFCR (Национальный Фонд Исследования Рака). То есть, все права на научные открытия принадлежат некоммерческим организациям, занимающимся поиском лекарства от рака.
Теперь о подключении к проекту и программе-клиенте. Огромное количество информации по этом вопросу представлено на сайте Ukraine RC5 Against Cancer (http://www.ud.org.ua/rus/think1.html описание клиента, http://www.ud.org.ua/rus/join.html описание процесса подключения), поэтому я расскажу обо всем очень коротко. Для начала работы вам понадобится UD Agent поэтому запускаете любимый браузер и переходите на http://members.ud.com/download. При первом запуске агента надо будет его сконфигурировать. Если есть желание, вступаете в одну из команд, например, в вышеупомянутую Ukraine RC5 (http://members.ud.com/services/teams/team.htm?id=F1718786-F559-4EEA-BCC9-F5BC281E2D49) у себя на сайте они очень хорошо аргументируют, почему именно они достойны вашего доверия :-).
В отличие от Оксфорда, Стэнфордский университет (http://stanford.edu) занимается реализацией целых двух проектов Folding@home (http://folding.stanford.edu) и Genome@home (http://gah.stanford.edu). Оба они относительно молоды первый запущен в сентябре позапрошлого года, а второй в феврале 2002. Итак, Folding@home предназначен для изучения организации белковых структур, а также связанных с этим болезней (включая болезнь Альцгеймера, диабет типа II, коровье бешенство и болезнь Паркинсона). Моделирование множества вариантов построения белков требует значительных вычислительных ресурсов. Решение этих задач стало возможным только с запуском проекта Folding@Home в сентябре позапрошлого года. Десятки тысяч домашних компьютеров добровольцев образовали суммарную мощность, в несколько сотен раз превосходящую мощность суперкомпьютера университета. Количество пользователей уже перевалило за 100 000 (на сайте есть даже карта, по которой можно определить, насколько проект распространен в той или иной части Земли :-)). В октябре 2001 года о поддержке проекта объявила корпорация Intel. Результаты исследований в формате mpeg (да-да это видео) выложены на специальной страничке (http://folding.stanford.edu/results.html), дабы ни один из вас не мог заявить, что под видом белков мы на самом деле производим расчеты для изобретения нового ядерного оружия :-).
Проект продолжает развиваться недавно обновился клиент. При разработке новой версии активно использовался опыт UD: теперь клиент состоит из двух частей (графической и вычислительной), автоматически скачивает обновления для себя, может работать как на полном экране, так и в отдельном окне. Существует консольная версия под Linux. Чтобы скачать клиент и подключиться к сети Folding@home, смело открывайте http://folding.stanford.edu/download.html.
Проект по исследованию генов человека The Human Genome Project почти завершен, и ученые прикладывают огромные усилия, чтобы полученная информация оказала существенную помощь современной медицине. Один из наиболее важных путей к этому изучение других геномов и генных последовательностей. Разобравшись в них, мы сможем использовать огромное количество данных (более 50 тысяч генов и 3 биллионов нуклеотидных пар) из Human Genome Project в биологии и медицине. В то время, как Folding@home направлен на то, чтобы узнать, как строятся существующие белки, цель Genome@home разработать новые гены. Данный проект использует алгоритм SPA, основанный на физических и биохимических правилах, которые определяют поведение генов и белков. Сравнив полученные «виртуальные белки» с реально существующими в природе, ученые лучше поймут, как же «работают» природные белки. Для создания белковой последовательности нужна достаточно большая вычислительная мощность. Благодаря этому, а также встроенному кэшированию клиента (http://gah.stanford.edu/download.html), к серверу можно не подключаться неделями (у Folding@home частота подключения не реже оного раза в течение 3-4 дней, иначе результаты будут аннулированы).
Вот и все, о чем я хотел рассказать вам в этот раз. Хотел бы обратить внимание, что тема распределенных вычислений очень обширна, и я раскрыл ее далеко не полностью. Если у вас есть желание почитать о других проектах подобного рода (в том числе коммерческих), напишите мне на e-mail или на фидошный адрес. Наиболее любознательным читателям подкину ссылочку на очень полезный сайт http://www.aspenleaf.com/distributed/distrib-projects.html, только предупреждаю там все на английском.