КАРТОЧКА ПРОЕКТА ФУНДАМЕНТАЛЬНЫХ И ПОИСКОВЫХ НАУЧНЫХ ИССЛЕДОВАНИЙ,
ПОДДЕРЖАННОГО РОССИЙСКИМ НАУЧНЫМ ФОНДОМ

Информация подготовлена на основании данных из Информационно-аналитической системы РНФ, содержательная часть представлена в авторской редакции. Все права принадлежат авторам, использование или перепечатка материалов допустима только с предварительного согласия авторов.

 

ОБЩИЕ СВЕДЕНИЯ


Номер 22-21-00671

НазваниеАлгоритмы и методы отображения программ на многоядерные микросхемы с распределенной адресуемой памятью

РуководительШтейнберг Борис Яковлевич, Доктор технических наук

Организация финансирования, регион федеральное государственное автономное образовательное учреждение высшего образования "Южный федеральный университет", Ростовская обл

Период выполнения при поддержке РНФ 2022 г. - 2023 г. 

Конкурс№64 - Конкурс 2021 года «Проведение фундаментальных научных исследований и поисковых научных исследований малыми отдельными научными группами».

Область знания, основной код классификатора 01 - Математика, информатика и науки о системах, 01-411 - Системное программирование высокопроизводительных компьютерных систем

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

Код ГРНТИ50.00.00


СтатусУспешно завершен


 

ИНФОРМАЦИЯ ИЗ ЗАЯВКИ


Аннотация
В данном проекте рассматривается проблема создания эффективного высокоуровневого программного обеспечения для вычислительных систем с распределенной памятью, включая многоядерные системы на кристалле с распределенной адресуемой памятью. Решение этой проблемы позволит повысить производительность современных вычислительных систем для решения многих прикладных задач биоинформатики, математического моделирования, обработки изображений, искусственного интеллекта и др. Узкое место производительности для большинства прикладных задач – доступ к оперативной памяти. Появление кэш-памяти в многоядерных процессорах позволяет параллельно выполнять чтение данных в каждое из ядер. Но запись в кэш-память влечет за собой запись в оперативную память, рост производительности которой более чем на порядок отстает от производительности вычислительных операций. По этой причине массовые процессоры X86 и ARM имеют относительно мало вычислительных ядер. Этого недостатка лишены многоядерные системы на кристалле с распределенной адресуемой локальной памятью, таких как: Tile64, Epiphany-1024 (1024 ядра), 1879ВМ8Я (16-ядерная микросхема российского НТЦ "Модуль"). Такие микросхемы представляют собой кластер на кристалле и позволяют выполнять не только одновременные чтения данных, но и одновременные их сохранения (запись) в локальной памяти каждого ядра. Отсутствие эффективных инструментов разработки программ для таких систем на кристалле сдерживает их развитие и развитие многих прикладных программ. Представленные в данном проекте алгоритмы могут применяться к высокопроизводительным кластерам. Но эффективность представленных методов для многоядерных микросхем с распределенной адресуемой памятью ожидается значительно более высокой, чем для кластеров. Это имеет следующие причины. Время межпроцессорной пересылки по коммуникационной сети многократно превосходит время арифметической операции и для многих программ межпроцессорные пересылки на кластерах подавляют ускорение от распараллеливания. На многоядерных системах на кристалле такое отношение не очень велико и распараллеленные программы с пересылками данных могут значительно чаще давать ускорение. Актуальность инструментов автоматизации распараллеливания программ для многоядерных систем с распределенной локальной памятью должна повыситься при переходе к созданию микросхем по технологиям 7 нанометров, поскольку количество ядер увеличится и увеличится нагрузка на подготовку данных. Следует отметить, что представленные методы могут быть полезными и для программируемых высокопроизводительных систем на ПЛИС. Такие системы для достижения превосходства над ЦПУ должны одновременно использовать много блоков памяти при вычислениях. Научная значимость решения рассматриваемой проблемы состоит в стимулировании развития вычислительных систем с новыми архитектурами, что позволит решать научные проблемы во многих прикладных областях. Результаты реализации проекта позволят создавать распараллеливающие компиляторы на описанные вычислительные системы с распределенной памятью, переносить старые последовательные программы на такие вычислительные системы с повышением производительности, сократить сроки разработки целевых программ, удешевить их стоимость. Результаты проекта позволят решать новые задачи высокой алгоритмической сложности. В данном проекте • Впервые будут разработаны алгоритмы распараллеливания программных циклов на вычислительные системы с распределенной памятью с минимизацией межпроцессорных пересылок. • Впервые будут разработаны алгоритмы распараллеливания рекуррентных циклов на вычислительные системы с распределенной памятью. • Впервые будут разработаны методы размещения данных в распределенной памяти с минимизацией межпроцессорных пересылок на основе анализа текста исходной последовательной программы при распараллеливании с учетом входных информационных зависимостей (которые не влияют на преобразования программ для общей памяти).

