Ответы 190 страниц (1184228), страница 16
Текст из файла (страница 16)
Далее на данной странице будут вкратце описаны и приведены ссылки на основные исследовательские проекты в области мета-компьютинга, разработанные программные технологии, конкретные примеры мета-компьютеров.
Одно из самых больших объединений пользователей Интернет, предоставляющих свои компьютеры для решения крупных переборных задач. Основные проекты связаны с задачами взлома шифров (RSA Challenges). В частности, 19 января 1999 года была решена предложенная RSA Data Security задача расшифровки фразы, закодированной с помощью шифра DES-III. В настоящее время в distributed.net идет работа по расшифровке фразы, закодированной с 64-битным ключом (RC5-64). С момента начала проекта в нем зарегистрировались 191 тыс. человек. Достигнута скорость перебора, равная 75 млрд. ключей в секунду (всего требуется проверить 264 ключей). За решение этой задачи RSA предлагает приз в $10 тыс.
Информация на русском языке.
GIMPS - Great Internet Mersenne Prime Search
http://www.mersenne.org/
Поиск простых чисел Мерсенна (т.е. простых чисел вида 2P-1). С начала проекта было найдено 4 таких простых числа. Организация Electronic Frontier Foundation предлагает приз в $100 тыс. за нахождение простого числа Мерсенна с числом цифр 10 млн.
SETI@home
http://setiathome.ssl.berkeley.edu
Проект SETI@home (Search for Extraterrestrial Intelligence) - поиск внеземных цивилизаций с помощью распределенной обработки данных, поступающих с радиотелескопа. Присоединится может любой желающий. Доступны клиентские программы для Windows, Mac, UNIX, OS/2 (клиент Windows срабатывает в качестве screen-saver'а). Для участия в проекте зарегистрировались около 920 тыс. человек.
Коммерческий проект TERRA ONE компании Cerentis ставит своей целью объединение множества персональных компьютеров, подключенных (или периодически подключаемых) к Интернет, для решения задач анализа информации, предоставляемой различными заказчиками. Клиентские компьютеры (TerraProcessor), подключенные к TERRA ONE, используются во время простаивания с помощью screen-saver'а. За обработку информации владельцы ПК получают возможность покупки в Интернет-магазинах - им начисляются "кредиты" (TerraPoints) за каждую единицу обработанной информации.
Globus
http://www.globus.org.
Разработка ПО для организации распределенных вычислений в Интернет. Проект реализуется в Argonne National Lab. Цель The Globus Project - построение т.н. "computational grids", включающих в себя вычислительные системы, системы визуализации, экспериментальные установки. В рамках проекта проводятся исследовании по построению распределенных алгоритмов, обеспечению безопасности и отказоустойчивости мета-компьютеров.
В рамках проекта Globus разработан ряд программных средств:
Globus Resource Allocation Manager - единообразный интерфейс к различным "локальным" системам распределения нагрузки (LSF, NQE, LoadLeveler) Для описания требований приложения к ресурсам разработан специальный язык RSL (Resource Specification Language)
Globus Security Infrastructure - система аутентификации на базе открытого ключа и X.09-сертификатов
Metacomputing Directory Service (MDS) - репозиторий информации о вычислительных ресурсах, входящих в метакомпьютер
Nexus - коммуникационная библиотека
Heartbeat Monitor (HBM) - средство мониторинга, позволяющее определить сбой некоторых машин и процессов, входящих в метакомпьютер
Globus Access to Secondary Storage (GASS) - средство доступа к удаленным данным через URL
Для тестирования Globus был создан реальный метакомпьютер GUSTO (testbed environment), который включает около 40 компонент с суммарной пиковой производительностью 2.5 TFLOPS.
The Metacomputing Project
Совместный проект Oak Ridge National Labs, Sandia National Labs и Pittsburgh Supercomputer Center В рамках данного проекта объединены 4 системы: три суперкомпьютера Intel XP/S 150 Paragon и суперкомпьютер T3D в PSC. Коммуникации обеспечиваются с помощью PVM. Для связи используются высокоскоростные сети ESNet и vBNS и протоколы ATM/AAL5.
Legion
http://legion.virginia.edu/
Проект Legion: A Worldwide Virtual Computer университета Вирджинии. Цель - разработка объектно-ориентированного ПО для построения виртуальных мета-компьютеров, включающих до нескольких миллионов индивидуальных хостов, объединенных высокоскоростными сетями. Пользователь, работающий на своем домашнем компьютере, должен иметь абсолютно прозрачный доступ ко всем ресурсам мета-компьютера.
В рамках Legion возможно исполнение параллельных приложений - поддерживаются библиотеки MPI и PVM, а также язык Mentat. Программное обеспечение проекта доступно бесплатно (поддерживаются платформы SGI IRIX, Linux, Alpha/OSF1, RS/6000).
PACX-MPI
http://www.hlrs.de/structure/organisation/par/projects/pacx-mpi/.
Расширение MPI для поддержки распределенных вычислений. Поддерживается объединение в единый мета-компьютер нескольких MPP-систем, возможно с различными реализациями MPI. Передача данных между MPP производится через Интернет с помощью TCP/IP. В настоящее время в рамках PACX-MPI реализовано подмножество стандарта MPI 1.2.
На конференции SC'98 продемонстрировано совместное использование двух 512-процессорных суперкомпьютеров Cray T3E, находящихся в университете Штутгарта (Германия) и в PSC (Питтсбург, США). Для объединения компьютеров использовалась библиотека PACX-MPI.
Condor
http://www.cs.wisc.edu/condor/
Система Condor разрабатывается в университете шт. Висконсин (Madison). Condor распределяет независимые подзадачи по существующей в организации сети рабочих станций, заставляя компьютеры работать в свободное время (то есть в то время, когда они простаивали бы без своих пользователей). Программное обеспечение системы Condor доступно бесплатно. В настоящее время поддерживаются платформы SGI, Solaris, Linux, HP-UX, и Digital Unix, однако планируется также поддержка Windows NT.
Кластерные архитектуры.
Кластер представляет собой два или более компьютеров (часто называемых узлами), объединяемые при помощи сетевых технологий на базе шинной архитектуры или коммутатора и предстающие перед пользователями в качестве единого информационно-вычислительного ресурса. В качестве узлов кластера могут быть выбраны серверы, рабочие станции и даже обычные персональные компьютеры. Узел характеризуется тем, что на нем работает единственная копия операционной системы. Преимущество кластеризации для повышения работоспособности становится очевидным в случае сбоя какого-либо узла: при этом другой узел кластера может взять на себя нагрузку неисправного узла, и пользователи не заметят прерывания в доступе. Возможности масштабируемости кластеров позволяют многократно увеличивать производительность приложений для большего числа пользователей технологий (Fast/Gigabit Ethernet, Myrinet) на базе шинной архитектуры или коммутатора. Такие суперкомпьютерные системы являются самыми дешевыми, поскольку собираются на базе стандартных комплектующих элементов ("off the shelf"), процессоров, коммутаторов, дисков и внешних устройств.
Кластеризация может осуществляться на разных уровнях компьютерной системы, включая аппаратное обеспечение, операционные системы, программы-утилиты, системы управления и приложения. Чем больше уровней системы объединены кластерной технологией, тем выше надежность, масштабируемость и управляемость кластера.
Типы кластеров
Условное деление на классы предложено Язеком Радаевским и Дугласом Эдлайном:
Класс I. Класс машин строится целиком из стандартных деталей, которые продают многие поставщики компьютерных компонентов (низкие цены, простое обслуживание, аппаратные компоненты доступны из различных источников).
Класс II. Система имеет эксклюзивные или не слишком широко распространенные детали. Таким образом можно достичь очень хорошей производительности, но при более высокой стоимости.
Как уже отмечалось, кластеры могут существовать в различных конфигурациях. Наиболее распространенными типами кластеров являются:
системы высокой надежности;
системы для высокопроизводительных вычислений;
многопоточные системы.
Отметим, что границы между этими типами кластеров до некоторой степени размыты, и кластер может иметь такие свойства или функции, которые выходят за рамки перечисленных типов. Более того, при конфигурировании большого кластера, используемого как система общего назначения, приходится выделять блоки, выполняющие все перечисленные функции.
Кластеры для высокопроизводительных вычислений предназначены для параллельных расчетов. Эти кластеры обычно собраны из большого числа компьютеров. Разработка таких кластеров является сложным процессом, требующим на каждом шаге согласования таких вопросов как инсталляция, эксплуатация и одновременное управление большим числом компьютеров, технические требования параллельного и высокопроизводительного доступа к одному и тому же системному файлу (или файлам) и межпроцессорная связь между узлами, и координация работы в параллельном режиме. Эти проблемы проще всего решаются при обеспечении единого образа операционной системы для всего кластера. Однако реализовать подобную схему удается далеко не всегда и обычно она применяется лишь для не слишком больших систем.
Многопоточные системы используются для обеспечения единого интерфейса к ряду ресурсов, которые могут со временем произвольно наращиваться (или сокращаться). Типичным примером может служить группа web-серверов.
В 1994 году Томас Стерлинг (Sterling) и Дон Беккер (Becker) создали 16-узловой кластер из процессоров Intel DX4, соединенных сетью 10 Мбит/с Ethernet с дублированием каналов. Они назвали его "Beowulf" по названию старинной эпической поэмы. Кластер возник в центре NASA Goddard Space Flight Center для поддержки необходимыми вычислительными ресурсами проекта Earth and Space Sciences. Проектно-конструкторские работы быстро превратились в то, что известно сейчас как проект Beowulf. Проект стал основой общего подхода к построению параллельных кластерных компьютеров, он описывает многопроцессорную архитектуру, которая может с успехом использоваться для параллельных вычислений. Beowulf-кластер, как правило, является системой, состоящей из одного серверного узла (который обычно называется головным), а также одного или нескольких подчиненных (вычислительных) узлов, соединенных посредством стандартной компьютерной сети. Система строится с использованием стандартных аппаратных компонентов, таких как ПК, запускаемые под Linux, стандартные сетевые адаптеры (например, Ethernet) и коммутаторы. Нет особого программного пакета, называемого "Beowulf". Вместо этого имеется несколько кусков программного обеспечения, которые многие пользователи нашли пригодными для построения кластеров Beowulf. Beowulf использует такие программные продукты как операционная система Linux, системы передачи сообщений PVM, MPI, системы управления очередями заданий и другие стандартные продукты. Серверный узел контролирует весь кластер и обслуживает файлы, направляемые к клиентским узлам.
Архитектура кластерной системы (способ соединения процессоров друг с другом) в большей степени определяет ее производительность, чем тип используемых в ней процессоров. Критическим параметром, влияющим на величину производительности такой системы, является расстояние между процессорами. Так, соединив вместе 10 персональных компьютеров, мы получим систему для проведения высокопроизводительных вычислений. Проблема, однако, будет состоять в поиске наиболее эффективного способа соединения стандартных средств друг с другом, поскольку при увеличении производительности каждого процессора в 10 раз производительность системы в целом в 10 раз не увеличится.
Симметричные мультипроцессорные системы.
Ключевым понятием многопроцессорных архитектур является узел - вычислительная система, состоящая из одного или нескольких процессоров, имеющая оперативную память и систему ввода-вывода. Узел характеризуется тем, что на нем работает единственная копия операционной системы (ОС).
Симметричный многопроцессорный (SMP) узел содержит два или более одинаковых процессора, используемых равноправно. Все процессоры имеют одинаковый доступ к вычислительным ресурсам узла. Поскольку процессоры одновременно работают с данными, хранящимися в единой памяти узла, в SMP-архитектурах обязательно должен быть механизм, поддержки когерентности данных. Когерентность данных означает, что в любой момент времени для каждого элемента данных во всей памяти узла существует только одно его значение несмотря на то, что одновременно могут существовать несколько копий элемента данных, расположенных в разных видах памяти и обрабатываемых разными процессорами. Механизм когерентности должен следить за тем, чтобы операции с одним и тем же элементом данных выполнялись на разных процессорах последовательно, удаляя, в частности, устаревшие копии. В современных SMP-архитектурах когерентность реализуется аппаратными средствами.
Механизм когерентности является критичным для эффективной параллельной работы узла SMP и должен иметь малое время задержки. До сегодняшнего дня самые крупные SMP-системы содержали максимум 32 процессора на узел, что объяснялось требованием малых задержек когерентных связей, приводящим к архитектуре с одной объединительной платой, а это физически ограничивает возможное число подсоединенных процессоров и плат памяти. Поэтому для дальнейшего увеличения числа процессоров в узле приходится вместо аппаратно реализованной техники когерентности применять более медленную программную реализацию, что очень существенно сказывается на программируемости систем и их производительности.
SMP-узлы очень удобны для разработчиков приложений: операционная система почти автоматически масштабирует приложения, давая им возможность использовать наращиваемые ресурсы. Само приложение не должно меняться при добавлении процессоров и не обязано следить за тем, на каких ЦПУ оно работает. Временная задержка доступа от любого ЦПУ до всех частей памяти и системы ввода-вывода одна и та же. Разработчик оперирует с однородным адресным пространством. Все это приводит к тому, что SMP-архитектуры разных производителей выглядят в основном одинаково: упрощается переносимость программного обеспечения между SMP-системами. Переносимость программ - одно из основных достоинств SMP-платформ.