Научная статья на тему 'ПОСТРОЕНИЕ ПЛАНОВ ВЫПОЛНЕНИЯ ПРОГРАММ С МАКСИМАЛЬНОЙ ПЛОТНОСТЬЮ КОДА НА ФИКСИРОВАННОМ НАБОРЕ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛИТЕЛЕЙ'

ПОСТРОЕНИЕ ПЛАНОВ ВЫПОЛНЕНИЯ ПРОГРАММ С МАКСИМАЛЬНОЙ ПЛОТНОСТЬЮ КОДА НА ФИКСИРОВАННОМ НАБОРЕ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛИТЕЛЕЙ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
50
9
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АНАЛИЗ ТОНКОЙ ИНФОРМАЦИОННОЙ СТРУКТУРЫ ПРОГРАММЫ / ПРЕДСТАВЛЕНИЯ АЛГОРИТМОВ В ГРА́ФОВОЙ ФОРМЕ / ЯРУСНО-ПАРАЛЛЕЛЬНАЯ ФОРМА ИНФОРМАЦИОННОГО ГРАФА АЛГОРИТМА / ЭКВИВАЛЕНТНЫЕ ПРЕОБРАЗОВАНИЯ / РАЦИОНАЛЬНЫЕ ПАРАМЕТРЫ ВЫПОЛНЕНИЯ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ / КАРКАС ВЫПОЛНЕНИЯ ПАРАЛЛЕЛЬНОЙ ПРОГРАММЫ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Баканов Валерий Михайлович

Актуальность и цели. Построение рациональных планов (расписаний) выполнения параллельных программ является (вследствие многовариантности решений) сложной задачей. В данной работе рассматривается построение таких планов с точки зрения получения наивысшей плотности кода (фактически режима максимального использования вычислительных ресурсов - за́нятости вычислительных блоков параллельного вычислителя). Актуальность работы связана с проблемами импортонезависимости в области совершенствования инструментального программного обеспечения для отечественных процессоров с явным параллелизмом ( explicit parallelism ) при обработке данных. Материалы и методы. В представленной работе основным приемом при построении планов выполнения параллельных программ (ВПП) является построение, анализ и целенаправленное преобразование ярусно-параллельной формы (ЯПФ) информационных графов алгоритмов (ИГА). Преобразование ЯПФ осуществляется путем переноса операторов с яруса на ярус ЯПФ при соблюдении неизменности информационных связей в алгоритме ( эквивалентные преобразования ), для реализации данного приема разработано целевое авторское программное обеспечение. В качестве инструмента преобразования применен метод создания сценариев целенаправленного преобразования ЯПФ на скриптовом языке программирования. Сценарии создаются на основе эвристического подхода и используют набор API-функций разработанной программной системы, позволяющих всесторонне изучить параметры ИГА и его ЯПФ-представлений для последующего построения рациональных планов ВПП на заданном наборе параллельных вычислителей. Результаты. Результаты вычислительных экспериментов выявили особенности внутренних свойств алгоритмов, влияющих на эффективность преобразований ЯПФ. Предложены и получены сравнительные показатели плотности кода при применении различных сценариев преобразования ЯПФ. Итерационный подход к улучшению эвристических методов обещает возможность приблизиться к оптимальным схемам решения целевой задачи. Область применения результатов исследования - разработка инструментального программного обеспечения для процессоров параллельной обработки данных (например, разрабатываемых в России в рамках импортонезависимости микропроцессоров серии ЭЛЬБРУС для применения в государственном и оборонном секторах и для реализации супервычислений). Выводы. В целом разработанный программный комплекс подтвердил эффективность в изучении параметров скрытого параллелизма в произвольных алгоритмах и рационального его использования при вычислениях. Подход применения скриптового языка для разработки эвристических методов (сценариев) целенаправленного преобразования форм ИГА показал большую гибкость и прозрачность при исследованиях. Получены конкретные результаты построения планов ВПП с максимальной плотностью кода. Заслуживающим внимания аспектом следует признать возможность исследования практической достижимости предела использования потенциала внутреннего (скрытого) параллелизма путем совершенствования эвристических методов построений планов ВПП при учете поставленных целей и ограничений.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

BUILDING EXECUTION PLANS FOR PROGRAMS WITH MAXIMUM CODE DENSITY ON A FIXED SET OF PARALLEL COMPUTERS

Background. The construction of rational plans (schedules) for the execution of parallel programs is (due to the multivariance of solutions) a difficult task. In this paper, we consider the construction of such plans from the point of view of obtaining the highest code density (in fact, the mode of maximum use of computing resources - the employment of computing blocks of a parallel computer). The relevance of the work is related to the problems of import independence in the field of improving instrumental software for domestic processors with explicit parallelism in data processing. Materials and methods. In the presented work, the main technique for constructing execution plans for parallel programs is the construction, analysis and purposeful transformation of the tiered-parallel form of information graphs of algorithms. The transformation of a tiered-parallel form is carried out by transferring operators from a tier to a tier of a tiered-parallel form, while maintaining the invariability of information links in the algorithm (equivalent transformations), for the implementation of this technique, targeted author’s software has been developed. As a transformation tool, the method of creating scripts for purposeful transformation of a tiered-parallel form in a scripting programming language is used. Scenarios are created on the basis of a heuristic approach and use a set of API functions of the developed software system, which allow to comprehensively study the parameters of the information graphs of algorithms and its tiered-parallel form-representations for the subsequent construction of rational execution plans for parallel programs on a given set of parallel computers. Results. The results of computational experiments have revealed the features of the internal properties of algorithms that affect the efficiency of transformations of a tiered-parallel form. Comparative indicators of code density are proposed and obtained when using various scenarios for converting a tiered-parallel form. An iterative approach to improving heuristic methods promises an opportunity to get closer to optimal schemes for solving the target problem. The scope of the research results is the development of tool software for parallel data processing processors (for example, microprocessors of the ELBRUS series developed in Russia within the framework of import independence for use in the state and defense sectors and for the implementation of supercomputing). Conclusions. In general, the developed software package confirmed its effectiveness in studying the parameters of hidden parallelism in arbitrary algorithms and its rational use in calculations. The approach of using a scripting language to develop heuristic methods (scenarios) for the purposeful transformation of information graphs of algorithms forms has shown greater flexibility and transparency in research. Concrete results are obtained for constructing execution plans for parallel programs with maximum code density. the possibility of studying the practical feasibility of using the potential of internal (hidden) parallelism limit by improving heuristic methods for constructing plans for the execution of parallel programs, taking into account the set goals and limitations, is a noteworthy aspect.