Ожидаемые результаты
Будут разработаны алгоритмы эффективного отображения высокоуровневых программ на многоядерные микросхемы с распределенной адресуемой локальной памятью. Рассматриваются описываемые параметрами блочно-аффинные размещения данных, включающие все известные практически значимые размещения массивов в распределенной памяти. На основании анализа текста высокоуровневой последовательной программы, определяется оптимальное размещение данных в распределенной памяти и генерируется код параллельной программы с минимизацией пересылок данных между вычислительными ядрами. Будут рассмотрены примеры применения разрабатываемых алгоритмов к задачам обработки изображений, линейной алгебры, обработки сигналов, искусственного интеллекта. В теорию автоматического распараллеливания программ для вычислительных систем с распределенной памятью будет добавлена и в значительной степени разработана новая тематика: «Распараллеливающие преобразования программ с автоматизацией размещения данных и минимизацией времени выполнения пересылок данных». Полученные результаты могут стать основой разработки распараллеливающих оптимизирующих компиляторов для перспективных вычислительных систем, будут стимулировать развитие многоядерных микросхем с распределенной адресуемой локальной памятью, позволяющих повысить производительность многих полезных приложений.


 

ОТЧЁТНЫЕ МАТЕРИАЛЫ


Аннотация результатов, полученных в 2022 году
Данная работа направлена на создание распараллеливающих компиляторов для вычислительных систем с распределенной памятью. Попытки создания таких компиляторов рассматривались во многих публикациях. Известный специалист в области автоматического распараллеливания U. Bondhugula отмечает, что компиляция для параллельной архитектуры с распределенной памятью считается очень сложной задачей никакого практического и эффективного решения (в момент публикации) не существует (U. Bondhugula. Automatic distributed-memory parallelization and codegeneration using the polyhedral framework, Technical report, ISc-CSA-TR-2011-3, 2011, 10 pp.). Для вычислительной системы с распределенной памятью самой длительной операцией становится межпроцессорная пересылка данных. Накладные расходы, связанные с пересылками данных, приходится учитывать при отображении программ на распределенную память. Это не только затрудняет создание распараллеливающего компилятора для таких компьютеров, но и существенно сужает множество эффективно распараллеливаемых программ. Однако в последнее время появляются многоядерные процессоры, иногда называемые «суперкомпьютер на кристалле», с десятками, сотнями и тысячами ядер. Пересылка данных между процессорными ядрами на микросхеме требует значительно меньше времени, чем на коммуникационной сети, хотя, по-прежнему остается самой длительной операцией. Это означает расширение множества эффективно распараллеливаемых программ и делает целесообразным разработку распараллеливающих компиляторов. Более того, без распараллеливающих компиляторов сдерживается развитие таких высокопроизводительных микросхем. Авторами данного исследования предлагается ограничивать множество размещений данных в распределенной памяти и множество межпроцессорных пересылок данных. Авторы используют блочно-аффинные размещений данных (известные из предыдущих работ), которые описываются небольшим множеством параметров, что удобно для преобразования последовательной программы в параллельную для ВС с распределенной памятью. В качестве межпроцессорных пересылок данных рассматриваются циклические и «широковещательные» рассылки данных broadcast (данные из одного процессорного элемента пересылаются в несколько или все). В литературе приводится много задач линейной алгебры и задач математической физики, для параллельного решения которых на вычислительной системе с распределенной памятью используются частные случаи блочно-аффинных размещений данных и такие пересылки. Авторами проекта показано, что представленным ограничениям также удовлетворяют задачи обработки изображений и др. Авторами получены алгоритмы блочно-аффинных размещений массивов в распределенной памяти с минимизацией межпроцессорных пересылок. В частности, построена используемая для минимизации межпроцессорных пересылок новая графовая модель программного цикла – граф операторы-переменные (ГОП). Этим самым внесен вклад в развитие теории преобразования программ. Получены оценки сложности алгоритмов поиска минимального множества необходимых межпроцессорных пересылок. Получены алгоритмы распараллеливания рекуррентных циклов на целевые компьютеры с распределенной памятью. Получены методы автоматического ускорения алгоритмов итерационного типа с помощью размещения массивов в распределенной памяти с перекрытиями. Выполнена экспериментальная реализация в Оптимизирующей распараллеливающей системе многих разработанных в данном проекте алгоритмов: строится граф ГОП, определяются в программе места и параметры межпроцессорных пересылок (в код программы вставляются псевдокомментарии), для простых случаев автоматически генерируется параллельный MPI-код. Главный вывод выполненных работ: доказана принципиальная возможность создания эффективного распараллеливающего компилятора на компьютер с распределенной памятью и показаны пути его создания, в том числе, на основе Оптимизирующей распараллеливающей системы www.ops.rsu.ru . Некоторые из полученных результатов доступны в Сети Интернет: • Доклад на XXIV Всероссийской научной конференции (19-22 сентября 2022 г., он-лайн) "Научный сервис в сети Интернет". https://keldysh.ru/abrau/2022/video/17.mp4 • Доклад на Национальном суперкомпьютерном форуме НСКФ-2022 https://yandex.ru/video/preview/9312471263749518126 • Журнал «Инженерный вестник Дона» № 12 http://www.ivdon.ru/

 

