Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

otvety / 9Классификации параллельных вычислительных средств (по способу группировки, по областям применения)

.docx
Скачиваний:
21
Добавлен:
12.04.2015
Размер:
32.22 Кб
Скачать

Параллелизм - воспроизведение в нескольких копиях некоторой аппаратной структуры, что позволяет достигнуть повышения производительности за счет одновременной работы всех элементов структуры, осуществляющих решение различных частей этой задачи.

Области применения параллельных вычислительных систем:

предсказания погоды, климата и глобальных изменений в атмосфере; науки о материалах; построение полупроводниковых приборов; сверхпроводимость; структурная биология; разработка фармацевтических препаратов; генетика; квантовая хромодинамика; астрономия; транспортные задачи; гидро- и газодинамика; управляемый термоядерный синтез; эффективность систем сгорания топлива; геоинформационные системы; разведка недр; наука о мировом океане; распознавание и синтез речи; распознавание изображений;военные цели.

Классификация параллельных архитектур по Флинну (M. Flynn) 

Вычислительная система с одним потоком команд и данных — однопроцессорная ЭВМ — SISD (Single Instruction stream over a Single Data stream).

Вычислительная система с общим потоком команд SIMD (Single Instruction, Multiple Data — одиночный поток команд и множественный поток данных).

 Вычислительная система со множественным потоком команд и одиночным потоком данных MISD (Multiple Instruction Single Data — конвейерная ЭВМ).

 Вычислительная система со множественным потоком команд и данных MIMD (Multiple Instruction Multiple Data).  Суперскалярные и VLIW машины  Существуют два типа машин (процессоров), выдающих несколько команд за один такт: суперскалярные машины и VLIW-машины.  Суперскалярные машины могут выдавать на выполнение в каждом такте переменное число команд, и работа их конвейеров может планироваться как статически с помощью компилятора, так и с помощью аппаратных средств динамической оптимизации. Суперскалярные машины используют параллелизм на уровне команд путем посылки нескольких команд из обычного потока команд в несколько функциональных устройств. Дополнительно, чтобы снять ограничения последовательного выполнения команд, эти машины используют механизмы внеочередной выдачи и внеочередного завершения команд, прогнозирование переходов, кэши целевых адресов переходов и условное (по предположению) выполнение команд.  В отличие от суперскалярных машин, VLIW-машины выдают на выполнение фиксированное количество команд, которые сформатированы либо как одна большая команда, либо как пакет команд фиксированного формата. Планирование работы VLIW-машины всегда осуществляется компилятором.  В типичной суперскалярной машине аппаратура может осуществлять выдачу от одной до восьми команд в одном такте. Обычно эти команды должны быть независимыми и удовлетворять некоторым ограничениям, например таким, что в каждом такте не может выдаваться более одной команды обращения к памяти. Если какая-либо команда в потоке команд является логически зависимой или не удовлетворяет критериям выдачи, на выполнение будут выданы только команды, предшествующие данной. Поэтому скорость выдачи команд в суперскалярных машинах является переменной. Это отличает их от VLIW-машин, в которых полную ответственность за формирование пакета команд, которые могут выдаваться одновременно, несет компилятор, а аппаратура в динамике не принимает никаких решений относительно выдачи нескольких команд. Использование VLIW приводит в большинстве случаев к быстрому заполнению небольшого объема внутрикристальной памяти командами NOP (no operation), которые предназначены для тех устройств, которые не будут задействованы в текущем цикле. В существующих VLIW разработках был найден большой недостаток, который был устранен делением длинных слов на более мелкие, параллельно поступающие к каждому устройству. Обработка множества команд независимыми устройствами одновременно является главной особенностью суперскалярной процессорной архитектуры.  Классификация машин MIMD-архитектуры по Хокни (R. Hockney)   Переключаемые — с общей памятью и с распределённой памятью.  Конвейерные.  Сети — регулярные решётки, гиперкубы, иерархические структуры, изменяющие конфигурацию.  В класс конвейерных архитектур (по Хокни) попадают машины с одним конвейерным устройством обработки, работающим в режиме разделения времени для отдельных потоков. Машины, в которых каждый поток обрабатывается своим собственным устройством, Хокни назвал переключаемыми. В класс переключаемых машин попадают машины, в которых возможна связь каждого процессора с каждым, реализуемая с помощью переключателя — машины с распределённой памятью. Если же память есть разделяемый ресурс, машина называется с общей памятью. При рассмотрении машин с сетевой структурой Хокни считал, что все они имеют распределённую память. Дальнейшую классификацию он проводил в соответствии с топологией сети.  Классификация Скилликорна  Классификация Скилликорна (1989) была очередным расширением классификации Флинна. Архитектура любого компьютера в классификации Скилликорна рассматривается в виде комбинации четырёх абстрактных компонентов: процессоров команд (Instruction Processor — интерпретатор команд, может отсутствовать в системе), процессоров данных (Data Processor — преобразователь данных), иерархии памяти (Instruction Memory, Data Memory — память программ и данных), переключателей (связывающих процессоры и память). Переключатели бывают четырёх типов — «1-1» (связывают пару устройств), «n-n» (связывает каждое устройство из одного множества устройств с соответствующим ему устройством из другого множества, то есть фиксирует попарную связь), «n x n» (связь любого устройства одного множества с любым устройством другого множества).  Классификация Скилликорна основывается на следующих восьми характеристиках:  Количество процессоров команд IP  Число ЗУ команд IM  Тип переключателя между IP и IM  Количество процессоров данных DP  Число ЗУ данных DM  Тип переключателя между DP и DM  Тип переключателя между IP и DP  Тип переключателя между DP и DP Основные направления развития параллельных вычислительных технологий  1. Распараллеливание вычислений, создание новых методов и алгоритмов с реализацией массового параллелизма.  Анализ сложности актуальных вычислительных задач аэродинамики; газовой динамики и теплопроводности; ядерной физики; переноса различных видов излучения; высокоточной навигации и управления движением; разработки проблем молекулярной биологии и генной инженерии; моделирования природных геофизических и климатических явлений; обеспечения информационной безопасности и многих других обнаруживает, что для их решения с необходимой на сегодня точностью требуются компьютеры с высокой производительностью. Получить такую производительность, оставаясь в рамках традиционных подходов построения векторно-конвейерных систем не представляется возможным. Решение существует только на пути широкого распараллеливания вычислений и создания соответствующих вычислительных систем. Однако техническое воплощение результатов этих работ стало возможным с массовым выпуском микропроцессоров с высокой производительностью и объемной памятью, обладающих широкими функциональными возможностями. Принципиальным является тот факт, что современная микроэлектронная база очень надежна, и поэтому возможно массовое объединение микропроцессоров в единые вычислительные системы.  Особое внимание (и это признается научной общественностью) следует уделить теоретическим работам по построению новых алгоритмов и их практической реализации. Применение мультипроцессорных вычислительных систем требует учета и освоения определенной специфики параллельной обработки не только на уровне аппаратуры и системного обеспечения, но и в прикладном программировании и самих вычислительных алгоритмах. Хотя на сегодня имеется положительный опыт в решении сложных прикладных задач на параллельных супер-ЭВМ, однако существуют и объективные трудности. Они зачастую приводят к парадоксальной ситуации, когда высокопроизводительные и дешевые системы массового параллелизма осваиваются со значительными затруднениями. Это обстоятельство признается мировой научной общественностью и постоянно обсуждается на научных форумах. В последние годы за рубежом работы по параллельным вычислительным технологиям значительно расширились. Появилось большое количество мощных супер-ЭВМ. Все 500 самых мощных вычислительных установок в мире (TOP 500) являются многопроцессорными системами.  Важные задачи возникают в переосмысливании традиционных подходов при построении новых параллельных алгоритмов. Примеров таких работ много, начиная с алгоритмов линейной алгебры, методов Фурье анализа, других стандартных процедур. Большая работа проводится во многих коллективах по разработке новых конечно разностных методов для решения широких классов сложных задач. При этом, как правило, используются алгоритмы с широким параллелизмом; например явные, локально-итерационные и другие схемы, допускающие массовый параллелизм при обработке информации, позволяющие совмещать процесс выполнения вычислительных операций с осуществлением обменов. Здесь уже достигнуты существенные продвижения, позволившие решить с использованием МВС актуальные задачи качественно нового уровня сложности для различных областей приложений.  2. Разработка систем параллельного программирования, языковых и других средств с сохранением преемственности прикладных программных комплексов по отношению к аппаратным построениям распределенной вычислительной сети.  Основной задачей при создании системного программного обеспечения и инструментальных средств параллельного программирования МВС является разработка принципов обеспечивающих мобильность. Программное обеспечение осуществляет функционирование вычислительных ресурсов (ввод/вывод программ и данных, контроль за ходом вычислений и др.), а также предоставляет возможности распараллеливания вычислений на уровне процессов с использованием штатных средств передачи сообщений. Использование стандартных языков высокого уровня (таких как Fortran, C/C++ и др.) со средствами описания параллельных процессов позволяет осуществить переносимость накапливаемого программного обеспечения. Кроме обычно используемых были разработаны языковые средства Фортран GNS, Си GNS, Фортран DVM, Си DVM и системы параллельного программирования на их базе. Выбор языкового подхода позволяет повысить уровень мобильности прикладных программ по сравнению с использованием традиционного библиотечного подхода.  Разработанные на сегодня средства программного обеспечения дают возможность работать со стандартными операционными оболочками и библиотечными программами, такими как PVM (Parallel Virtual Machine) и MPI (Message Passing Interface), предназначенными для составления параллельных программ, использующих мультипроцессорную сеть как единый компьютер.  Переход от классических векторно-конвейерных супер-ЭВМ к многопроцессорным системам связан с большими трудностями из-за необходимости сохранения созданных программных продуктов. Поэтому предпринимаются энергичные усилия по построению способов автоматизации распараллеливания уже существующих прикладных программных комплексов. Одновременно, разработка новых ВМ для многопроцессорных систем сопровождается созданием для них полноценного программного обеспечения, которое расширяется средствами для осуществления распараллеливания.  Общее направление работ по программному обеспечению - создание инструментальных средств разработки мобильных программных комплексов на единой стандартизованной коммуникационной базе. Это позволяет создавать переносимые и эффективные программы, обладающие следующими свойствами:  - один исходный текст программы для последовательного и параллельного выполнения на ЭВМ различной архитектуры;  - динамическая настройка программы (без перекомпилляции) на конкретную конфигурацию системы, с учетом фактического количества процессоров и их производительности;  - возможность использования таких программ в качестве параллельных модулей при создании новых параллельных программ.  3. Создание программного обеспечения функционирования многопроцессорных систем, в том числе коммуникационной сети вычислительных модулей (ВМ) и между ВМ и внешними абонентами.  Среди различных направлений реализации параллельных вычислений наиболее экономически выгодным (по показателям производительность/стоимость) представляется создание систем массового параллелизма с распределенной обработкой информации. Для осуществления распределенной обработки информации на компьютерных сетях и многомашинных комплексах за рубежом используется большое число протоколов обмена. Однако, реализация протоколов с очень широкими возможностями (например MPI) влечет за собой очень большие накладные расходы, что фактически многократно снижает пропускную способность каналов межпроцессорного обмена.  Применение UNIX-подобных операционных систем (VxWorks или Linux) для отдельных ВМ и, в целом, для мультипроцессорной сети делает возможным удаленный, многозадачный, многопользовательский доступ к МВС. Следует отметить, что такой подход позволяет переносить программы с сети рабочих станций на многопроцессорную систему со значительным сокращением накладных расходов, фактически имеющихся в неоднородных компьютерных сетях. Принятые в системах МВС решения построения системного программного обеспечения обеспечивают простоту, надежность функционирования и позволяют избежать сложной системы коммутации между ВМ .  4. Разработка архитектур многопроцессорных вычислительных систем; инженерное конструирование ВМ и вычислительного поля в целом.  Построение оптимальной структуры вычислительной системы является сложной многокритериальной задачей. При создании многопроцессорных вычислительных систем их фактическая производительность зависит от способов построения сети передачи сообщений. Ее оптимальный выбор может обеспечить эффективную поддержку на всех этапах решения задачи от реализации схемы параллелизма вычислительного алгоритма до обработки программы компиляторами. Зачастую это дает повышение производительности системы больше, чем увеличение производительности самих микропроцессоров. По существу производительность системы в целом напрямую зависит от адекватности отображения структуры вычислительного алгоритма на схему межпроцессорных связей. Одной из возможностей для поддержки адекватности архитектуры многопроцессорной системы особенностям структуры вычислительных методов является включение аппаратных средств коммутации и возможности программного управления ими. Однако, такой подход существенно усложняет и удорожает многопроцессорную систему, лишая ее основного экономического преимущества по показателю производительность/стоимость.  Инженерное конструирование ВМ заключается в создании вычислительного узла системы, включая средства его сопряжения с себе подобными. Как правило, в конструкции используются вычислительный микропроцессор, связной микропроцессор, осуществляющий интерфейс, оперативная память, специальная плата, на которой осуществляется монтаж компонент ВМ, устройств питания и др. При выборе компонент, кроме выполнения требований по производительности и по объему памяти, должны быть выполнены условия по сбалансированности производства вычислений и скорости передачи данных между ВМ. Важным является конструктивное решение по двухуровневой реализации ВМ (условно - уровень производства вычислений и уровень передачи данных). При таком построении возможна модернизация ВМ без изменения его структуры, т.е. наращивание его вычислительной мощности и пропускной способности межпроцессорного обмена.  Системы с распределенной памятью - наиболее простые по построению, но достаточно эффективно используются в различных вычислительных приложениях. Однако, на исполнителя-математика они налагают дополнительные трудности при распараллеливании процесса вычислений. Поэтому с развитием номенклатуры и функциональной специфики микропроцессорной базы все большее внимание уделяется созданию многопроцессорных систем с общей (разделяемой) памятью.  В многопроцессорных системах используются существенно более сложные аппаратные способы построения перестраиваемой архитектуры. Интенсивно проводятся работы по новой аппаратной реализации межпроцессорных интерфейсов с гигабайтными скоростями обмена. В рамках программы ASCI формируется профиль промышленных стандартов, по которым развиваются многопроцессорные системы для различных областей применений. Этот подход отвечает современным концепциям построения многоуровневых открытых и расширяемых систем, стандартизованных интерфейсов, переносимого программного обеспечения.  5. Построение и задействование распределенных вычислительных и информационных систем - кластеров рабочих станций, многомашинных комплексов и др.  Речь идет о наращивании инфраструктуры МВС для их использования в качестве мощного вычислительного ресурса в составе суперкомпьютерных центров коллективного пользования. Практическое освоение этого направления использования супер-ЭВМ является безусловно приоритетным. В современном понимании вычислительный центр является центральным супер-компьютерным узлом, в который входят региональные центры через локальные и глобальные компьютерные сети с удаленными пользовательскими терминалами, которые сами по себе являются компьютерами значительной мощности. Такая схема построения характерна для ведущих суперкомпьютерных центров, удовлетворяющих таким основополагающим требованиям, как открытость, масштабируемость, портабельность, отсутствие тупиковых ситуаций, эффективность загрузки ресурсов и т.п.  Что такое кластер?  Стандартное определение таково: кластер - это набор вычислительных узлов (вполне самостоятельных компьютеров), связанных высокоскоростной сетью (интерконнектом) и объединенных в логическое целое специальным программным обеспечением (ПО). Фактически простейший кластер можно собрать из нескольких персоналок, находящихся в одной локальной сети, просто установив на них соответствующее ПО. Однако подобные схемы - скорее редкость, нежели правило: обычно кластеры (даже недорогие) собираются из специально выделенных для этой цели компьютеров и связываются друг с другом отдельной локальной сетью.  В чем идея подобного объединения? Кластеры ассоциируются у нас с суперкомпьютерами, круглые сутки решающими на десятках, сотнях и тысячах вычислительных узлов какую-нибудь сверхбольшую задачу, но на практике существует и множество куда более "приземленных" кластерных применений. Часто встречаются кластеры, в которых одни узлы, дублируя другие, готовы в любой момент перехватить управление, или, например, одни узлы, проверяя получаемые с другого узла результаты, радикально повышают надежность системы. Еще одно популярное применение кластеров - решение задачи массового обслуживания, когда серверу приходится отвечать на большое количество независимых запросов, которые можно легко раскидать по разным вычислительным узлам (обычно эту систему называют серверной фермой, именно по такому принципу работает Google). Однако рассказывать об этих двух, если угодно, "вырожденных" случаях кластерных систем практически нечего - из их краткого описания и так ясно, как они работают; поэтому разговор наш пойдет именно о суперкомпьютерах.  Итак, суперкомпьютер-кластер. Он состоит из трех основных компонентов: собственно вычислителей - компьютеров, образующих узлы кластера; интерконнекта, соединяющего эти узлы в сеть, и программного обеспечения, заставляющего всю конструкцию работать в стиле единого компьютера. В роли вычислительных узлов может выступать что угодно - от старой никому не нужной персоналки до современного четырехпроцессорного сервера, причем их количество ничем не ограниченно (ну разве что площадью помещения да здравым смыслом). Чем быстрее и чем больше - тем лучше; и как эти узлы устроены, тоже неважно. Обычно для упрощения решения и непростой задачи балансировки нагрузки на разные узлы кластера все узлы в кластере делают одинаковыми, но даже это требование не абсолютно. Гораздо сложнее обустроить интерконнект.  История развития кластерных систем неразрывно связана с развитием сетевых технологий. Дело в том, что, чем больше элементов в кластере и чем они быстрее, и, соответственно, чем выше быстродействие всего кластера, тем более жесткие требования предъявляются к скорости интерконнекта. Можно собрать кластерную систему хоть из 10 тысяч узлов, но если вы не обеспечите достаточной скорости обмена данными, то производительность компьютера по-прежнему оставит желать лучшего. А поскольку кластеры в высокопроизводительных вычислениях - это практически всегда суперкомпьютеры, то и интерконнект для них просто обязан быть очень быстрым, иначе полностью раскрыть свои возможности кластер не сможет. С повсеместным распространением гигабитных сетевых карт, ситуация в этой области становится проще: кластеры, построенные на основе Gigabit Ethernet, довольно дешевы, и в большинстве случаев предоставляемых ими скоростей вполне достаточно.