Текст научной работы на тему «ПОСТРОЕНИЕ ПЛАНОВ ВЫПОЛНЕНИЯ ПРОГРАММ С МАКСИМАЛЬНОЙ ПЛОТНОСТЬЮ КОДА НА ФИКСИРОВАННОМ НАБОРЕ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛИТЕЛЕЙ»

УДК 004.4'2 + 004.51

doi: 10.21685/2072-3059-2023-1-2

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

В. М. Баканов

МИРЭА - Российский технологический университет, Москва, Россия

e881e@mail.ru

Аннотация. Актуальность и цели. Построение рациональных планов (расписаний) выполнения параллельных программ является (вследствие многовариантности решений) сложной задачей. В данной работе рассматривается построение таких планов с точки зрения получения наивысшей плотности кода (фактически режима максимального использования вычислительных ресурсов - занятости вычислительных блоков параллельного вычислителя). Актуальность работы связана с проблемами импортонезависимости в области совершенствования инструментального программного обеспечения для отечественных процессоров с явным параллелизмом (explicit parallelism) при обработке данных. Материалы и методы. В представленной работе основным приемом при построении планов выполнения параллельных программ (ВПП) является построение, анализ и целенаправленное преобразование ярусно-параллельной формы (ЯПФ) информационных графов алгоритмов (ИГА). Преобразование ЯПФ осуществляется путем переноса операторов с яруса на ярус ЯПФ при соблюдении неизменности информационных связей в алгоритме (эквивалентные преобразования), для реализации данного приема разработано целевое авторское программное обеспечение. В качестве инструмента преобразования применен метод создания сценариев целенаправленного преобразования ЯПФ на скриптовом языке программирования. Сценарии создаются на основе эвристического подхода и используют набор API-функций разработанной программной системы, позволяющих всесторонне изучить параметры ИГА и его ЯПФ-представлений для последующего построения рациональных планов ВПП на заданном наборе параллельных вычислителей. Результаты. Результаты вычислительных экспериментов выявили особенности внутренних свойств алгоритмов, влияющих на эффективность преобразований ЯПФ. Предложены и получены сравнительные показатели плотности кода при применении различных сценариев преобразования ЯПФ. Итерационный подход к улучшению эвристических методов обещает возможность приблизиться к оптимальным схемам решения целевой задачи. Область применения результатов исследования -разработка инструментального программного обеспечения для процессоров параллельной обработки данных (например, разрабатываемых в России в рамках импорто-независимости микропроцессоров серии ЭЛЬБРУС для применения в государственном и оборонном секторах и для реализации супервычислений). Выводы. В целом разработанный программный комплекс подтвердил эффективность в изучении параметров скрытого параллелизма в произвольных алгоритмах и рационального его использования при вычислениях. Подход применения скриптового языка для разработки эвристических методов (сценариев) целенаправленного преобразования форм ИГА показал большую гибкость и прозрачность при исследованиях. Получены конкретные результаты построения планов ВПП с максимальной плотностью кода. Заслуживающим внимания аспектом следует признать возможность исследования

© Баканов В. М., 2023. Контент доступен по лицензии Creative Commons Attribution 4.0 License / This work is licensed under a Creative Commons Attribution 4.0 License.

практической достижимости предела использования потенциала внутреннего (скрытого) параллелизма путем совершенствования эвристических методов построений планов ВПП при учете поставленных целей и ограничений.

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

Для цитирования: Баканов В. М. Построение планов выполнения программ с максимальной плотностью кода на фиксированном наборе параллельных вычислителей // Известия высших учебных заведений. Поволжский регион. Технические науки. 2023. № 1. С. 14-31. doi: 10.21685/2072-3059-2023-1-2

Building execution plans for programs with maximum code density on a fixed set of parallel computers

V.M. Bakanov

MIREA - Russian Technological University, Moscow, Russia

e881e@mail.ru

Abstract. Background. The construction of rational plans (schedules) for the execution of parallel programs is (due to the multivariance of solutions) a difficult task. In this paper, we consider the construction of such plans from the point of view of obtaining the highest code density (in fact, the mode of maximum use of computing resources - the employment of computing blocks of a parallel computer). The relevance of the work is related to the problems of import independence in the field of improving instrumental software for domestic processors with explicit parallelism in data processing. Materials and methods. In the presented work, the main technique for constructing execution plans for parallel programs is the construction, analysis and purposeful transformation of the tiered-parallel form of information graphs of algorithms. The transformation of a tiered-parallel form is carried out by transferring operators from a tier to a tier of a tiered-parallel form, while maintaining the invariability of information links in the algorithm (equivalent transformations), for the implementation of this technique, targeted author's software has been developed. As a transformation tool, the method of creating scripts for purposeful transformation of a tiered-parallel form in a scripting programming language is used. Scenarios are created on the basis of a heuristic approach and use a set of API functions of the developed software system, which allow to comprehensively study the parameters of the information graphs of algorithms and its tiered-parallel form-representations for the subsequent construction of rational execution plans for parallel programs on a given set of parallel computers. Results. The results of computational experiments have revealed the features of the internal properties of algorithms that affect the efficiency of transformations of a tiered-parallel form. Comparative indicators of code density are proposed and obtained when using various scenarios for converting a tiered-parallel form. An iterative approach to improving heuristic methods promises an opportunity to get closer to optimal schemes for solving the target problem. The scope of the research results is the development of tool software for parallel data processing processors (for example, microprocessors of the ELBRUS series developed in Russia within the framework of import independence for use in the state and defense sectors and for the implementation of supercomputing). Conclusions. In general, the developed software package confirmed its effectiveness in studying the parameters of hidden parallelism in arbitrary algorithms and its rational use in calculations. The approach of using a scripting language to develop heuristic methods (scenarios) for the purposeful transformation of information graphs of algorithms forms has shown greater flexibility and

