Поиск внеземного разума
Есть тут кто является участником этого проекта?
В последнее время значительно вырос интерес Интернет - сообщества к различным проектам распределенных вычислений, начиная от поиска лекарства от рака, и заканчивая взломом различного рода криптоалгоритмов. В этой статье я хочу рассказать об одном из старейших таких проектов, старт которого пришелся на начало 1999 года. -
SETI@Home. В данном контексте seti обозначает не упорядоченное переплетение веревочек для ловли рыбы, и даже не компьютерные сети. SETI - это "Search for Extraterrestrial Intelligence". Научное направление в рамках биоастрономии, направленное на поиск Внеземного разума. Спонсорами даного проекта выступают Университет Калифорнии, корпорации IBM,Sun, Quantum, SCO и другие.
Немного о технической составляющей. Радиотелескоп Arecibo в Пуэрто-Рико, размер тарелки которого в поперечнике - 305 метров, ежедневно записывает порядка 35 Гбайт необработанных данных в 2.5-мегагерцовой полосе вокруг 1420 МГц (по международному соглашению этот участок выделен для научных целей, и на нем запрещено любое вещание). Этот спектр делится на 10-килогерцевые куски длительностью 107 секунд, что вместе со служебной информацией составляет порядка 340Кбайт исходных данных - блока, получаемого клиентской частью - скринсэйвером, работающим на компьютере рядового участника проекта (то есть на нашем с вами).
Клиент-скринсэйвер может работать в двух режимах. Либо занимать ресурсы процессора только тогда, когда включается экранная заставка, либо работая постоянно с минимальным приоритетом в системе. Клиент
Seti@Home требует интернет - соединение только для получения блока данных и отправки результатов обработки обратно. Как выглядит работающий скринсэйвер можно посмотреть на следующем рисунке.
Каким же образом "ищутся инопланетяне"? Программа выделяет узкополосные "гауссовские" сигналы, возрастающие, достигающие максимума, и затухающие за период прохождения источника такого сигнала фокусом телескопа (примерно 10 секунд). Путем "перекрытия" данных отсекаются земные источники сигналов. Анализ производится методом быстрого преобразования Фурье. Кроме того, производится ряд операций уже после получения командой проекта обработанных данных, включая сравнение сигналов с постоянно обновляемой базой известных помехопостановщиков, и, в необходимых случаях, перепроверкой. Методы и научная составляющая проекта - слишком обширная тема для нашей статьи, поэтому за подробностями я отправляю читателя на сайт проекта
http://setiathome.berkeley.edu Единственное, скажу, что научный план был одобрен в далеком уже 1996 году на V международной конференции по биоастрономии.
Ну, и конечно нужно упомянуть, что, если повезет именно Вашему компьютеру найти источник внеземного сигнала, то Вы будете названы как со-открыватель на ряду со штатными сотрудниками проекта.
Вступаем в сообщество
Допустим, мы все-таки решились отдать вхолостую работающие гигагерцы и мегабайты на благо науки (хотя кто-то может и не назовет поиск внеземных цивилизаций наукой). Отлично. Дальнейший наш алгоритм действий будет следующим.
С сайта
SETI@HOME по ссылке Download качаем клиент под установленную на компьютере операционную систему. Для случая с любой версией Windows это будет файл setiathome_win_3_08.exe. Это и есть наш скринсэйвер, который во время обсчета блоков данных будет радовать взор разноцветным трехмерным графиком. Также доступен графический клиент для Маков, а вот счастливые обладатели компьютеров на других платформах будут вынуждены довольствоваться лишь версией с поддержкой командной строки. После того как скачан файл, при желании можно его проверить на неизменность путем подсчета контрольной суммы по MD5. Проверочное значение находится на сайте рядом со ссылкой.
Убедившись в целостности файла, запускаем его на исполнение. Ответив на вопрос о пути, по которому необходимо инсталлировать программу, и получив сообщение об успешной установке, мы дожидаемся автоматического старта. Первое из открывшихся окошек предлагает на выбор: два режима анализа данных (только когда работает скринсэйвер или постоянно), два же варианта соединения с сервером
SETI@Home - после подтверждения пользователем или безусловно, и, наконец, возможность настройки параметров соединения с прокси - сервером, если конечно такой имеется. После выбора необходимых вариантов нажимаем "ОК".
Далее клиент спрашивает новый ли мы пользователь или "вернувшийся". Соглашаемся на нового. В следующем окне предлагается ввести данные о себе: имя или ник, адрес электронной почты, страну, почтовый индекс, и место расположения компьютера: школа, работа, дом. Жмем "Submit", и в главном окне программы получаем сообщение о том, что идет процесс регистрации. После чего начинается закачка нашего первого блока данных с сервера. Теперь можно закрыть окошко, а в трее рядом с часами появится симпатичный маленький радиотелескопчик зеленого цвета (видимо по цвету кожи ищущихся инопланетных человечков). В любой момент дважды, "щелкнув" по значку, можно вызвать главное окно программы (демонстрируемое и в качестве скринсэйвера), и полюбоваться графиком, а также своей статистикой.
Нельзя не упомянуть, что всегда на сайте проекта можно посмотреть свою актуальную статистику и вступить в какую-нибудь т.н. "группу", чтобы коллективно побороться за высокий результат работы в проекте. Со своей стороны могу порекомендовать Russian Sprinter Group :). Найти группу (по названию) или пользователя (по e-mail) можно зайдя в форму поиска в разделе User Zone - соответственно Groups или User Profile. Также можно отредактировать свой профиль, зайдя по ссылке User account.
Seti@Home в локальной seti
Итак, мы разобрались, что такое
Seti@Home, и как установить клиент на компьютере с подключением к Интернету. Но, рассмотрим такой распространенный вариант доступа в глобальную сеть, как обыкновенная "домашняя" локалка, которые сейчас в крупных городах растут как грибы, или локальная сеть организации. В таких сетях, как правило, имеется лишь один компьютер - шлюз с постоянным доступом во всемирную паутину, а большинству остальных либо вообще запрещена любая сетевая активность за пределами своего логического сегмента сети, либо открыт доступ наружу по строго ограниченным портам и протоколам, "не совместимым с жизнью" клиентской части
Seti@Home. Как быть в этом случае?
В таких ситуациях будет незаменим специальный прокси - сервер, созданный для проекта. Изначально нам понадобиться хотя бы один компьютер, работающий под ОС семейства Windows и имеющий доступ в Интернет. Идем по адресу
http://www.setiqueue.org/, и в разделе Download забираем двух мегабайтный дистрибутив программы SetiQueue (на момент написания статьи последняя версия - 3.03.2.2b). Разархивируем zip-файл и запускаем setup.exe - обычный Windows-инсталлятор, который поставит нам сервер в указанный каталог и создаст в папке Startup иконку для автоматического запуска при загрузке системы. Должен заметить, что разработчик не предусмотрел существование локализованных ОС, и в случае с русской версией Windows необходимо вручную перетащить ярлычок SetiQueue в папку Автозагрузка (есть вариант запуска и как сервиса).
Настраиваем сервер. Запускаем программу ярлычком, и идем в меню Settings - HTTP Server. Там задаем пароль пользователя admin, который имеет право изменять установки, а также можно задать подсеть и IP, с которых будет доступен наш прокси. На этом настройку из интерфейса мы закончим, а все дальнейшие операции выполним через браузер, зайдя с любой доступной машины своей подсети и введя в строке адреса IP (или имя) компьютера, на который поставили SetiQueue, и порт по умолчанию - 5517. Локально можно зайти, введя
http://localhost:5517/ .
Как уже стало ясно, программа включает в себя HTTP сервер, благодаря которому статистику могут посмотреть все пользователи сети, а мы можем управлять с любого компьютера, введя ранее заданный пароль, что и сделаем, перейдя по ссылке Login меню в левой части открывшегося экрана броузера для пользователя admin.
После этого следуем в подпункт Settings пункта меню General. Для работоспособности нашего прокси никаких настроек не требуется, но никто не мешает поменять выставленные по умолчанию значения, например время хранения логов, или ввести свое имя и e-mail для участия в Top 100 на сайте авторов прокси. Здесь же, если доступ самого SetiQueue в Интернет осуществляется через какой-то общий прокси-сервер локальной сети можно ввести IP.
Помимо меню Settings есть меню отчетов (Reports) с подпунктами по пользователям, очередям запросов, клиентам и общий отчет. Кроме того, в подменю Stats можно просмотреть различные виды статистической информации, в том числе карту звездного неба с отмеченными координатами ваших обработанных блоков. В меню WUs содержится информация по конкретным блокам, а в Logs - соответственно логи работы сервера.
Итак, теперь наш сервер настроен. Осталось установить на клиентах IP-адрес и порт (5517) нашего нового сервера. Да, и еще - не пугайтесь, когда после первого отправленного блока через прокси статистика и имя пользователя на клиенте сбросится. Эта информация появится после второго отправленного результата.
К сожалению, объемы журнальной статьи не позволяют полностью описать все возможности и настройки программы (среди которых нельзя не упомянуть доступ к веб - интерфейсу SetiQueue с мобильных устройств, например, через известные большинству пользователей КПК каналы AvantGo). Сайт разработчика содержит достаточно подробную документацию - к нему я и отсылаю читателей.
Облегчаем себе жизнь
На официальном сайте проекта имеется ссылка Add-on. Перейдя по ней, можно увидеть около ста различных программ и утилит написанных для проекта энтузиастами. Почти половина из них функционирует под управлением ОС Windows. Я бы мог отметить следующие из них:
SetiSpy - данная программка имеет информационный характер. С ее помощью мы можем узнать намного больше статистики, чем выдает сама заставка, например, статистика по группе, в которую входит владелиц акаунта, или, например, сколько времени осталось до конца обработки текущего блока. На встроенной карте звездного неба можно посмотреть с какой точки снят сигнал обсчитываемого блока. Также можно сравнить быстродействие нашей системы в решении задачи с быстродействием систем на основе доброй сотни других процессоров.
Могу упомянуть также неплохой plug-in к замечательному IM Miranda. В любой момент по горячей клавише можно вызвать на экран актуальную информацию по 12 нашим параметрам, касающимся работы в проекте. Например, узнать среднее число обрабатываемых блоков в день, или какое количество участников проекта имеет в своем багаже такой же объем отосланных на сервер
SETI@Home результатов