Публикации

1. А.П. Баглий, Н.М. Кривошеев, Б.Я. Штейнберг, О.Б. Штейнберг Преобразования программ в Оптимизирующей распараллеливающей системе для распараллеливания на распределенную память Инженерный вестник Дона, Инженерный вестник Дона, 2022 г., № 12, с. 20. (электронный журнал) (год публикации - 2022)

2. Баглий А. П., Кривошеев Н. М., Штейнберг Б. Я. А. П. Баглий, Н. М. Кривошеев, Б. Я. Штейнберг Автоматизация распараллеливания программ с оптимизацией пересылок данных Труды XXIV Всероссийской научной конференции "Научный сервис в сети Интернет" (19-22 сентября 2022 г., онлайн), Научный сервис в сети Интернет: труды XXIV Всероссийской научной конферен-ции (19-22 сентября 2022 г., онлайн). — М.: ИПМ им. М.В.Келдыша, 2022. — С. 81-92. (год публикации - 2022) https://doi.org/10.20948/abrau-2022-17

3. Л.Р. Гервич, Б.Я. Штейнберг ОБ АВТОМАТИЗАЦИИ ПРИМЕНЕНИЯ РАЗМЕЩЕНИЯ ДАННЫХ С ПЕРЕКРЫТИЯМИ В РАСПРЕДЕЛЕННОЙ ПАМЯТИ «Вестник ЮУрГУ. Серия: Математическое моделирование и программирование», vol. 16, no. 1, pp. 59–68 (год публикации - 2023)

4. - Автоматическое распараллеливание на вычислительные системы с распределенной памятью. Сеть Интернет, видеозапись пленарного доклада. На титульном слайде презентации видна ссылка на поддержку грантом РНФ, 29 ноября 2022 г., Переславль-Залесский, ИПС РАН, Доклад на Национальном суперкомпьютерном форуме 2022 (год публикации - )

5. - Автоматизация распараллеливания программ с оптимизацией пересылок данных Сеть Интернет, видеозапись доклада. На титульном слайде презентации видна ссылка на поддержку грантом РНФ, Научный сервис в сети Интернет: труды XXIV Всероссийской научной конференции (19-22 сентября 2022 г.). — М.: ИПМ им. М.В.Келдыша, (год публикации - )