transparency in research. Concrete results are obtained for constructing execution plans for parallel programs with maximum code density. the possibility of studying the practical feasibility of using the potential of internal (hidden) parallelism limit by improving heuristic methods for constructing plans for the execution of parallel programs, taking into account the set goals and limitations, is a noteworthy aspect.

Keywords: analysis of the fine information structure of the program, representation of algorithms in graph form, tiered-parallel form of the information graph of the algorithm, equivalent transformations, rational parameters of execution of parallel programs, framework of execution of a parallel program

For citation: Bakanov V.M. Building execution plans for programs with maximum code density on a fixed set of parallel computers. Izvestiya vysshikh uchebnykh zavedeniy. Pov-olzhskiy region. Tekhnicheskie nauki = University proceedings. Volga region. Engineering sciences. 2023;(1):14-31. (In Russ.). doi: 10.21685/2072-3059-2023-1-2

Введение

Параллелизация обработки данных в настоящее время применяется в основном для сокращения времени вычислений путем одновременной обработки данных по частям на множестве различных вычислительных устройств с последующим объединением полученных результатов [1]. Существенно при этом, что параллельный вариант программы может быть выполнен значительным числом отличающихся вариантов. Каждый вариант характеризуется своим планом (расписанием), задающим последовательность выполнения каждого блока (гранулы) команд программы для конкретного обработчика заданного поля параллельных вычислителей. При этом конкретный план выполнения параллельной программы обладает рядом параметров, характеризующих качество выполнения общей программы (время выполнения, степень использования имеющегося оборудования, требования к исполняющему оборудованию и т.п.).

Таким образом, правомерно говорить о задаче многомерной оптимизации, целью которой является построение максимально эффективных (по выбранным критериям) планов выполнения параллельных программ. Решение подобных задач особенно актуально сейчас, когда разрабатываются серии отечественных процессоров, работа которых неэффективна без качественного инструментального программного обеспечения (ИПО). Особый интерес представляет серия процессоров архитектуры VLIW (Very Long Instruction Word, сверхдлинная машинная команда). Для концепции VLIW размер гранулы параллелизма равен одной машинной инструкции, что соответствует идеологеме ILP (Instruction-Level Parallelism, параллелизм уровня машинных команд). В такой системе отсутствует аппаратное распараллеливание, а набор команд подготавливается соответствующими блоками компилятора/ интерпретатора - стиль EPIC (Explicitly Parallel Instruction Computing, набор инструкций с явным параллелизмом). VLIW-подход к процессорной архитектуре имеет богатую взлетами и падениями историю и в настоящее время широко применяется в рыночном сегменте устройств класса DSP (Digital Signal Processor) для смартфонов, систем управления автомобилями, носимых устройствах иных мобильных систем и в компонентах сетей сотовой связи (например, процессоры Snapgragon Hexagon QDSP6 компании Qualcomm,

Inc.1). В рамках импортонезависимости в России развивается серия микропроцессоров ЭЛЬБРУС2, реализующих EPIC-идеологему.

Явным положительным свойством VLIW является существенное упрощение аппаратной части процессора (с естественным следствием в виде снижения тепловыделения и повышения надежности), недостатком - усложнение ИПО, ответственного за выявление параллелизма в выполняемой программе и его (параллелизма) эффективного использования в собственно вычислениях. Считается, что VLIW традиционно характеризируется пониженной плотностью кода - несовершенство ИПО генерации исполняемого кода приводит к неполному заполнению связки (bundle) инструкций в сверхдлинной команде, при этом лакуны в связке вынужденно заменяются «командами-пустышками» в виде NOP-инструкций (следствие - неполное использование вычислительной мощности процессора).

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

Материалы и методы

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

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

При исследованиях использовался разработанный для исследовательской работы и обеспечения процесса обучения студентов комплекс программного обеспечения (ПО), включающий два программных модуля, являющихся в комплексе инструментами для исследований (исследовательской платформой), и получившими символические названия D-F и SPF@home соответственно. Состав инструментов разработанного ПО выбирался исходя из требований максимального покрытия существующих принципов выполнения параллельных программ (табл. 1).

1 Лучиан Кодреску. Архитектура Qualcomm Hexagon™ 680 DSP для мобильной обработки изображений и компьютерного зрения, Hot Chips Symposium (HCS), № 27, 2015. URL: https://ieeexplore.ieee.org/document/7477329 (дата обращения: 07.01.2023).

2 ЭЛЬБРУС - Российские микропроцессоры и вычислительные комплексы: http://elbrus.ru/ (дата обращения: 06.01.2023).

Таблица 1

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

Параметр Инструмент D-F Инструмент SPF@home

1 Распараллеливание Аппаратное (программная симуляция в стиле интерпретации) Программное

2 Метод выявления и использования обнаруженного параллелизма Агентный подход Анализ информационного графа алгоритма и целенаправленное реформирование его ярусно-параллельной формы

3 Уровень параллелизма / размер гранулы параллелизма Мелкозернистый (fine-grained) / одна машинная команда Любой / от одной машинной команды до блоков операторов любого размера

Программный модуль D-F представляет симулятор вычислителя потоковой архитектуры (и целиком соответствует подходу ILP), модуль SPF@home в полном объеме реализует принцип EPIC. С точки зрения сущности «операторы» в программном модуле SPF@home как группы команд любого размера, этот модуль может быть полезен и при составлении планов параллельного выполнения программ с гранулами параллелизма значительно большего размера; например, автором при проведении занятий эта возможность используется при планировании вычислений на кафедральном инструментальном вычислительном кластере архитектуры MPP (Massive Parallel Processing, массово-параллельная обработка) РТУ МИРЭА при наличии крупномасштабного параллелизма уровня данных.

