1 / 45

МЕТОДЫ ПОСТРОЕНИЯ ПАКЕТОВ ПРИКЛАДНЫХ ПРОГРАММ ДЛЯ НЕОДНОРОДНЫХ МНОГОЯДЕРНЫХ ПРОЦЕССОРОВ

Кафедра компьютерных систем и программных технологий. Недоводеев К.В. МЕТОДЫ ПОСТРОЕНИЯ ПАКЕТОВ ПРИКЛАДНЫХ ПРОГРАММ ДЛЯ НЕОДНОРОДНЫХ МНОГОЯДЕРНЫХ ПРОЦЕССОРОВ. Специальность 05.13.11 – Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей.

Download Presentation

МЕТОДЫ ПОСТРОЕНИЯ ПАКЕТОВ ПРИКЛАДНЫХ ПРОГРАММ ДЛЯ НЕОДНОРОДНЫХ МНОГОЯДЕРНЫХ ПРОЦЕССОРОВ

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Кафедра компьютерных систем и программных технологий Недоводеев К.В. МЕТОДЫ ПОСТРОЕНИЯ ПАКЕТОВ ПРИКЛАДНЫХ ПРОГРАММ ДЛЯ НЕОДНОРОДНЫХ МНОГОЯДЕРНЫХ ПРОЦЕССОРОВ Специальность05.13.11– Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей Научный руководитель: д.т.н., проректор по научной и инновационной деятельности,заведующий кафедрой Информационных систем СПбГУАПШейнин Юрий Евгеньевич yuriy-sheynin@yandex.ru

  2. Объекты исследований –неоднородные многоядерные процессоры(НМП) Предметисследований -методы построениявысокопроизводительных пакетов прикладных программ (ППП), предназначенных для обработкибольших массивов данныхв рамках НМП 2

  3. Общий технический облик НМП Ядра процессора неоднородны (управляющие, вычислительные, организации обмена)  необходимо выделить разнородные фрагменты задачи Имеется несколько вычислительных ядер и несколько ядер организации обмена информацией (ЯОИО)  необходимо распределять ресурсы Вычислительные ядра имеют доступ только к своей локальной памяти малого объема (сотни КБ)  необходимо делить данные и код программы на фрагменты, временно выгружать результаты вычислений в основную память без нарушения целостности Для обмена между модулями памяти необходимо программировать ЯОИО  в программе должны явно присутствовать соответствующие фрагменты 3

  4. Общий технический облик НМП(продолжение) Каналы обмена с основной памятью медленные, имеются быстрые каналы обмена между модулями локальной памяти необходимо снижать нагрузку на канал обмена с основной памятью за счет повторного использования данных, находящихся в локальной памяти и организации прямой передачи данных между модулями локальной памяти ЯОИО работают асинхронно  необходимо организовать максимальное перекрытие вычислений и обменов без нарушения целостности данных в локальной памяти Примеры НМП: Cell, Diopsis, OMAP5910, MC24, MC0226 4

  5. Существующие подходы к построению ППП Направлены на построение ППП для однородных многоядерных процессоров (ОМП) с «прозрачным» доступом к полю основной памяти  не применимы к НМП, поскольку не учитывают принципиальную необходимость разбиения задачи на фрагменты и явного управления перемещением информации между модулями памяти. Рассматривают частный случай НМП (у каждого вычислительного ядра свое ЯОИО) как ОМП с другой реализацией механизма выборки команд и данных из основной памяти  неприменимы для других конфигураций. 5

  6. Существующие проекты, связанные с построением ППП Проект PLASMA (Джек Донгарра, Инновационная Лаборатория Вычислений, Университет Теннеси). Проект CellSs, часть проекта StarS (Иисус Лабарта, Суперкомпьютерный Центр Барселоны). Проект Cilk (Чарльз Эрик Лейзерсон, Лаборатория компьютерных наук и искусственного интеллекта, Массачусетский технологический институт) Проект Sequoia (Вильям Дэлли, Пэт Хэнрахан, Алекс Эйкен, Стэнфордский университет). 6

  7. CellSs(схема организации) Динамическая генерация графа потоков данных, анализ зависимостей по данным во время выполнения, централизованное динамическое распределение ресурсов, динамическая дефрагментация локальной памяти высокий уровень накладных расходов по ходу выполнения программы Иисус Лабарта, и др. (Суперкомпьютерный центр Барселоны) 7

  8. Статический конвейер (PLASMA)(схема организации) Джек Донгарра, и др. (Инновационная Лаборатория Вычислений, Университет Теннеси) Статическое «жесткое» распределение вычислительной нагрузки, задаваемое вручную, использование сервисных таблиц, размещаемых в локальной памяти возможность внесения ошибок в расписание и «жесткие» ограничения на размерность решаемой задачи 8

  9. Разработать методы, обеспечивающие автоматическую адаптацию программы к характеристикам задачи и неоднородной многоядерной «системы-на-кристалле» (НМСнК), а также высокую степень переносимости, при построении высокопроизводительных пакетов прикладных программ (ППП), предназначенных для решения задач обработки клеточных матриц, которые можно сформулировать в виде совокупности алгебраических операций над клеткамиматриц, в рамках НМСнК, построенной на базе подсистемы памяти с программируемым информационным обменом. Цель работы 9

  10. Класс задач Класс задач обработки матриц включает: задачи алгебры матриц (умножение матрицы на матрицу, сложение матриц и умножение матрицы на число), а также, решение СЛАУ с треугольной матрицей коэффициентов и одним или несколькими векторами правых частей. (все подпрограммы входят в состав библиотеки BLAS) Указанные задачи встречаются в таких областях как адаптивная фильтрация, обработка данных с радара, распознавание образов, кодирование сигналов, оценка влияния и фильтрация шума. 10

  11. Класс задач(продолжение) Разработанный метод неприменим для задачи транспонирования прямоугольной матрицы с замещением данных и обращения плотной матрицы общего вида. Транспонирование формулируется в терминах операций перестановки и в общем виде не может быть представлена как применение совокупности операций, результатом каждой из которых будет являться одна прямоугольная клетка (условие применимости предложенных методов). Поиск ведущего элемента и последующая перестановка строк требуют обращения ко всему клеточному столбцу, что нарушает требование единственного разбиения матриц на клетки (условие применимости предложенных методов). 11

  12. NB MB Предложен новый метод построения ППП, позволяющий автоматически синтезировать исходные тексты параллельной программы обработки матриц в рамках НМП, указав: 1. тип решаемой задачи; 2. конфигурацию обрабатываемых матриц; 3. конфигурацию клеточного разбиения матриц; 4. количество вычислительных ядер для распараллеливания обработки данных. Конфигурация матриц – количество элементов по каждому из независимых измерений. Конфигурация клеточного разбиения – максимальное (может быть меньше для клеток последней строки и последнего столбца матрицы) количество элементов в клетке по каждому из независимых измерений. 12

  13. проанализировать существующие неоднородные многоядерные «системы-на-кристалле», сформировать их общий технический облик; исследовать существующие методы построения пакетов прикладных программ для многоядерных систем на кристалле, выявить их преимущества и недостатки; выбрать либо предложить формальную модель системы заданий позволяющую гибко производить распределение вычислительной нагрузки и информационного обмена между входящими в состав НМСнК ядрами; Задачи работы 13

  14. Задачи работы(продолжение) разработать метод и алгоритм синтеза формального представления индивидуальной задачи обработки двумерных матриц большой размерности; разработать формальную модель НМСнК; разработать метод и алгоритм распределения вычислительной нагрузки и информационных обменов между узлами НМСнК. 14

  15. Укрупненная схема метода построения ППП Основные этапы получения исходных текстов программы: 1. построение представления обобщенной задачи - «свернутого» графа (осуществляется вручную); 2. синтез представления индивидуальной задачи - макро-потокового графа (может осуществляться вручную, допускает программную реализацию); 3. распределение ресурсов НМП (реализовано программно); 4. генерация исходных текстов (реализовано программно). 15

  16. Макро-потоковый граф(положение, выносимое на защиту) Макро-потоковый граф – размеченный ориентированный ациклический граф GA=<VA, EA> потоков данных с дополнительным разбиением всего множества акторов VA на множество акторов передачи данныхVD и множество вычислительных акторовVC(т.о. неоднородность фрагментов индивидуальной задачи отражена в ее модели). Правила срабатывания акторов такие же, как в модели статических потоков данных. Разметка акторов позволяет адекватно описать процесс параллельной обработки блоков данных. Актор передачи данных – актор, соответствующий передаче блока данных в процессе выполнения программы. Вычислительный актор – актор, соответствующий вызову вычислительной гранулы. Вычислительная гранула – подпрограмма, предназначенная для обработки данных вычислительным ядром над полем своей локальной памяти. 16

  17. Макро-потоковый граф(примеры диаграмм) SGEMV (матрица 3x3 клетки) STRSV (матрица 8x8 клеток) Вычислительные акторы изображены крупнее. Все акторы передачи данных имеют серый цвет, каждый актор передачи данных соответствует передаче блока матрицы. Наличие дуг отражает частичный порядок срабатывания акторов. 17

  18. «Свернутый» граф(положение, выносимое на защиту) GB=<VB, EB>, (свернутый граф - представление обобщенной задачи) EB = ED EC, VB= VDVC V B E L

  19. Методика построения «свернутого» графа(положение, выносимое на защиту) Вход: Формула F Выход: «Свернутый» граф GB Пример формулы для графа, изображенного на предыдущемслайде: yi1 = Σj  JAij xj + yi  i  I

  20. Методика построения «свернутого» графа(свойства) Лемма: Для любой заданной формулы F, удовлетворяющей ограничивающим условиям, используя представленную методику, можно построить конечный «свернутый» граф GB. Доказательство леммы приведено в работе.

  21. Алгоритм синтеза макро-потокового графа(положение, выносимое на защиту) Вход: «Свернутый» графGB, кортеж параметров индивидуальной задачи Выход: Макро-потоковый графGA

  22. Алгоритм синтеза макро-потокового графа(кортеж параметров индивидуальной задачи) • Кортеж параметров индивидуальной задачи задает следующий набор числовых параметров, характеризующих ее: • размерность задачи по каждому из измерений данных; • гранулярность разбиения данных по каждому из измерений; • значения скалярных коэффициентов, β, входящих в формулу; • количество клеток по каждому из измерений данных; • базовые адреса размещения массивов, содержащих матрицы • (символьные имена указателей); • размеры областей памяти, занимаемых элементами матриц. 22

  23. Синтез макро-потокового графа(свойства) Свойство 1: При использовании алгоритма синтеза макро-потокового графа по заданному кортежу параметров индивидуальной задачи  и соответствующему ему «свернутому» графу GB, построенному по предложенной методике всегда можно построить конечный макро-потоковый графGA. Свойство 2: Макро-потоковый графGA, построенный с использованием предложенного алгоритма, является адекватным представлением индивидуальной задачи, которой соответствует формула F, при условии, что ранее по F был построен «свернутый» граф GBи задан соответствующий ему кортеж параметров индивидуальной задачи . Наличие указанных свойств доказано в работе.

  24. Гиперграфовая модель процессора(положение, выносимое на защиту) ГиперграфHp=<Vp, Ep>, Ep – множество ориентированных гипердуг Vp = Sp Cp Dp Mp, Ep = EpC EpIE EpIED EpD, Mp= MpC MpD MpA (формализм ориентированных гиперграфов взят из работы Г.С. Ивановой).

  25. Гиперграфовая модель процессора(положение, выносимое на защиту, продолжение)

  26. Гиперграфовая модель процессора(положение, выносимое на защиту,разметка) 26

  27. Гиперграфовая модель процессора(пример) Для процессора MC24, структурная схема которого представлена выше, структура множества Vpследующая: Sp={s1}, Cp={c1}, Dp={d1}, Mp={m1, m2, m3, m4, m5}, EpIED={<m2, d1, m3>, < m2, d1, m4>, < m2, d1, m5>, < m4, d1, m2>}. При этом, соответствие между вершинами из Mp и модулями памяти следующее: m1 – CRAM, m2 – внешняя память, m3 – PRAM, m4 – XRAM, m5 – YRAM. Поскольку память CRAM не участвует в обработке данных, каналы информационного обмена с ее участием в модели Hp не отражены. 27

  28. Распределение ресурсов(обзор существующих работ) Задачи построения расписания по ациклическому графу заданий (task graph) рассматриваются в работах таких ученых как: Квок и Ахмад, Янг и Герасулис, Рамамурти и Шанди, Ву и Гайский. Существующие методы статического построения расписания не учитывают наличие у вычислительных ядер локальной памяти малого объема и отсутствие «прозрачного» доступа к основной памяти, что делает актуальным разработку нового метода, восполняющего этот пробел. 28

  29. Распределение ресурсов(определение расписания) S(G) = <G,, C, D, , >

  30. Обобщенный алгоритм распределения ресурсов(положение, выносимое на защиту) 1. Оценить достаточное количество памяти 2. Выделить память под буферы 3. Распределить вычислительную нагрузку 4. Произвести реструктуризацию макро-потокового графа 5. Организовать подкачку кода вычислительных гранул 6. Распределить информационные обмены 7. Распределить пространство буферов

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

  32. Выделение достаточного количества локальной памяти В локальной памяти выделяется nbdataбуферов для данных, один из которых участвует в обработке, остальные используются для вв./выв. в течение заданного этапа; Размер одного буфера данных выбирается исходя из max размера блока (sblock)и max количества одновременно обрабатываемых гранулой блоков (nbmax) таким образом, чтобы все обрабатываемые любым вызовом данные умещались в рамках одного буфера. Значения sblockи nbmaxопределяются по макро-потоковому графу. 32

  33. Выделение достаточного количества локальной памяти(продолжение) В локальной памяти выделяется nbcodeбуферов для хранения кода вычислительных гранул, а также nbcode буферов для хранения записей активации; Размер одного буфера гранул равен размеруmax большой гранулы (sgr),размер буфера для записи активации равен размеру max большой ЗА (spar). Значения sgrи sparопределяются по макро-потоковому графу. При необходимости в локальной памяти выделяется nbdmaбуферов для хранения DMA-заданий. Размер одного буфера равен произведению размера одного задания (sdmatask берется из модели процессора) и max количества заданий, которые могут обрабатываться одним DMA-ядром в течение одного этапа. 33

  34. Достаточный размер буфера временного хранения результатов вычислений «Временный» буфер выделяется в основной памяти. Его максимальный размер (stbuf) определяется по макро-потоковому графу и удовлетворяет: stbuf < |W| sblock, где множество W – множество вычислительных акторов, потенциально увеличивающих число хранимых блоков. W = VC \ (U  V  Vout), где Vout – акторы, соответствующие вызовам, не передающим результаты далее, V: V  Vout =  – акторы, не увеличивающие количество хранимых блоков, U: U  Vout =  – акторы, всегда уменьшающие количество хранимых блоков. 34

  35. Алгоритм распределения вычислительной нагрузки

  36. Реструктуризация макро-потокового графа Реструктуризация макро-потокового графа заключается в замене двух связанных акторов передачи данных на один, в том случае, когда передача блока данных через временный буфер в основной памяти (по-умолчанию) заменяется на прямую межмодульную передачу данных, либо передачу данных через локальную память вычислительного ядра. Условие: Вычислительный актор-приемник данных срабатывает не позже, чем через n этапов после срабатывания актора-поставщика данных, где n – количество буферов данных.

  37. Алгоритм межэтапного распределения обменов

  38. Алгоритм внутриэтапного распределения обменов

  39. Новые научные результаты • предложенамодель обобщенной задачи обработки двумерных числовых матриц – «свернутый» граф, содержащая количество информации достаточное для синтеза макро-потокового графа; • предложена методика построения «свернутого» графа по формуле в блочных обозначениях; • предложенамодель системы заданий - макро-потоковый граф, отражающая необходимость проведения обработки данных в рамках локальной памяти вычислительного ядра, имеющей малый объем, а также наличие ЯОИО, способных вести обмен асинхронно по отношению к обработке данных вычислительными ядрами; • предложен метод и разработан алгоритм статического синтеза макро-потокового графа для индивидуальной задачи по «свернутому» графу, позволяющий избавиться от соответствующих накладных расходов во время выполнения программы;

  40. Новые научные результаты (продолжение) • предложенагиперграфовая модель неоднородного многоядерного процессора, содержащая информацию о каналах информационного обмена, находящихся под управлением ЯОИО, а также о модулях основной памяти и локальной памяти вычислительных ядер; • предложен эвристический метод и разработан алгоритм статического распределения ресурсов, базирующийся на построении списка узлов макро-потокового графа, представляющих вычислительную нагрузку в задаче. Указанный метод отличается тем, что сразу после синтеза макро-потокового графа производится оценка достаточного количества локальной памяти в вычислительных ядрах, что позволяет сократить интервал времени между выбором конфигурации индивидуальной задачи и получением сообщения о переполнении локальной памяти.

  41. Результаты, полученные экспериментальным путем Ускорение вычислений при распараллеливании на два вычислительных ядра процессора MC0226 составило от 1,42 для strsmс размерностью 152 элемента, до 1,97 для sgemmс размерностью 168 элементов; Производительность подпрограммы sgemmпри использовании двух вычислительных ядер процессора MC0226 составила: 233 МФлоп/с (72,8% от пиковой производительности двух ядер, что составляет 85% от максимальной производительности двух гранул) для размерности задачи равной 84 элементам и 264 МФлоп/с (82,5% от пиковой производительности двух ядер, что составляет 96,4% от максимальной производительности двух гранул) для размерности задачи равной 168 элементов. Разрыв между производительностью гранул и производительностью программы обусловлен наличием синхронизации, подкачки данных в начале и отвода результатов в конце процесса их обработки и не может быть сокращен.

  42. Масштабируемость подпрограмм sgemm и strsm близка к линейной. N – блочная размерность задачи, NB = 38 размерность блока.(N = 16 · 38 = 608) Результаты, полученные экспериментальным путем(продолжение) 42

  43. Результаты, полученные экспериментальным путем(продолжение) Перенос прототипа ППП между процессорами MC24 и MC0226 потребовал изменения менее чем 0,5% от общего объема инструментальных средств пакета; Добавление в прототип каждой из четырех подпрограмм потребовало добавления менее чем 1,5% от общего объема инструментальных средств пакета для каждой подпрограммы.

  44. Практическая значимость результатов работы • разработан прототип ППП, позволяющий свести долю ручного программирования до разработки подпрограмм для вычислительных ядер и слоя абстрагирования от аппаратных механизмов конкретной СнК. Разработанный образец отличается тем, что синтез представления индивидуальной задачи и распределение ресурсов производятся до выполнения программы, что положительно сказывается на ее производительности. • распределение ресурсов в ППП производится на основанииформальной моделиНМСнК. Использование текстового файла с описанием модели позволяет расширять возможности ППП на новые системы без дописывания инструментальных средств; • экспериментальное исследование характеристик подпрограмм из библиотеки BLAS выявило, что вычислительно-емкие подпрограммы достигают высокого уровня производительности уже при малой размерности задачи, масштабирование вычислений близко к линейному, а генерация подпрограмм для задач большой размерности и НМСнК с большим количеством ядер производится за приемлемое время.

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

More Related