Аннотация результатов, полученных в 2023 году
В отчетном периоде выполнения проекта развивалась теория преобразования программ для вычислительных систем с распределённой памятью. На данном этапе доказано, что задача поиска наименьшего множества межпроцессорных пересылок является NP-трудной. Поскольку во многих практически значимых случаях пространство циклических векторов графа «операторы-переменные» может иметь не очень большую размерность, для поиска минимального множества пересылок могут использоваться не только эвристические алгоритмы, но и точные, основанные на методе ветвей и границ. На данном этапе на примере практически важных задач рассматриваются задачи распараллеливания более сложных циклов, чем прежде, которые могут содержать другие циклы. Получен список оптимизирующих преобразований программ, которые должны быть в оптимизирующем распараллеливающем компиляторе для вычислительной системы с распределенной памятью. Приведем список таких преобразований: 1. Размещение данных в распределенной памяти. 2. Поиск оптимального множества циклических пересылок с помощью ГОП (граф операторы-переменные). 3. Транспонирование матриц, размещенных в распределенной памяти и его обобщение на многомерные массивы. 4. Размещение массивов данных кратными с перекрытиями. 5. Группировка пересылок. 6. Определение оптимального количества ПЭ (процессорных элементов). 7. Оптимизация преобразований размещенных в распределенной памяти многомерных массивов: транспонирование и скашивание. Приводятся также преобразования, которые могут быть полезны для вычислительных систем как с распределенной памятью, так и с общей памятью. К таким преобразованиям циклов следует отнести слияние, разбиение, гнездование, развертка, расщепление, … Это преобразования, которые традиционно выполняются для самых глубоко вложенных циклов (innermost loop), но условия эффективного применения этих преобразований к не самым глубоко вложенным циклам недостаточно разработаны и эти преобразования компиляторами не выполняются. Есть описанные в литературе преобразования, которые не выполняются в компиляторах, такие как ретайминг (сдвиги операторов между итерациями циклов). Разработан проект СПП – системы преобразования программ. Приводятся условия реализации системы преобразования программ для вычислительных систем нового типа, в том числе, для вычислительных систем с распределенной памятью. Приводятся обоснования того, что реализацию целевых преобразований выгоднее делать на основе высокоуровневого внутреннего представления программ. Приводятся обоснования того, что, несмотря на высокую эффективность высокопроизводительных библиотек, создание инструментов автоматизированного распараллеливания и оптимизации целесообразно. Отсутствие инструментов создания параллельных программ на вычислительные системы с распределенной памятью будет сдерживать развитие вычислительной техники новых поколений, поскольку без программного обеспечения, адекватно использующего такую технику, теряется смысл в создании такой техники. По результатам научных исследований за истекший период опубликовано 6 научных статей и сделано 5 научных докладов на российских и международных конференциях. Основные результаты изложены в докладах 1 ) Штейнберг Б.Я. О создании распараллеливающих компиляторов на вычислительные системы с распределенной памятью. Труды Всероссийской научной конференции «Научный сервис в сети Интернет: технологии распределенных вычислений», 18-22 сентября 2023 г., он-лайн., ИПМ им. Келдыша, г. Москва, 11 с., https://keldysh.ru/abrau/2023/temp/23.pdf 2 ) Bagliy A.P., Krivosheev N.M., Steinberg B.Ya., Steinberg O.B. Automation of Parallelization of Loops with Minimization of Data Transfers // Параллельные вычислительные технологии - XVII всероссийская конференция с международным участием, ПаВТ'2023, г. Санкт-Петербург, 28-30 марта 2023 г. Короткие статьи и описания плакатов. Челябинск: Издательский центр ЮУрГУ, 2023. С. 7-16. http://omega.sp.susu.ru/pavt2023/short/104.pdf 3 ) Штейнберг Б.Я. О создании системы преобразований программ для создания распараллеливающих компиляторов на вычислительные системы с распределенной памятью. Национальный суперкомпьютерный форум НСКФ-2023, г. Переславль-Залесский 28 ноября – 1 декабря 2023 г. https://www.youtube.com/watch?v=xo3DV0kWmVw

 

Публикации

1. Баглий А.П., Кривошеев Н.М., Штейнберг Б.Я. Автоматизация распараллеливания программ для многоядерных процессоров с распределенной локальной памятью Электронные библиотеки, Т. 26. № 2. С. 135-153. (год публикации - 2023) https://doi.org/10.26907/1562-5419-2023-26-2-135-153

2. Баглий А.П., Кривошеев Н.М., Штейнберг Б.Я. Automatic mapping of sequential programs to parallel computers with distributed memory Procedia Computer Science, V. 229, pp. 182-192 (год публикации - 2023)

3. Баглий А.П., Кривошеев Н.М., Штейнберг Б.Я., Штейнберг О.Б. Automation of parallelization of loops with minimization of data transfers Короткие статьи и описания плакатов. Челябинск: Издательский центр ЮУрГУ, 2023. С. 7-16. (год публикации - 2023) https://doi.org/10.14529/pct2023

4. Баглий А.П., Метелица Е.А., Штейнберг Б.Я. Automatic Parallelization of Iterative Loops Nests on Distributed Memory Computing Systems. Springer Nature Switzerland AG, Lecture Notes in Computer Science, LNCS, vol 14098. pp 18–29, Lecture Notes in Computer Science, Springer In: Malyshkin, V. (eds) Parallel Computing Technologies. PaCT 2023. (год публикации - 2023) https://doi.org/10.1007/978-3-031-41673-6_2

5. Гервич Л.Р., Метелица Е.А., Штейнберг Б.Я. Combination of parallelization and skewed tiling Procedia Computer Science, V. 229, pp. 174-182 (год публикации - 2023)

6. Штейнберг Б.Я. . О создании распараллеливающих компиляторов на вычислительные системы с распреде-ленной памятью Научный сервис в сети Интернет, 2023, №25, с. 367-377 (год публикации - 2023) https://doi.org/10.20948/abrau-2023-23


Возможность практического использования результатов
не указано