Выявление и анализ внутреннего логического параллелизма в алгоритмах в модуле D-F реализовано с помощью имитации агентного подхода, функционирование модуля SPF@home основано на построениях специальных сечений информационных графов алгоритмов (ИГА) в виде его ярусно-параллельной формы (ЯПФ). Изначально сформированная ЯПФ фактически является начальным (сырым, наивным) планом (расписанием) параллельного выполнения данного алгоритма (программы) и нуждается в целенаправленном реформировании в соответствии с характеристиками используемой параллельной вычислительной системы. Это изменение осуществляется методом выполнения сценариев на скриптовом языке, реализующем эвристические методы преобразования ЯПФ [2, 3]. Оба упомянутых программных модуля разработаны с использованием языка C/C++ и скомпилированы для формата PE32 в стиле GUI (для проведения расчетов в составе сложных пакетных файлов дополнительно реализован режим работы с командной строкой), являются полностью OpenSource и могут быть выгружены для свободного использования (формат инсталляционных файлов)1.

1 http://vbakanov.ru/dataflow/content/install_df.exe, http://vbakanov.ru/spf@home/ content/install_spf.exe (дата обращения: 05.01.2023).

Модуль D-F (Data-Flow) является универсальным вычислителем архитектуры SMP (Symmetric MultiProcessing, системы с общей памятью [4]), на вход которого подается последовательная программа в императивном стиле на ассемблероподобном языке (используются трехсимвольные мнемоники команд и трехадресная система с порядком следования операндов согласно соглашениям AT&T); при этом никакой явной информация о последовательности выполнения операторов и наличии параллелизма не имеется, однако доступно задание времени исполнения каждой из набора команд. Ассемблерный стиль представления программ выбран из соображений соответствия каждой команды конкретной процессорной инструкции (следование идеоло-геме ILP). Программа выполняется в симуляторе вычислителя статической архитектуры Data-Flow, при этом порядок выполнения инструкций процессора определяется исключительно готовностью операндов к выполнению [4, 5].

В качестве объектов исследований выступают алгоритмы (и их свойства)1 и имитационные модели параллельных вычислительных систем определенной архитектуры. Несколько лет интересом пользовалось изучение параметров вычислительной трудоемкости (фактически зависимости числа вычислительных операций от размерности обрабатываемых данных) для различных алгоритмов. Параметры внутреннего (скрытого) параллелизма в алгоритмах - очередная сторона многогранной сущности «алгоритм».

Для исследований подготовлен набор программ, реализующих часто встречающиеся алгоритмы обработки данных (матричная алгебра, статистика и др.); набор постоянно расширяется. Следует признать, что определенным недостатком исследования является относительно небольшой диапазон размеров обрабатываемых данных (например, для решения систем линейных алгебраических уравнений не более 10-го порядка). Однако такой подход является обычным при невозможности за ограниченный промежуток времени исследовать большой объем данных, в помощь исследователю тогда приходит метод выявления тенденций изменения интересующих величин с экстраполяцией вперед (каждый из алгоритмов присутствует в 3-5 вариантах по параметру размера обрабатываемых данных).

Возможность варьирования числа параллельных вычислителей и правил выборки команд из буфера [6] позволяет решать обратную задачу (оптимизация параметров вычислителя по характеристикам вычислительного процесса). Предусмотрен экспорт ИГА во внешние программы в DOT-формате, ведется подробный протокол симуляции.

Условное выполнение реализуется предикатным методом [3, 7]; для реализации циклов используется система макросов, «разворачивающих» циклические структуры. Удобству анализа решений способствует выдача данных о процессе выполнения программ в виде функции Интенсивности вычислений (ИВ) - число одновременно выполнившихся операторов в функции времени (иногда используется аббревиатура DOP - Degree Of Parallelism, степень параллелизма) и диаграмм Ганта.

Программный модуль SPF@home [2] предназначен для моделирования и выбора наилучших (в заданном смысле) сценариев преобразования ЯПФ

1 AlgoWiki. Открытая энциклопедия свойств алгоритмов / под ред. В. Воеводина, Дж. Донгарра. URL: http://algowiki-project.org (дата обращения: 06.01.2023).

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

При этом расположенные на ярусах ЯПФ группы операторов выполняются параллельно, причем каждый ярус последовательно - начиная с начального. Минимально возможная высота ЯПФ (число ярусов) определяется длиной критического пути в ИГА [8, 9] и ограничивает кратчайшее время выполнения алгоритма. В модуле SPF@home визуализация полученной ЯПФ осуществляется в текстовом и графическом виде (линейчатая диаграмма позволяет без напряжения представить вид функции распределения ширин ЯПФ по ее высоте). Механизм задания метрик выполнения операторов дает возможность задавать параметры (меры) для операторов (например, время выполнения или требуемые ресурсы при гетерогенном поле вычислителей) и дуг (линий передачи данных - размеры данных, время передачи).

Дополнительно модуль SPF@home предоставляет возможность получения информации о требуемом для выполнения заданного алгоритма времени жизни данных. Существование этих данных является следствием выполнения отдельных операторов и, в свою очередь, они служат входными операндами для иных операторов алгоритма. Эта информация (по сути, оценка локальной емкостной сложности выполнения программы) важна для определения требуемых параметров внутренних регистров процессора и/или решения вопросов об оптимальности размещения данных между регистрами процессора и оперативной памятью.

Как было сказано, основным методом преобразования ЯПФ служит целенаправленное перемещение операторов между ярусами ЯПФ при сохранении информационных связей в ИГА. В целом данная задача относится к классу задач построения расписаний с ограничениями и является АР-полной [10]. Вследствие АР-полноты задачи можно говорить о построении именно рациональных (итеративно стремящихся к оптимальным) планов выполнения параллельных программ. В данной работе используется эвристический подход к решению, причем сценарии решения (в данном случае - преобразования ЯПФ в нужном направлении) реализуются с использованием скриптового языка Lua [11]. Lua выбран по причине полной OpenSource, близости синтаксиса к распространенным языкам программирования (стиль C/C++), компактности при встраивании в родительское приложение. Модуль SPF@home включает встроенный текстовый редактор исходного текста Lua со всеми современными атрибутами (цветовая подсветка синтаксиса, структурных блоков и др.).

