лекция_15_паралельные системы(кластеры).pptx
- Количество слайдов: 30
Кластерные архитектуры
Классификация Флинна ОКОД(SISD) (single instruction stream / single data stream) - одиночный поток команд и одиночный поток данных. В таких машинах есть только один поток команд, все команды обрабатываются последовательно друг за другом и каждая команда инициирует одну операцию с одним потоком данных. В этот класс входят однопроцессорные последовательные компьютеры например на базе Intel 80486
Классификация Флинна ОКМД(SIMD) (single instruction stream / multiple data stream) - одиночный поток команд и множественный поток данных. В архитектурах подобного рода сохраняется один поток команд, включающий, в отличие от предыдущего класса, векторные команды. Это позволяет выполнять одну арифметическую операцию сразу над многими данными - элементами вектора.
Классификация Флинна МКОД(MISD) (multiple instruction stream / single data stream) - множественный поток команд и одиночный поток данных. Определение подразумевает наличие в архитектуре многих процессоров, обрабатывающих один и тот же поток данных.
Классификация Флинна МКМД(MIMD) (multiple instruction stream / multiple data stream) - множественный поток команд и множественный поток данных. Этот класс предполагает, что в вычислительной системе есть несколько устройств обработки команд, объединенных в единый комплекс и работающих каждое со своим потоком команд и данных.
История Впервые в классификации вычислительных систем термин "кластер" определила компания Digital Equipment Corporation (DEC). В начале 1970 -х гг. группой разработчиков протокола TCP/IP и лабораторией Xerox PARC были закреплены стандарты сетевого взаимодействия. Появилась и операционная система Hydra ( «Гидра» ) для компьютеров PDP-11 производства DEC, созданный на этой основе кластер был назван C. mpp (Питтсбург, шт. Пенсильвания, США, 1971). Только в 1983 г. были созданы механизмы, позволяющие с лёгкостью пользоваться распределением задач и файлов через сеть, по большей части это были разработки на основе BSD в версии Sun Microsystems.
История Первым коммерческим проектом кластера стал ARCNet, созданный компанией Datapoint в 1977 г. Прибыльным он не стал, и поэтому строительство кластеров не развивалось до 1984 г. , когда DEC построила свой VAXcluster на основе операционной системы VAX/VMS. ARCNet и VAXcluster были рассчитаны не только на совместные вычисления, но и совместное использование файловой системы и периферии с учётом сохранения целостности и однозначности данных. VAXCluster (называемый теперь VMSCluster) и сейчас можно приобрести для систем HP Open. VMS, использующих процессоры Alpha и Itanium. Два других ранних кластерных продукта, получивших признание, включают Tandem Hymalaya (1994, класс HA) и IBM S/390 Parallel Sysplex (1994).
История создания кластеров из обыкновенных персональных компьютеров во многом обязана проекту Parallel Virtual Machine. В 1989 г. это ПО для объединения компьютеров в виртуальный суперкомпьютер открыло возможность мгновенного создания кластеров. В результате суммарная производительность всех созданных тогда дешёвых кластеров обогнала по производительности сумму мощностей «серьёзных» коммерческих систем. Создание кластеров на основе дешёвых персональных компьютеров, объединённых сетью передачи данных, продолжилось в 1993 г. силами Американского аэрокосмического агентства (NASA), затем в 1995 г. получили развитие кластеры Beowulf, специально разработанные на основе этого принципа. Успехи таких систем подтолкнули развитие grid-сетей, которые существовали ещё с момента создания UNIX.
Определения «Кластер — это разновидность параллельной или распределённой системы, которая: состоит из нескольких связанных между собой компьютеров; используется как единый, унифицированный компьютерный ресурс» . Грегори Пфистер
Определения кластер компьютеров представляет собой несколько объединённых компьютеров, управляемых и используемых как единое целое. Отдельные компьютеры называются узлами и могут быть одно- или мультипроцессорными. В классической схеме при работе с приложениями все узлы разделяют внешнюю память на массиве жёстких дисков, используя внутренние дисковые накопители для специальных функций (например, системных).
Концепция LAN – Local Area Network, локальная сеть SAN – Storage Area Network, сеть хранения данных
Требования к кластерам Высокая готовность Высокое быстродействие Масштабирование Общий доступ к ресурсам Удобство обслуживания
Классификация кластеров по степени связи 1. Тесно связанная мультипроцессорная система
Классификация кластеров по степени связи 2. Умеренно связанная мультипроцессорная система
Классификация кластеров по степени связи 3. Слабо связанная мультипроцессорная система
Виды кластеров высокопроизводительные кластеры (High-performance clusters, HPC) отказоустойчивые кластеры или системы высокой готовности (Highavailability clusters, HA) кластеры с балансировкой нагрузки (Load balancing clusters)
высокопроизводительные кластеры Высокоскоростные кластеры используются для задач, которые требуют значительной вычислительной мощности. Классическими областями, в которых используются подобные системы, являются: обработка изображений: рендеринг, распознавание образов научные исследования: физика, биоинформатика, биохимия, биофизика промышленность (геоинформационные задачи, математическое моделирование)
Проблемы при реализации Необходимость применения высокоскоростных коммуникационных каналов
Виды высокопроизводительные кластеров Shared Nothing Architecture (архитектура без разделения ресурсов) Shared Disk Architecture (архитектура с общими дисками)
Архитектура без разделения ресурсов Архитектура без распределения ресурсов не использует общей системы хранения данных. При ее использовании каждый узел имеет свои дисковые накопители, которые не используются совместно узлами кластерной системы. Фактически, на аппаратном уровне разделяются только коммуникационные каналы.
Архитектура с общими дисками классически используется для построения кластерных систем высокой готовности, ориентированных на обработку больших объемов данных. Такая система состоит из общей системы хранения данных и узлов кластера, которые распределяют доступ к общим данным. При высокой мощности системы хранения данных, при работе с задачами, ориентированными на их обработку, архитектура с общими дисками является более эффективной. В этом случае не нужно держать несколько копий данных и в то же время, при выходе из строя узла, задачи могут быть мгновенно доступны для других узлов.
отказоустойчивые кластеры или системы высокой готовности Кластеры, которые относятся к системам высокой готовности, используются везде, где стоимость возможного простоя превышает стоимость затрат, необходимых для построения кластерной системы, например: биллинговые системы банковские операции электронная коммерция управление предприятием
Проблемы при реализации • компоненты должны быть максимально надежными • отказоустойчивость, желательно, чтобы не имела точек отказов • удобна в обслуживании и разрешала проводить замену компонент без останова
Виды отказоустойчивых кластеров Активный-Активный (Active-Active) Активный-Пассивный (Active-Passive)
Активный-Активный
Активный-Пассивный обеспечивается миграция задач, выполнявшихся на узле, вышедшем из строя, на другие узлы
кластеры с балансировкой нагрузки Смешанные системы объединяют в себе особенности как первых, так и вторых. кластер, который обладает параметрами как High Performance, так и High Availability, обязательно проиграет в быстродействии системе, ориентированной на высокоскоростные вычисления, и в возможном времени простоя системе, ориентированной на работу в режиме высокой готовности.
Проблемы при реализации Дороговизна и сложность реализации
Средства распараллеливания подходы к программированию параллельных вычислительных систем: на стандартных широко распространенных языках программирования с использованием коммуникационных библиотек и интерфейсов для организации межпроцессорного взаимодействия (PVM, MPI, HPVM, MPL, Open. MP, Sh. Mem) использование специализированных языков параллельного программирования и параллельных расширений (параллельные реализации Fortran и C/C++, ADA, Modula-3) использование средств автоматического и полуавтоматического распараллеливания последовательных программ (BERT 77, FORGE, KAP, PIPS, VAST) программирование на стандартных языках с использованием параллельных процедур из специализированных библиотек, которые ориентированы на решение задач в конкретных областях, например: линейной алгебры, методов Монте-Карло, генетических алгоритмов, обработки изображений, молекулярной химии, и т. п. (ATLAS, DOUG, GALOPPS, NAMD, Sca. LAPACK).
Средства распараллеливания инструментальные средства, которые упрощают проектирование параллельных программ: CODE - Графическая система для создания параллельных программ. Параллельная программа изображается в виде графа, вершины которого есть последовательные части программы. Для передачи сообщений используются PVM и MPI библиотеки. TRAPPER - Коммерческий продукт немецкой компании Genias. Графическая среда программирования, которая содержит компоненты построения параллельного программного обеспечения.