Организация вычислительных систем

Параллельные системы

Показывать лекцию целиком

Параллельная обработка данных на ЭВМ

Оксфордский толковый словарь по вычислительной технике, изданный в 1986 году, сообщает, что суперкомпьютер - это очень мощная ЭВМ с производительностью свыше 10 MFLOPS. Сегодня этот результат перекрывают уже не только рабочие станции, но, по пиковой производительности, и ПК. В начале 1990-х годов границу проводили уже около отметки в 300 MFLOPS. В 2001 году специалисты двух ведущих "суперкомпьютерных" стран, США и Японии, договорились о подъеме планки до 5 GFLOPS.

Таким образом, основные признаки, характеризующие супер-ЭВМ, следующие:

  • самая высокая производительность;
  • самый современный технологический уровень (например, GaAs-технология);
  • специфические архитектурные решения, направленные на повышение быстродействия (например, наличие операций над векторами);
  • цена, обычно свыше 1-2 млн. долларов.
  • Какой из факторов является решающим в достижении современных фантастических показателей производительности? Обратимся к историческим фактам. На одном из самых первых компьютеров EDSAC (1949 г.), имевшем время такта 2 мкс, можно было выполнить в среднем 100 арифметических операций в секунду. А пиковая производительность суперкомпьютера CRAY C90 с временем такта порядка 4 нс - около 1 миллиарда арифметических операций в секунду. Таким образом, производительность компьютеров за этот период возросла примерно в 10 миллионов раз, а время такта уменьшилось лишь в 500 раз. Следовательно, увеличение производительности происходило и за счет других факторов, важнейшим среди которых является использование новых архитектурных решений, в частности - принципа параллельной обработки данных.

    Параллельная обработка данных имеет две разновидности: конвейерность и параллельность.

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

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

    Закон Амдала

    Закон Амдала

    S<= 1/ [f + (1-f)/p]

    где S - ускорение, f - доля операций, которые нужно выполнить последовательно, p - число процессоров.

    Следствие из закона Амдала: для того чтобы ускорить выполнение программы в q раз, необходимо ускорить не менее чем в q раз и не менее чем (1-1/q) -ую часть программы. Следовательно, если нужно ускорить программу в 100 раз по сравнению с ее последовательным вариантом, то необходимо получить не меньшее ускорение на не менее чем 99,99 % кода!

    История появления параллелизма в архитектуре ЭВМ

    Все современные процессоры используют тот или иной вид параллельной обработки. Изначально эти идеи внедрялись в самых передовых, а потому единичных компьютерах своего времени:

  • 1953 г. - IBM 701, 1955 г. - IBM 704: разрядно параллельная память и арифметика, АЛУ с плавающей точкой.
  • 1958 г. - IBM 709: независимые процессоры ввода/вывода (т.е. контроллеры ВУ).
  • 1961 г. - IBM STRETCH: опережающий просмотр вперед, расслоение памяти на 2 банка.
  • 1963 г. - ATLAS: реализована конвейерная обработка данных - конвейер команд.
  • 1964 г. - CDC 6600: независимые функциональные устройства.
  • 1969 г. - CDC 7600: конвейерные независимые функциональные устройства (8 конвейеров).
  • 1974 г. - ALLIAC: матричные процессоры (УУ + матрица из 64 процессоров).
  • 1976 г. - CRAY1: векторно-конвейерные процессоры. Введение векторных команд, работающих с целыми массивами независимых данных.
  • Классы параллельных систем

    I. Векторно-конвейерные компьютеры (PVP). Имеют MIMD-архитектуру (множество инструкций над множеством данных).

    Основные особенности:

  • конвейерные функциональные устройства;
  • набор векторных инструкций в системе команд;
  • зацепление команд (используется как средство ускорения вычислений).
  • Характерным представителем данного направления является семейство векторно-конвейерных компьютеров CRAY.

    Рассмотрим, например, суперкомпьютер CRAY Y-MP C90, имеющий следующие характеристики:

  • Максимальная конфигурация - 16 процессоров, время такта - 4,1 нс, что соответствует тактовой частоте почти 250 МГц.
  • Разделяемые ресурсы процессора:
  • Оперативная память (ОП) разделяется всеми процессорами и секцией ввода/вывода, разделена на множество банков, которые могут работать одновременно.
  • Секция ввода/вывода. Компьютер поддерживает три типа каналов с разной скоростью передачи:

    Low-Speed Channels - 6 Мбайт/с

    High-Speed Channels - 200 Мбайт/с

    Very High-Speed Channels - 1800 Мбайт/с

  • Секция межпроцессорного взаимодействия содержит регистры и семафоры, предназначенные для передачи данных и управляющей информации.
  • Вычислительная секция процессора состоит из:
  • регистров (адресных, скалярных, векторных);
  • функциональных устройств;
  • сети коммуникаций.
  • Секция управления.

    Команды выбираются из ОП блоками и заносятся в буфера команд.

  • Параллельное выполнение программ.

    Все основные операции, выполняемые процессором - обращение в память, обработка команд и выполнение инструкций - являются конвейерными.

  • II. Массивно-параллельные компьютеры с распределенной памятью. Объединяется несколько серийных микропроцессоров, каждый со своей локальной памятью, посредством некоторой коммуникационной среды.

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

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

    Но эта архитектура имеет 2 существенных недостатка:

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

    К данному классу можно отнести компьютеры Intel Paragon, IBM SP1, Parsytec, IBM SP2 и CRAY T3D.

    Компьютеры Cray T3D и T3E используют единое адресное пространство (общая виртуальная память) (см. рис. 11.1). По аппаратному прерыванию особого случая адресации ОС выполняет пересылку страницы с одного узла на другой. У каждого МП своя локальная память, но единое виртуальное адресное пространство.

    (рис 11.1) Структура супер-ЭВМ Cray T3D

    Факторы, снижающие производительность параллельных компьютеров:

  • Закон Амдала.

    В табл. 11.1 показано, на какое максимальное ускорение работы программы можно рассчитывать в зависимости от доли последовательных вычислений и числа доступных процессоров.

    Число ПЭ Доля последовательных вычислений
    50% 25% 10% 5% 2%
    2 1,33 1,60 1,82 1,90 1,96
    8 1,78 2,91 4,71 5,93 7,02
    32 1,94 3,66 7,80 12,55 19,75
    512 1,99 3,97 9,83 19,28 45,63
    2048 2,00 3,99 9,96 19,82 48,83
  • Время инициализации посылки сообщения (латентность) и время передачи сообщения по сети.

    Максимальная скорость передачи достигается на больших сообщениях, когда латентность, возникающая лишь вначале, не столь заметна на фоне непосредственно передачи данных.

  • Возможность асинхронной посылки сообщений и вычислений.

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

  • Неравномерная загрузка всех процессорных элементов.

    Если равномерности нет, то часть процессоров будут простаивать, ожидая остальных, хотя в этот момент они могли бы выполнять полезную работу.

  • Время ожидания прихода сообщения.

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

  • Реальная производительность одного процессора.
  • III. Параллельные компьютеры с общей памятью (SMP). Вся оперативная память разделяется между несколькими одинаковыми процессорами. Это снимает проблемы предыдущего класса, но добавляет новые - число процессоров, имеющих доступ к общей памяти, нельзя сделать большим. В данное направление входят многие современные многопроцессорные SMP-компьютеры или, например, отдельные узлы компьютеров HP Exemplar и Sun StarFire.

    Основное преимущество таких компьютеров - относительная простота программирования. В ситуации, когда все процессоры имеют одинаково быстрый доступ к общей памяти, вопрос о том, какой процессор какие вычисления будет выполнять, не столь принципиален, и значительная часть вычислительных алгоритмов, разработанных для последовательных компьютеров, может быть ускорена с помощью распараллеливающих и векторизирующих трансляторов. SMP-компьютеры - это наиболее распространенные сейчас параллельные вычислители. Однако общее число процессоров в SMP-системах, как правило, не превышает 16, а их дальнейшее увеличение не дает выигрыша из-за конфликтов при обращении к памяти.

    IV. Кластерная архитектура. По такому принципу построены CRAY SV1, HP Exemplar, Sun StarFire, NEC SX-5, последние модели IBM SP2 и другие.

    Кластерная архитектура представляет собой комбинации предыдущих трех. Из нескольких процессоров (традиционных или векторно-конвейерных) и общей для них памяти формируется вычислительный узел. Если полученной вычислительной мощности не достаточно, то объединяется несколько узлов высокоскоростными каналами. Часто создаются из общедоступных компьютеров на базе Intel и недорогих Ethernet-сетей под управлением операционной системы Linux.

    Технологии параллельного программирования

    Средства программирования: параллельные расширения и диалекты языков - Fortran, C/C++, ADA и др.

    Самым крупным достижением в деле создания программного обеспечения была стандартизация интерфейса передачи сообщений MPI (Message Passing Interface). Набор функций этого интерфейса вобрал в себя лучшие черты своих предшественников. Основные достоинства MPI:

  • поддержка нескольких режимов передачи данных;
  • предусматривает гетерогенные вычисления;
  • передача типизированных сообщений;
  • построение библиотек - MPICH, LAM MPI;
  • наличие вариантов для языков программирования C/C++, Fortran;
  • поддерживает коллективные операции: широковещательную передачу, разборку/сборку, операции редукции;
  • совместимость с многопоточностью.
  • Оценки производительности супер-ЭВМ

    Большинство оценочных характеристик производительности супер-ЭВМ связано с вычислениями над вещественными числами. К ним относится пиковая производительность (ПП), измеряемая в млн. операций с плавающей точкой, которые компьютер теоретически может выполнить за 1 с (MFLOPS).

    ПП - величина, практически не достижимая. Это связано с проблемами заполнения функциональных конвейерных устройств. Чем больше конвейер, тем больше надо "инициализационного" времени для того, чтобы его заполнить. Такие конвейеры эффективны при работе с длинными векторами. Поэтому для оценки векторных супер-ЭВМ было введено такое понятие, как длина полупроизводительности - длина вектора, при которой достигается половина пиковой производительности.

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

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

    Наиболее популярным тестом производительности является Linpack, который представляет собой решение системы N линейных уравнений методом Гаусса. Так как известно, сколько операций с вещественными числами нужно проделать для решения системы, то, зная время расчета, можно вычислить выполняемое в секунду количество операций.

    Имеется несколько модификаций этих тестов. Обычно фирмы-производители компьютеров приводят результаты при N = 100.

    Свободно распространяется стандартная программа на Фортране, которую надо выполнить на суперкомпьютере, чтобы получить результат тестирования. Эта программа не может быть изменена, за исключением замены вызовов подпрограмм, дающих доступ к процессорному времени выполнения.

    Другой стандартный тест относится к случаю N = 1000, предполагающему использование длинных векторов. Эти тесты могут выполняться на компьютерах при разном числе процессоров, давая также оценки качества распараллеливания.

    Для MPP-систем более интересным является тест Linpack-parallel, в котором производительность измеряется при больших N и большом количестве процессоров. Здесь лидером является 6768-процессорный Intel Paragon (281 GFLOPS при N = 128600). Что касается производительности процессоров, то при N = 100 лидирует Cray T916 (522 MFLOPS), при N = 1000 и по пиковой производительности - Hitachi S3800 (соответственно 6431 и 8000 MFLOPS). Для сравнения, процессор в AlphaServer 8400 имеет 140 MFLOPS при N =100 и 411 MFLOPS при N = 1000.

    Для высокопараллельных суперкомпьютеров в последнее время все больше используются тесты NAS parallel benchmark, которые особенно хороши для задач вычислительной газо- и гидродинамики. Их недостатком является фиксация алгоритма решения, а не текста программы.

    14 ноября 2005 года была опубликована 26-я редакция списка 500 наиболее мощных компьютеров мира Top500.

    На первом месте в 26-й редакции списка остался прототип будущего суперкомпьютера IBM BlueGene/L, число процессоров которого увеличилось до 131072, а производительность на Linpack - до 280.6 Tflop/s.

    На втором месте осталась другая инсталляция суперкомпьютера IBM BlueGene/L, установленная в Thomas J. Watson Research Center, на основе 40960 процессоров с производительностью на Linpack 91.29 Tflop/s.

    На третье место в новой редакции списка вышел суперкомпьютер ASC Purple производства IBM на основе 10240 процессоров p5 575 1.9 ГГц с производительностью на Linpack 63.39 Tflop/s.

    На 5-ом месте оказался суперкомпьютер Thunderbird производства Dell на основе 8000 процессоров PowerEdge 1850 3.6 ГГц с производительностью на Linpack 38.27 Tflop/s. На 6-ом месте - суперкомпьютер Red Storm производства Cray на основе технологии XT3 с производительностью на Linpack 36.19 Tflop/s.

    Суперкомпьютер Earth Simulator, долгое время возглавлявший список, оказался в новой редакции уже на 7-м месте.

    Суперкомпьютер Earth Simulator предназначен для моделирования климатических изменений на основе данных, которые поступают со спутников. Система базируется на 5120 таких процессорах, объединенных в 640 узлов SX-6 (по 8 процессоров в каждом). Суперкомпьютер работает под управлением ОС SUPER-UX. В числе средств разработки установлены компиляторы языков C/C++, Fortran 90 и HPF, а также средства автоматической векторизации, реализация интерфейса MPI-2 и математическая библиотека ASL/ES. Вся машина занимает площадь трех теннисных кортов (50x65 м) и использует несколько километров кабеля.

    На 10-м месте в списке оказался суперкомпьютер Jaguar, построенный по технологии Cray XT3 с производительностью на Linpack 20.527 Tflop/s.

    Полгода назад для попадания в первую десятку списка требовалась производительность 15.25 Tflop/s. Суммарная производительность систем в списке выросла за полгода с 1.69 Pflop/s до 2.30 PFlop/s.

    Общее число кластеров в списке еще увеличилось и составляет уже 360 систем (по сравнению с 304 в июне), таким образом, кластерная архитектура остается наиболее популярной при проектировании мощнейших суперкомпьютеров. В качестве коммуникационной технологии 249 кластеров используется Gigabit Ethernet, в 70 случаях - Myrinet.

    По количеству установленных систем, вошедших в список, IBM (219) продолжает доминировать, на втором месте по-прежнему Hewlett-Packard (169).

    С 56-го на 69-е место в новой редакции списка опустился российский суперкомпьютер MVS-15000BM производства IBM, установленный в Межведомственном суперкомпьютерном центре РАН и построенный на основе 924 процессоров PowerPC970 2.2 ГГц, объединенных коммуникационной сетью Myrinet, с производительностью на тесте Linpack 5.355 Tflop/s.

    С 174-го на 330-е место в новой редакции списка опустился белорусский суперкомпьютер SKIF K-1000, построенный на основе 576 процессоров AMD Opteron 2.2 ГГц и коммуникационной технологии Infiniband, с производительностью на Linpack 2.032 Tflop/s.

    Наиболее полную и интересную информацию о параллельных системах можно найти на сайте http://www.parallel.ru.

    Вопросы для самоконтроля

  • Когда впервые реализована конвейерная обработка данных?
  • Перечислите способы параллельной обработки данных.
  • Сформулируйте следствие из закона Амдала.
  • Назовите классы параллельных систем.
  • Основные особенности векторно-конвейерных компьютеров.
  • К какому классу параллельных систем относятся компьютеры Intel Paragon и CRAY T3D?
  • В каких классах параллельных систем оперативная память разделяется между несколькими процессорами?
  • Перечислите особенности MPI-интерфейса.
  • Что представляет собой тест оценки производительности суперЭВМ Linpack?
  • Какие тесты оценки производительности супер-ЭВМ вы знаете?
  • Вернуться к учебному плану