Заметим, что прием получения информации об ЯПФ и последующего целенаправленного преобразования является, пожалуй, наиболее интуитивно понятным и максимально приближенным к использованию в вычислительной архитектуре VLIW, хотя априори не обеспечивает максимально плотную (по времени) упаковку команд. При этом «бандл» (bundle, набор отдельных процессорных инструкций в сверхдлинном машинном слове) часто рассматрива-

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

Несмотря на явную направленность набора API-вызовов системы SPF@home на целенаправленное изменение ЯПФ информационного графа алгоритма (программы), возможности языка Lua совместно с имеющимися API-функциями позволяют проводить сколь угодно сложный анализ ИГА и на его основе реализовывать самые разнообразные методы построения планов (расписаний) параллельного выполнения алгоритмов [12].

При использовании результатов разработки в качестве алгоритмической основы функционирования компонентов распараллеливающих трансляторов ИГА строится на основе результатов парсинга исходного кода транслятором (при этом библиотечные функции обрабатываются отдельно). При реализации приложения в виде отдельного компонента Code Morphing Software ИГА строится на основе сгенерированного последовательного исполняемого кода. Полезным свойством использования представления программ в виде ИГА является возможность обработки графа отдельными блоками (уровня файлов, сабрутин) с последующей сборкой графа полного приложения.

Для определения вычислительной сложности выполнения сценариев преобразования ЯПФ использован аналог классического метода оценки целевого параметра - определение количества элементарных шагов (перестановки двух элементов сортируемого массива), необходимых для завершения операции; в рамках исследования за элементарный шаг предложено принять перестановку оператора с яруса на ярус ЯПФ [13].

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

Логично различать количественную (формально определяется степенью равномерности числа операторов по всем ярусам ЯПФ) и временную (определяется разбросом длительности выполнения операторов на каждом ярусе ЯПФ) плотности.

В целом модуль D-F строит план ВПП для модели асинхронизма выполнения операторов (достигается максимальная временная плотность), расписания в стиле модуля SPF@home рассчитаны на синхронный вызов групп операторов (достижение значительной временной плотности затруднено, хотя положительным явлением считается устойчивая тенденция реализации одинаковости времени выполнения операций в современных процессорах). В последнем случае формально возможна группировка операторов со сходным временем выполнения на каждом ярусе ЯПФ.

Адекватность моделирования в описанных исследовательских инструментах подкрепляется концептуальным анализом исследуемого вопроса (изучение концепта с учетом особенностей его развития и текущей ситуации), корректностью способов описания, обработки и представления данных при моделировании, результатами анализа консистентности (согласованности, целостности и внутренней непротиворечивости) имеющихся в реальности и полученных при моделировании с учетом ограничений концепта. В ходе вы-

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

Для данной работы представляет особый интерес параметр равномерности загрузки ширин ярусов (плотность кода) в данной ЯПФ (некий аналог коэффициента полезного действия). Для практического применения плотность кода удобно оценивать коэффициентом использования числа параллельных вычислителей (считая общее число таких вычислителей равным ширине ЯПФ) в виде

где W0 - ширина ЯПФ; Wj - ширина 7-го яруса ЯПФ (^ Wj = N - число операций в рассматриваемом алгоритме); М - число ярусов ЯПФ. Таким образом, коэффициент кИ равен (с точностью до коэффициента - обратной величины ширины ЯПФ) среднеинтегральному значению функции интенсивности вычислений (зависимости числа одновременно выполняющихся операций от времени [6]). При полной загрузке всех вычислителей в течение всего времени выполнения алгоритма (программы) имеем £и = 1 (напр., вариант полностью последовательного выполнения), неслучайному достижению £и = 1 в случае параллельного выполнения препятствуют информационные (причинно-следственные) связи типа «операторы ^ операнды» в алгоритме.

Недостатком £и (как и многих иных скалярных статистических параметров распределения) является его нечувствительность к форме распределения неравномерностей (характерной формой огибающей ширин ЯПФ является интенсивный подъем в начале выполнения программы с последующим плавным снижением к концу, такая форма графиков характерна для анализа процессов массового обслуживания). Программный модуль SPF@home рассчитывает и выдает величины неравномерности ширин ярусов ЯПФ во многих форматах (включая кривую Лоренца и коэффициент Джини, позволяющие судить о форме анализируемой кривой [13]).

Гибкость применения скриптового языка для управления целенаправленным изменением ЯПФ позволяет создавать планы ВПП с произвольным законом распределения операторов по ярусам ЯПФ, что (частично) сглаживает недостаток VLIW/EPIC-идеологем, заключающийся в статическом планировании потока команд. Возможно, например, создание плана выполнения параллельной программы с индивидуальными (целесообразными по конкретным соображениям) параметрами ширины ЯПФ для программных блоков специального назначения в рамках единой программы.

При сравнении эффективности преобразования ЯПФ использовали два (представленные в виде Lua-скриптов) эвристических метода (сценариев, эвристик), основанных на различных общих подходах к преобразованию ЯПФ. Первый (условное название Dichotomy) использует основанный на способе дихотомии подход массового переноса операторов с яруса на ярус ЯПФ, второй (WidthByWidtn) - постепенный перенос операторов с «более нагруженных» на «менее нагруженные» яруса; в обоих случаях при необходимости в нужных местах создаются дополнительные ярусы (изначально пустые).

0

0

Результаты

1. Целенаправленное преобразование ЯПФ без изменения ее высоты.

Серьезной проблемой подхода с использованием ЯПФ является значительная неравномерность в ширинах отдельных ярусов исходной («наивной», «сырой», формально полученной из ИГА) ЯПФ.

Например, для ЯПФ перемножения двух квадратных матриц 10-го порядка традиционным способом имеем W = 1000 (максимум достигается при H = 1), H = 10, W = 190. Для решения системы линейных алгебраических уравнений 10-го порядка традиционным способом имеем W = 99 (максимум достигается при H = 2), H = 63, W = 14,2. Естественно, хотелось бы иметь число операторов на каждом уровне 190 (в первом случае и 15 во втором). Ограничением являются информационные зависимости в ИГА, не позволяющие произвольно перемещать операторы с яруса на ярус ЯПФ. Таким образом, уровень Lua-эвристик определяет качество получения ЯПФ как плана (расписания) выполнения параллельной программы (почти всегда неизвестно уровень качества данного сценария вследствие огромной вычислительной сложности получения оптимального решения).

В случае W — P (среднеарифметическое значений ширин исходной ЯПФ сравнимо с числом параллельных вычислителей) возникает задача получения расписания ВПП с максимальной плотностью кода без возрастания высоты ЯПФ («балансировка» операторов по ярусам ЯПФ).

Основным шаблоном составления Lua-сценариев для этого случая является схема, описанная работе [2] и получившая символическое имя «Бульдозер» (Bulldozer)1, заключающаяся в достижении ширин всех ярусов ЯПФ, не большей, чем заданное W0 (обычно W0 2 [ W ]. Это соответствует плану выполнения программы за минимально возможное время на заданном числе параллельных вычислителей.

Результаты применения Lua-эвристик для данной постановки задачи приведены на рис. 1 и 2; обозначения на этих рисунках:

• графики а, б и в - плотность кода, ширина ЯПФ, число перемещений операторов между ярусами ЯПФ (характеристика вычислительной трудоёмкости) операторов по осям ординат соответственно;

• зависимость 1 (сплошные линии) - исходные данные; зависимости 2 (пунктир) и 3 (штрих-пунктир) - результат применения эвристик 01_Bulldozer и 02_Bulldozer сответственно.

Данные рис. 1 и 2 также иллюстрируют возможность совершенствования эвристик в форме Lua-сценариев в области вычислительной сложности и качества получаемых результатов.

Разработанные эмпирические методы по «балансировке» ЯПФ показали противоречивые результаты - в некоторых случаях удавалось достичь почти 100 % плотности кода, а некоторые алгоритмы практически не поддавались указанной модификации (вследствие ограничений на перемещения

1 Данный прием заключается в стремлении перенести операторы с ярусов шириной выше заданной на яруса с шириной менее заданной (при условии сохранения информационных связей в графовом представлении алгоритма) в данной ЯПФ (метафора принципа перемещения пластов земли отвалом бульдозера).

операторов между ярусами из-за необходимости сохранения информационных зависимостей в алгоритме).

а) б) в)

Рис. 1. Параметры плана параллельного выполнения при сохранении высоты ЯПФ для алгоритма умножения квадратных матриц классическим методом 2, 3, 5, 7, 10-го порядка (соответствует нумерации по осям абсцисс)

2468 10 2468 10 2468 10

а) б) в)

Рис. 2. Параметры плана параллельного выполнения при сохранении высоты ЯПФ для алгоритма решения системы линейных алгебраических уравнений для 2, 3, 4, 5, 7, 10-го порядка (соответствует нумерации по осям абсцисс) прямым (неитерационным) методом Гаусса

Применение программного модуля SPF@home возможно и для решения обратной задачи (например, определение параметров параллельной вычислительной системы исходя из баланса производительности и стоимости собственно системы).

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

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

Рассмотрим наиболее общий случай, соответствующий условию W » P , где P - число параллельных вычислителей; именно при этом прихо-

дится увеличивать высоту ЯПФ (на практике - время выполнения параллельной программы).

Эффективность вышеописанных эвристических методов проверялась путем последовательного их применения к ЯПФ исследуемых алгоритмов в диапазоне числа параллельных вычислителей P от W (ширина исходной ЯПФ) до 1 (полностью последовательное выполнение алгоритма).

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

Далее рассматривается распространенный случай выполнения программы на заданном гомогенном поле из W параллельных вычислителей (от W = Wo до W = 1, где Wo - ширина ЯПФ, а нижняя граница соответствует полностью последовательному выполнению). Сравниваем два Lua-сценария реорганизации ЯПФ - Dichotomy и WidthByWidtn. Особенностью этих эвристик является правило выбора конкретных операторов, подлежащих переносу на вновь создаваемые ярусы.

На рис. 3 показаны результаты выполнения указанных эвристик в применении к двум распространенным алгоритмам линейной алгебры - умножение квадратных матриц классическим методом и решение системы линейных алгебраических уравнений прямым (неитерационным) методом Гаусса; кривые 1 и 2 на этом и последующих рисунках соответствуют эвристикам WidthByWidtn и Dichotomy соответственно.

а) б)

Рис. 3. Возрастание высоты (ординаты графиков) при ограничении ширины ЯПФ (числа параллельных вычислителей, ось абсцисс), разы; алгоритм умножения классическим методом квадратных матриц 5-го порядка (а) и 10-го порядка (б)

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

Однако «при всех равно-входящих» соответствующие методу (эвристике) WidthByWidtn кривые расположены ниже, нежели по методу Dichotomy; это соответствует несколько большему быстродействию. Полученные методом WidthByWidtn результаты практически совпадают с идеалом высоты ЯПФ, равным Л^ум^средн, где Лсум - общее число операторов, Wсредн - среднеарифметическое числа операторов по ярусам ЯПФ при заданной ее ширине.

Анализ результатов приведен на рис. 4 (имеет чисто практический интерес - вычислительную трудоемкость преобразования ЯПФ). Как видно из рис. 4, для рассмотренных случаев применение эвристики WidthByWidtn показывает меньшую (приблизительно в 3-4 раза) вычислительную трудоемкость (в единицах числа перестановок операторов с яруса на ярус) относительно метода Dichotomy (хотя на первый взгляд ожидается обратное). Правда, при этом метод WidthByWidtn обладает более сложной внутренней логикой по сравнению с Dichotomy (в последнем случае она примитивна). Логично использовать в распараллеливающих компиляторах метод Dichotomy для быстрого (но достаточно «грубого») построения планов выполнения параллельных программ, а метод WidthByWidtn - для построения этих планов в режиме оптимизации.

Рис. 4. Зависимость плотности кода (а) и числа перемещений операторов между ярусами (б) от ширины ЯПФ (числа параллельных вычислителей, ось абсцисс) для алгоритма умножения квадратных матриц 10-го порядка классическим методом;

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1 - эвристика WidthByWidth; 2 - эвристика Dichotomy

Во всех случаях увеличение размерности обрабатываемых данных (даже при неизменности собственно алгоритма обработки данных) приводило к возрастанию «податливости» ЯПФ и ее целенаправленным изменениям (следствие увеличения степеней свободы в расположении операторов по ярусам), что положительно сказывается на эффективности применения предлагаемых технологий при построении планов параллельного выполнения программ с внушительными объемами данных. При этом резонно предполагать получение плотности кода с повышенными значениями.

3. Построение расписания выполнения параллельных программ на заданном поле гетерогенных вычислителей.

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

В случае гетерогенности поля параллельных вычислителей большая часть работы выполнятся Lua-скриптами (поддержка в виде API-функций системы позволяет производить любые манипуляции с ЯПФ), при этом общий стиль работы скорее напоминает агентный подход (программный агент из «облака операторов» в пределах каждого яруса ЯПФ распределяет операторы по «подходящим» вычислителям; при этом активно используется информация из пула данных метрик вершин (операторов) и дуг (линий передачи данных).

Модуль SPF@home поддерживает эту возможность путем сопоставления информации из двух файлов - для операторов и вычислителей. Имеется возможность задавать совпадение по множеству свободно назначаемых признаков для любого диапазона операторов/вычислителей. Условием выполнимости данного оператора на заданном вычислителе является minVali < Val_i < < maxVali для одинакового i (где Val i, minVali, maxVali - числовые значения данного параметра для оператора и вычислителя соответственно).

Разработка расписания для выполнения программы на гетерогенном поле параллельных вычислителей является более сложной процедурой относительно ранее описанных и здесь упор делается на Lua-программирование. Так как на одном ярусе ЯПФ могут находиться операторы, требующие для выполнения различных вычислителей, полезной может быть метафора расщепления ярусов ЯПФ на семейства подъярусов, каждое из которых соответствует блоку вычислителей c определенными возможностями (так как все операторы данного яруса обладают одинаковыми возможностями выполнения, последовательность обработки их в пределах яруса/подъяруса в первом приближении произвольна).

Один из примеров использования идеологемы подъярусов приведен в работе [13]. При этом общее время T решения задачи определяется суммой по всем ярусам максимальных значений времен выполнения операторов на подъярусах данного яруса. Если ставится задача достижения максимальной производительности, возможно определить число вычислителей конкретного типа, минимизирующее T (решение обратной задачи оптимизации по соотношению числа вычислителей разных типов, например). Задача минимизации общего времени решения T усложняется в случае возможности выполнения каждого оператора на нескольких вычислителях вследствие неоднозначности tlk в вышеприведенном выражении; здесь необходима дополнительная «балансировка» по подъярусам.

4. Время существования промежуточных данных.

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

При выполнении программы непрерывно создаются и «потребляются» промежуточные (временные, локальные) данные. С «точки зрения» ЯПФ эти данные «существуют» между ярусами ЯПФ.

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

На рис. 5 приведено сравнение двух планов ВПП (строки I и II) - соответствующей «сырой» ЯПФ алгоритма вычисления действительных корней полного квадратного уравнения в «верхнем» варианте и преобразованной, причем изменение заключалось в переносе операторов 100 и 102 на яруса 2 и 3 соответственно без увеличения высоты ЯПФ (ширина последней при этом снизилась вдвое). На рис. 5,а показаны соответствующие ЯПФ; рис. 5,б -

диаграммы обмена данными; рис. 5,в - линейчатые диаграммы (отрисовываются системой SPF@home) времени существования промежуточных данных (светлые числа на диаграммах - размер промежуточных данных).

©© © ©© © ©

1-2

2-3

3-4

4-5

5-6

©© © ©© © 2 а А -1 Ь 2

б)

в)

Рис. 5. ЯПФ рассматриваемого алгоритма (а), диаграммы обмена данными при выполнении алгоритма (б), линейчатые диаграммы времени существования промежуточных данных (в)

Анализ приведенных рис. 5 данных хорошо иллюстрирует тенденцию возрастания размера временных данных при повышении плотности кода (ср. размер данных в промежутках ярусов от 1-2 до 5-6, символы слева от линейчатых графиков на рис. 5,в для планов I и II (для второго варианта плотность кода выше - повышение £и вдвое: с 0,46 до 0,92).

Параметр требуемого при вычислениях объема данных может быть включен в качестве одного из показателей оптимизации плана вычислений (наряду с плотностью кода и вычислительной трудоемкостью получения плана ВПП). Для выбора лучшего варианта при создании специализированного процессора может быть важно отношение объема внутренних регистров процессора и кэша данных.

Обсуждение

В ходе исследований подтвердилась возможность постепенного итерационного улучшения эвристических сценариев преобразования исходно полученных в виде ЯПФ в заданном направлении. В целом возможна разработка более быстрых (но с несколько худшим качеством по целевому назначению) и относительно медленных при более высоком качестве сценариев.

Несмотря скромную вычислительную сложность получения ЯПФ по ИГА, метод использования ЯПФ в качестве основы для построения планов ВПП обладает недостатком, заключающимся в единственности критерия принадлежности (причинно-следственная связь согласно вычислительной модели «операторы ^ операнды») операторов определенному ярусу ЯПФ. Требование учета дополнительных атрибутов операторов (время исполнения, требования выполнения на определенных вычислителях и т.п.) приводит к созданию дополнительных построений (в предложенной работе автор применил два подхода - введение метрик вершин и дуг графа и идею «подъяру-сов»), усложняющих анализ.

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

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

С помощью описанных методов преобразования ЯПФ удалось добиться повышения коэффициента использования числа параллельных вычислителей £и с 0,1-0,2 для «сырой» ЯПФ до (вполне удовлетворительных) 0,9-0,95 (последние значения - для режима возможного увеличения высоты ЯПФ). Неслучайное получение идеала в £и = 1 возможно лишь при полностью последовательном выполнении алгоритма (своеобразные формы кривых результатов вычислительных экспериментов являются результатом реализации целочисленных алгоритмов преобразования ЯПФ).

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

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

Заключение

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

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

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

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

Список литературы

1. Воеводин В. В., Воеводин Вл. В. Параллельные вычисления. СПб. : БХВ-Петербург, 2004. 608 c.

2. Bakanov V. Research and selection of rational methods for obtaining framework of schedules for the parallel programs execution // Data Science and Intelligent Systems. CoMeSySo 2021. Lecture Notes in Networks and Systems. 2021. Vol. 231. P. 268-280. doi: 10.1007/978-3-030-90321-3_22

3. Таненбаум Э., Остин Т. Архитектура компьютера. СПб. : Питер, 2019. 816 c.

4. Encyclopedia of Parallel Computing / ed. by David Padua. Springer, 2012. 2195 p.

5. Dennis J. B., Misunas D. P. A Preliminary Architecture for a Basic Data-Flow Processor // In Proc. Second Annual Symp. Computer Architecture, 1975. January. P. 126-132.

6. Баканов В. М. Управление динамикой вычислений в процессорах потоковой архитектуры для различных типов алгоритмов // Программная инженерия. 2015. № 9. C. 20-24.

7. McNairy C., Soltis D. Itanium 2 processor microarchitecture // IEEE Micro Magazine. 2003. Vol. 23 (2). P. 44-55.

8. Cormen T. H., Leiserson C. E., Rivest R. L., Stein C. Introduction to Algorithms. Third Edition. MIT Press, 2009. 1292 p.

9. McConnell J. J. Analysis of Algorithms: An Active Learning Approach. Second Edition. Jones & Bartlett Publishers, 2008. 451 p.

10. Gehry M., Johnson D. Computing machines and difficult tasks. World, Book on Demand, 2012. 420 p.

11. Ierusalimschy R. Programming in Lua. Third Edition. PUC-Rio, Brasil, Rio de Janeiro, 2013. 348 p.

12. Федотов И. Е. Параллельное программирование. Модели и приемы. М. : СОЛОН-Пресс, 2018. 390 с.

13. Баканов В. М. Вычислительная сложность построения рациональных планов выполнения программ на заданном поле параллельных вычислителей // Russian Technological Journal. 2022. Vol. 10 (6). P. 7-19. doi: 10.32362/2500-316X-2022-10-6-7-19

References

1. Voevodin V.V., Voevodin Vl.V. Parallel'nye vychisleniya = Parallel computing. Saint Petersburg: BKhV-Peteiburg, 2004:608. (In Russ.)

2. Bakanov V. Research and selection of rational methods for obtaining framework of schedules for the parallel programs execution. Data Science and Intelligent Systems. CoMeSySo 2021. Lecture Notes in Networks and Systems. 2021;231:268-280. doi: 10.1007/978-3-030-90321-3_22

3. Tanenbaum E., Ostin T. Arkhitektura komp'yutera = Computer architecture. Saint Petersburg: Piter, 2019:816. (In Russ.)

4. Padua D. (ed.). Encyclopedia of Parallel Computing. Springer, 2012:2195.

5. Dennis J.B., Misunas D.P. A Preliminary Architecture for a Basic Data-Flow Processor. In Proc. Second Annual Symp. Computer Architecture, 1975:P. 126-132.

6. Bakanov V.M. Controlling the dynamics of computations in processors of stream architecture for various types of algorithms. Programmnaya inzheneriya = Software engineering. 2015;(9):20-24. (In Russ.)

7. McNairy C., Soltis D. Itanium 2 processor microarchitecture. IEEE Micro Magazine. 2003;23(2):44-55.

8. Cormen T.H., Leiserson C.E., Rivest R.L., Stein C. Introduction to Algorithms. Third Edition. MIT Press, 2009:1292.

9. McConnell J.J. Analysis of Algorithms: An Active Learning Approach. Second Edition. Jones & Bartlett Publishers, 2008:451.

10. Gehry M., Johnson D. Computing machines and difficult tasks. World, Book on Demand, 2012:420.

11. Ierusalimschy R. Programming in Lua. Third Edition. PUC-Rio, Brasil, Rio de Janeiro, 2013:348.

12. Fedotov I.E. Parallel'noe programmirovanie. Modeli i priemy = Parallel programming. Models and techniques. Moscow: SOLON-Press, 2018:390. (In Russ.)

13. Bakanov V.M. Computational complexity of constructing rational execution plans for programs on a given field of parallel computers. Russian Technological Journal. 2022;10(6):7-19. (In Russ.). doi: 10.32362/2500-316X-2022-10-6-7-19

Информация об авторах / Information about the authors

Валерий Михайлович Баканов доктор технических наук, профессор кафедры КБ-5 «Аппаратное, программное и математическое обеспечение вычислительных систем», Институт кибербезопасности и цифровых технологий, МИРЭА - Российский технологический университет (Россия, г. Москва, пр-кт Вернадского, 78)

E-mail: e881e@mail.ru

Valeriy M. Bakanov

Doctor of engineering sciences, professor of the sub-department KB-5 "Hardware, software and mathematical support of computing systems", Institute of Cybersecurity and Digital Technologies, MIREA - Russian Technological University (78 Vernadskogo avenue, Moscow, Russia)

Автор заявляет об отсутствии конфликта интересов / The author declares no conflicts of interests.

Поступила в редакцию / Received 08.01.2023

Поступила после рецензирования и доработки / Revised 14.02.2023 Принята к публикации / Accepted 19.03.2022

i Надоели баннеры? Вы всегда можете отключить рекламу.