=Paper= {{Paper |id=Vol-1576/093 |storemode=property |title=Programming of hybrid computer systems based on the performance reduction method |pdfUrl=https://ceur-ws.org/Vol-1576/093.pdf |volume=Vol-1576 |authors=Aleksey Dordopulo,Ilya Levin,Igor Kalyaev,Vyacheslav Gudkov,Andrey Gulenok }} ==Programming of hybrid computer systems based on the performance reduction method== https://ceur-ws.org/Vol-1576/093.pdf
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                         agora.guru.ru/pavt




Программирование вычислительных систем гибридного типа
     на основе метода редукции производительности*
         А.И. Дордопуло1, И.И. Левин2, И.А. Каляев1, В.А. Гудков1, А.А. Гуленок1
     Научно-исследовательский институт многопроцессорных вычислительных систем
    Южного федерального университета 1, ООО «Научно-исследовательский центр супер-
                             ЭВМ и нейрокомпьютеров»2

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

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


1. Введение
    Рост сложности решаемых прикладных задач требует постоянного повышения производи-
тельности вычислительных систем. Для достижения высокой реальной производительности
разработчики ведут постоянный поиск новых архитектурных решений, а также создают новые
технологии и средства программирования, повышающие эффективность решения прикладных
задач. Одним из перспективных способов достижения высокой реальной производительности
вычислительной системы (ВС) при решении задач является адаптация архитектуры ВС под
структуру решаемой задачи и создание специализированного вычислительного устройства, эф-
фективно реализующего алгоритм вычислений. Большинство практических задач требует сов-
мещения в едином вычислительном контуре как последовательных, так и параллельных вычис-
лительных фрагментов для эффективной реализации как структурных [1], так и процедур-
ных [1] фрагментов вычислений. Решение этой проблемы многие разработчики видят в созда-
нии вычислительных систем с гибридной организацией вычислений, содержащих различные по
архитектуре вычислительные узлы, на которых можно реализовать как структурные, так и про-
цедурные вычисления в едином вычислительном контуре. Симбиоз узлов с разной архитекту-
рой в рамках единой вычислительной системы теоретически позволяет повысить реальную
производительность вычислительной системы за счет возможности эффективной реализации
как структурных, так и процедурных фрагментов вычислений на узлах различной архитектуры
вычислительной системы гибридного типа (ВСГТ).
    ВСГТ может содержать реконфигурируемые вычислительные узлы и узлы универсальных
микропроцессоров, в роли которых могут выступать универсальные процессоры, графические
процессоры или ускорители Intel Xeon Phi. Поэтому для программирования таких вычисли-
тельных систем используются технологии программирования гетерогенных вычислительных
систем: CUDA, OpenACC, OpenCL и т.д., в основе которых лежат расширения языков про-
*
 Работа выполнена при частичной финансовой поддержке Министерства образования и науки РФ по Со-
глашению о предоставлении субсидии № 14.578.21.0006 от 05.06.2014, уникальный идентификатор
RFMEFI57814X0006


                                               131
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                         agora.guru.ru/pavt



граммирования C, С++, FORTRAN, учитывающие архитектуру специализированного микро-
процессорного узла. К существенным недостаткам этих технологий программирования отно-
сятся плохая переносимость готовых решений между ВС различной архитектуры и конфигура-
ции и плохая масштабируемость программ. Основной причиной указанных недостатков являет-
ся подход к программированию ВС, при котором осуществляется разбиение задачи на отдель-
ные фрагменты, каждый из которых реализуется на отдельном узле (на отдельном устройстве)
гибридной вычислительной системы. Таким образом, выполняется независимое программиро-
вание каждого задействованного узла ВС, в результате чего любое изменение конфигурации
ВС или изменение исходного кода прикладной программы приводит к необходимости повтор-
ного разбиения задачи на фрагменты и созданию локальных программ для каждого узла ВС. В
настоящее время широкое применение вычислительных систем гибридного типа для решения
практических прикладных задач сдерживается высокой сложностью программирования, по-
скольку для эффективного использования архитектурных преимуществ всех вычислительных
узлов ВСГТ необходима разработка подпрограмм для каждого узла ВСГТ с учетом различных
вариантов организации вычислений.
    Поэтому целью описанных в статье научных исследований является сокращение времени
разработки и портации параллельных прикладных программ для ВСГТ с возможностью про-
стой и быстрой адаптации прикладной программы под изменившуюся архитектуру или конфи-
гурацию ВСГТ.

2. Технология ресурсонезависимого программирования ВСГТ
    Для программирования ВСГТ необходимы как средства описания различных вариантов ор-
ганизации вычислений в едином для различных архитектур языковом пространстве, так и сред-
ства трансляции параллельных прикладных программ, объединенные в технологию ресурсоне-
зависимого программирования ВСГТ.
    Под технологией программирования понимается совокупность обобщенных и системати-
зированных научных знаний об оптимальных способах (приемах и процедурах) проведения
процесса программирования [2], обеспечивающего в заданных условиях получение программ-
ной продукции с заданными свойствами. Под технологией ресурсонезависимого программиро-
вания будем понимать совокупность знаний, методов, технологических приемов и средств, ко-
торая обеспечивает возможность гибкого изменения и масштабирования программы под новую
вычислительную архитектуру или конфигурацию вычислительной системы.
    Определим объект исследований – ВСГТ – более формально, поскольку зачастую к вычис-
лительным системам гибридного типа относят гетерогенные вычислительные системы. Это
приводит к тому, что для программирования ВСГТ используют технологии программирования,
предназначенные для программирования гетерогенных ВС.
    Гетерогенная ВС содержит архитектурно-одинаковые вычислительные узлы разных типов
с одинаковым типом организации вычислений и способом обработки информации. Типичным
примером таких систем являются системы, содержащие одновременно как микропроцессоры,
так и графические процессоры.
    ВС гибридного типа содержит архитектурно-различные вычислительные узлы с различ-
ным типом организации вычислений и одинаковым способом обработки информации. Приме-
ром таких систем являются вычислительные устройства с микропроцессорами и кристаллами
ПЛИС в едином контуре, которые и являются предметом рассмотрения в рамках настоящей
статьи.
    Для обеспечения функционирования унифицированных процессорных и реконфигурируе-
мых вычислительных узлов в едином контуре языковые средства разрабатываемой технологии
ресурсонезависимого программирования должны обеспечивать возможность описания фраг-
ментов с различными типами организации вычислений, в том числе работающих с различными
частотой, скважностью и разрядностью обрабатываемых данных, а также содержать гибкие и
мощные средства масштабирования как фрагментов вычислений, так и числа операций в каж-
дом фрагменте. Методы масштабирования должны обеспечивать возможность как увеличения
параллелизма задачи (индукцию) при увеличении аппаратного ресурса, так и возможность со-
кращения (редуцирования) при сокращении вычислительного ресурса. Авторам не удалось


                                               132
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                         agora.guru.ru/pavt



найти в открытых печатных источниках описаний технологий программирования ВСГТ для
реконфигурируемых и микропроцессорных вычислительных узлов, обеспечивающих в автома-
тическом режиме как индукцию, так и редукцию параллельных программ. Поэтому представ-
ленная технология программирования базируется на опыте разработки систем программирова-
ния для РВС на основе кристаллов ПЛИС, полученном в ходе выполнения ряда научных и
опытно-конструкторских работ в НИИ МВС ЮФУ.
    Можно сформулировать ряд требований к технологии ресурсонезависимого программиро-
вания ВСГТ. Технология ресурсонезависимого программирования ВСГТ должна:
    - обеспечивать поддержку различных форм организации вычислений (структурные, струк-
турно-процедурные, мультипроцедурные вычисления и их различные сочетания) в едином вы-
числительном контуре;
    - обеспечивать возможность программирования унифицированных процессорных и рекон-
фигурируемых вычислительных узлов в едином вычислительном контуре;
    - обеспечивать программирование в едином языковом пространстве на языке программи-
рования высокого уровня;
    - обеспечивать возможность простого масштабирования прикладной программы как для
случая увеличения, так и для случая сокращения доступного аппаратного ресурса;
    - должна обеспечивать возможность простой и быстрой адаптации прикладной программы,
разработанной для одной конфигурации ВСГТ, под другую конфигурацию ВСГТ, в том числе
при добавлении узлов новой архитектуры;
    - обеспечивать портацию ресурсонезависимой параллельной программы с помощью пере-
трансляции без существенной корректировки исходного текста.
    Для реализации технологии ресурсонезависимого программирования ВСГТ необходимо
выбрать язык программирования, который позволит описывать различные формы организации
вычислений и программировать унифицированные процессорные и реконфигурируемые вы-
числительные узлы в едином вычислительном контуре.
    Специализированные языки высокого уровня для программирования реконфигурируемых
вычислительных систем (РВС) обладают привычным для большинства программистов персо-
нальных ЭВМ синтаксисом языка С и отличаются между собой семантическими особенностя-
ми вызова и использования операторов. Для описания параллельных процессов в РВС в этих
языках используется изначально последовательная парадигма языка С, семантика которого
ориентирована на взаимодействие последовательных процессов, что не позволяет в полной ме-
ре использовать все возможности РВС при разработке параллельных программ на этих языках.
Это приводит к семантическому разрыву между исходным информационным графом задачи,
его описанием на языке высокого уровня и созданной транслятором схемотехнической реали-
зацией. Результатом этого разрыва является существенное снижение эффективности парал-
лельной программы - как правило, в 3-5 раз более низкая производительность по сравнению с
приложениями, разработанными на языках HDL-группы.
    Перспективным направлением в области программирования РВС является язык высокого
уровня COLAMO[3-6], разрабатываемый в НИИ МВС ЮФУ. Язык COLAMO предназначен для
описания реализации параллельного алгоритма и создания на основе принципов структурно-
процедурной организации вычислений специализированной вычислительной структуры в ар-
хитектуре РВС, которая выполняет последовательную смену структурно (аппаратно) реализо-
ванных фрагментов информационного графа задачи, каждый из которых является вычисли-
тельным конвейером потока операндов. Таким образом, приложение (прикладная задача) для
РВС состоит из структурной составляющей, представленной в виде аппаратно реализованных
фрагментов вычислений, и процедурной составляющей, представляющей собой единую для
всех структурных фрагментов управляющую программу последовательной смены вычисли-
тельных структур и организации потоков данных.
    Для описания на языке COLAMO процедурной организации вычислений на универсальных
процессорах и возможности быстрого перехода от процедурной реализации вычислений на
универсальных процессорах к структурной организации вычислений на реконфигурируемых
вычислительных узлах в языке COLAMO существует конструкция Implicit. Конструкция
Implicit является конструкцией с неявным указанием реализуемой в фрагменте формы органи-
зации вычислений (принадлежности к структуре или процедуре). Такой фрагмент может быть


                                               133
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                         agora.guru.ru/pavt



реализован либо процедурно, либо структурно. Переопределение способа реализации кон-
струкции Implicit позволяет прикладному программисту без существенного изменения текста
параллельной программы перейти от структурной организации вычислений к процедурной и
обратно. Наличие конструкций описания как структурных, так и процедурных фрагментов вы-
числений прикладной задачи дает возможность программисту создавать единую прикладную
программу для всех узлов ВСГТ, что позволяет рассматривать язык программирования высоко-
го уровня COLAMO [3-6] как основу для реализации технологии ресурсонезависимого про-
граммирования как реконфигурируемых вычислительных узлов, так и универсальных узлов
ВСГТ.
    Однако для эффективного программирования ВСГТ языковые средства должны иметь воз-
можность описания фрагментов вычислений, работающих с различной частотой, скважностью
и разрядностью обрабатываемых данных для обеспечения масштабирования как фрагментов,
так и отдельных устройств не только при увеличении аппаратного ресурса, но и при его сокра-
щении, а также возможность работы с данными переменной разрядности для эффективного ис-
пользования аппаратного ресурса ВСГТ.

3. Редукция производительности как способ масштабирования
вычислений ВСГТ
     Основой для простого масштабирования и адаптации прикладной программы как для слу-
чая увеличения, так и для случая сокращения доступного аппаратного ресурса, является редук-
ция производительности прикладной программы, под которой понимается пропорциональное
сокращение производительности во всех без исключения фрагментах информационного графа
задачи с возможным сокращением аппаратных затрат на реализацию вычислительной структу-
ры. Редуцирование производительности параллельных программ позволяет изменять ключевые
параметры параллельных программ, поскольку структурная реализация задачи может привести
к нехватке доступного аппаратного ресурса, что особенно актуально при переносе задачи на
гибридные вычислительные системы различных архитектур и конфигураций.
     Возможны следующие виды редукции:
     - редукция производительности по вычислительным устройствам;
     - редукция производительности по каналам памяти;
     - редукция производительности по разрядности;
     - редукция производительности по частоте.
     Редукция производительности по вычислительным устройствам основана на сокращении
одновременно выполняемых устройств, реализующих вычислительные операции. Иллюстрация
принципов функционирования редукции производительности на примере операции быстрого
преобразования Фурье представлена на рис. 1 и 2. На рис. 1-а представлен исходный информа-
ционный граф операции быстрого преобразования Фурье, содержащий 16 вычислительных
устройств, а на рис. 1-б представлена структурная реализация этой операции на РВС с услов-
ным заполнением ПЛИС (в допущении, что два вычислительных устройства занимают ресурс
одного кристалла ПЛИС). При выполнении редукции производительности по функциональным
устройствам осуществляется пропорциональное сокращение числа одновременно работающих
устройств, что приводит как к сокращению производительности, так и к сокращению занимае-
мого аппаратного ресурса. Степень редукции производительности задает коэффициент сокра-
щения параметра редукции. Результат редукции производительности по функциональным
устройствам со степенью 2 для базовой операции быстрого преобразования Фурье представлен
на рис. 2.
     В представленном на рис. 2 примере видно, что число функциональных устройств сократи-
лось вдвое (до восьми8) и результат операции получается не за один такт работы (для струк-
турной реализации, см. рис. 1), а не менее, чем за два такта работы.
     Редукция производительности по вычислительным устройствам может быть реализована в
виде:
     1) однокадровой параллельной программы с использованием мультиплексоров и скважно-
сти, равной степени выполняемой редукции;


                                               134
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                         agora.guru.ru/pavt



   2) многокадровой программы с использованием конструкции Let;
   3) мультикадровой программы с использованием конструкции MultiCadr.
           Re[ At ]
                                                        1                          Re[ At 1 ]
                                                +

           Im[ At ]
                                                        2                          Im[ At 1 ]
                                                +



                                                        3    Re[Ct ]
                                                 -
           Re[ Bt ]                                                        5
                                                                       X
                                                                                    9 Re[ Bt 1 ]
                                                                               -
                                                        4    Im[Ct ]
            Im[ Bt ]                             -                         6
                                                                       X


           Re[WБ ]            11
                          X                                            X
                                                                           7
           Re[WВ ]                       15 Re[WT ]                                10 Im[ Bt 1 ]
                                     -                                         +
           Im[WБ ]            12                                           8
                          X                                            X
           Im[WВ ]

                              14              Im[WT ]
                          X
                                         16
                                     +
                              13
                          X



                                                        а)




                                                        б)
  Рис. 1. Принципы функционирования редукции производительности на примере операции быстрого
преобразования Фурье (а - исходный информационный граф операции быстрого преобразования Фурье,
б - структурная реализация операции быстрого преобразования Фурье на РВС с условным заполнением
                                              ПЛИС)




                                                     135
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                             agora.guru.ru/pavt



                Re[WВ ]                               Re[ At ]
            (3) Re[Ct ]                                 11                                                 1    Re[ At 1 ]
                                      11,5                                                   1,15 (-)
                                  X                                              +                         2    Im[ At 1 ]
             Re[WБ ]                                  Re[ Bt ]
        (15) Re[W ]                                     12
                 T


                Im[WВ ]                               Im[ At ]
            (4) Im[Ct ]               12,6              13                                    2,16
                                  X                                              +
             Im[WБ ]                                  Im[ Bt ]
        (16) Im[WT ]                                    14

                Re[WB ]                               Re[ At ]
            (4) Im[Ct ]                                 5                                                  9    Re[ Bt 1 ]
                                      13,7                                                   3 (-),9 (-)
                                  X                                              +
             Im[WБ ]                                  Re[ Bt ]                                             10   Im[ Bt 1 ]
        (15) Re[WT ]                                    6

                Re[WБ ]                               Im[ At ]
            (3) Re[Ct ]               14,8              7                                    4 (-),10
                                  X                                              +
             Im[WB ]                                  Im[ Bt ]
        (16) Im[WT ]                                    8

                                                        а)
  Re[WВ ]                 РВУ 1                                   Re[ At ]           РВУ 3
  Re[Ct ]
                     X                                                       +
  Re[WБ ]                                                         Re[ Bt ]
  Re[WT ]
                                                                                                                          МПУ 2
  Im[WВ ]                                     МПУ 1               Im[ At ]
  Im[Ct ]
                     X
                                                                             +
  Im[WБ ]                                                        Im[ Bt ]
  Im[WT ]

  Re[WB ]                 РВУ 2                                  Re[ At ]            РВУ 4
  Im[Ct ]
                     X
                                                                             +
  Im[WБ ]                                                        Re[ Bt ]
  Re[WT ]

  Re[WБ ]                                                        Im[ At ]
  Re[Ct ]
                     X
                                                                             +
  Im[WB ]                                                        Im[ Bt ]
  Im[WT ]


                                                        б)
    Рис. 2. Результат редукции производительности по функциональным устройствам со степенью 2
                         для базовой операции быстрого преобразования Фурье
    Редукция производительности по функциональным устройствам в виде однокадровой про-
граммы заключается в реализации вычислений с помощью одного кадра и набора мультиплек-
соров, обеспечивающих управление информационными потоками данных, которые подаются в
вычислительную структуру со скважностью, равной степени выполняемой редукции. Для опи-
сания редукции по вычислительным устройствам в виде однокадровой параллельной програм-
мы в язык высокого уровня была введена директива Reduction of Device следующего вида:
    #Reduction of Device X;
         Блок операторов
    EndReduction;,
    Здесь и далее Х - степень выполняемой редукции, а блок операторов содержит список опе-
раторов, для которых будет выполняться редукции производительности.
    Редукция по функциональным устройствам в виде мультикадровой программы позволяет
перейти от структурной реализации задачи к структурно-процедурной при недостаточном ап-
паратном ресурсе для структурной реализации задачи. Для реализации перехода от структур-
ной организации вычислений к структурно-процедурной организации, обеспечивающего эф-


                                                      136
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                         agora.guru.ru/pavt



фективное масштабирование параллельной программы, в язык высокого уровня COLAMO вво-
дится новая директива для описания редукции по функциональным устройствам в виде муль-
тикадровой программы. Мультикадр – это кортеж вычислительных структур, представленных в
виде подкадров, с описанием функций чтения и записи для каждого из них, переключение меж-
ду которыми осуществляется каждый условный такт работы. Важным отличием мультикадра
от кадра является отсутствие необходимости в глобальной синхронизации информационных
потоков данных при смене вычислительных структур.
    Для описания редукции производительности по устройствам в виде мультикадровой про-
граммы введена конструкция следующего вида:
    #Reduction of MultiCadr X;
         Блок операторов
    EndReduction;,
    Редукция производительности по функциональным устройствам в виде многокадровой
программы применяется в случае нехватки вычислительного аппаратного ресурса для реализа-
ции редукция производительности по функциональным устройствам в виде однокадровой про-
граммы и недостаточного количества каналов памяти для реализации редукции производитель-
ности по функциональным устройствам в виде мультикадровой программы.
    Редукция производительности по функциональным устройствам в виде многокадровой
программы заключается в реализации вычислений с помощью неизменяемой структуры LET и
нескольких кадров, в каждом из которых через структуру LET проходит поток данных, а обмен
промежуточными данными осуществляется через дополнительную память. Для описания ре-
дукции по вычислительным устройствам в виде многокадровой программы с использованием
конструкции Let в язык высокого уровня предлагается директива вида:
    #Reduction of Let X;
         Блок операторов
    EndReduction;.
    Одним из важнейших типов редукции, обеспечивающих возможность ресурсонезависимо-
го программирования ВСГТ, является редукция производительности по каналам памяти. Для
описания редукции по каналам памяти предлагается использование в языке COLAMO следую-
щей директивы:
    #Reduction of Channel (Type) X;,
         Блок операторов
    EndReduction;,
где ключевое слово «Channel» указывает на выполнение редукции по каналам памяти, а пара-
метр Type указывает на выбранный способ редукции. Все каналы памяти можно разделить на
входные и выходные каналы, редукция для которых может быть выполнена независимо друг от
друга. Поэтому сокращение каналов памяти можно выполнить тремя способами:
    - редукцией входных каналов (задается ключевым словом Input);
    - редукцией выходных каналов (задается ключевым словом Output);
    - редукцией входных и выходных каналов (задается ключевым словом All).
    Редукция каналов памяти заключается в объединении каналов в один общий канал путем
смешивания данных или путем последовательного объединения данных друг за другом.
    Редукция производительности по разрядности направленна не на сокращение устройств в
вычислительной структуре, а на сокращение разрядности обрабатываемых данных за счет ис-
пользования устройств меньшей разрядности, что приводит к сокращению аппаратных затрат
на реализацию вычислительной структуры. При выполнении редукции производительности по
разрядности управление информационными потоками данных осуществляется мультиплексо-
ром, а сами данные подаются в вычислительную структуру со скважностью, значение которой
равно степени выполняемой редукции. Для описания редукции по разрядности на язык высоко-
го уровня COLAMO предлагается использование конструкции вида: #Reduction of Bit X;
         Блок операторов
    EndReduction;
    Редукция производительности по частоте, в отличие от рассмотренных редукций, предна-
значена для замедления работы вычислительных устройств на величину, равную степени вы-
полняемой редукции, при этом скважность подачи данных в вычислительную структуру оста-


                                               137
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                         agora.guru.ru/pavt



ется неизменной. Как правило, редукция производительности по частоте применяется для со-
гласования скоростей обработки между редуцированными и нередуцированными фрагментами
информационного графа в структуре прикладной задачи. Для описания редукции производи-
тельности по частоте в язык высокого уровня предлагается конструкция вида:
    #Reduction of Frequency X;
         Блок операторов
    EndReduction;,
где Х - степень выполняемой редукции, а блок операторов содержит список операторов, для
которых будут выполняться редукции производительности по разрядности.

4. Заключение
    Для эффективного программирования вычислительных систем гибридного типа предложе-
но использование языка программирования высокого уровня COLAMO как основы разрабаты-
ваемой технологии ресурсонезависимого программирования ВСГТ. Возможность описания в
едином вычислительном контуре различных форм организации параллельных вычислений в
совокупности с разработанными методами редукции производительности прикладной про-
граммы позволяет обеспечить ресурсонезависимость программирования ВСГТ, т.е. возмож-
ность простой и быстрой адаптации прикладной программы под изменившуюся архитектуру
или конфигурацию ВСГТ. Предложенное расширение языка COLAMO обеспечивает пользова-
теля набором необходимых средств для быстрой разработки эффективных ресурсонезависимых
масштабируемых параллельных программ в едином языковом пространстве, что снижает слож-
ность программирования ВСГТ и повышает скорость разработки параллельных прикладных
программ при рациональном использовании узлов ВСГТ с разной архитектурой.

Литература
1. И.А. Каляев, И.И. Левин, Е.А. Семерников, В.И. Шмойлов Реконфигурируемые мультикон-
   вейерные вычислительные структуры. Изд. 2-е, перераб. и доп. Под общ. ред. И.А. Каляева.
   Ростов-на-Дону: Изд-во ЮНЦ РАН, 2009. 344 с.
2. Иванова Г.С. Технология программирования: Учебник для вузов. М.: Изд-во МГТУ
   им. Н.Э. Баумана, 2002. 320 с.
3. Каляев И.А., Левин И.И., Дордопуло А.И., Семерников Е.А. Высокопроизводительные ре-
   конфигурируемые вычислительные системы нового поколения. Научный сервис в сети Ин-
   тернет: экзафлопсное будущее. Труды Международной суперкомпьютерной конференции с
   элементами научной школы для молодежи (Новороссийск, 19 сентября-24 сентября
   2011 г.). М.: Изд-во МГУ, 2011. С. 42-49.
4. Каляев И.А., Левин И.И., Дордопуло А.И., Семерников Е.А. Реконфигурируемые вычисли-
   тельные системы на основе ПЛИС семейства Virtex-6. Параллельные вычислительные тех-
   нологии 2011. Сборник трудов Международной научной конференции. Челябинск-М.: Из-
   дательский центр ЮУрГУ, 2011. - С. 203–210.
5. Kalyaev I.A., Levin I.I., Dordopulo A.I., Slasten L.M. Reconfigurable Computer Systems Based
   on Virtex-6 and Virtex-7 FPGAs. IFAC Proceedings Volumes, Programmable Devices and Em-
   bedded Systems, Volume №12, part №1, 2013. Рр. 210-214.
6. Igor A. Kalyaev, Ilya I. Levin, Alexey I. Dordopulo, Liuba M. Slasten. FPGA-based Reconfigura-
   ble Computer Systems. Science and Information Conference (SAI), Oct 7-Oct 9, 2013, London,
   UK. Рр. 148-155.




                                               138
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                               agora.guru.ru/pavt




         Programming of hybrid computer systems based on the
                  performance reduction method*
           A.I. Dordopulo1, I.I. Levin2, I.A. Kalyaev1, V.A. Gudkov1, A.A. Gulenok1
Scientific Research Institute of Multiprocessor computer systems at Southern Federal Univer-
    sity1, “Scientific Research Centre of Supercomputers and Neurocompuiters” Co Ltd2

          The paper considers methods of performance reduction, which, along with the high-level
          programming language COLAMO, are the basis of the developed technology of resource-
          independent programming of hybrid computer systems consisted of reconfigurable and mi-
          croprocessor computational nodes. Owing to the language COLAMO it is possible to de-
          scribe various forms of organization of parallel calculations – from the structural form typi-
          cal for reconfigurable computational nodes, then to structural-procedural and multiproce-
          dural forms, and at last to procedural forms of organization of calculations, used for micro-
          processor nodes. Transformations between these various forms of organization of calcula-
          tions for fast computer-aided adaptation of the application to the modified configuration of
          hardware resource of the computer system is performed with the help of the methods of
          performance reduction.

          Keywords: performance reduction, high–level programming language, programming of hy-
          brid computer systems, technologies of resource-independent programming.


References
    1. Kalyaev I.A., Levin I.I., Semernikov E.A., Shmoilov V.I. Rekonfiguriruyemiye multikonvey-
       erniye vichislitelniye struktury. [Reconfigurable multipipeline computing structures] 2nd edi-
       tion, revised and supplemented. Edited by I.A. Kalyaev. Rostov-on-Don: SSC RAS Publish-
       ing, 2009. 344 pp.
    2. Ivanova G.S. Tekhnologiya programmirovaniya [Technology of programming]: Manual. М.:
       Bauman MSTU Publishing, 2002. 320 pp.
    3. Kalyaev I.A., Levin I.I., Dordopulo A.I, Semernikov E.A. Vysokoproizvoditelniye rekonfigu-
       riruyemiye vichislitelniye sistemy novogo pokoleniya. [High-performance reconfigurable
       computer systems of the next-generation] Nauchnyi servis v seti Internet: ekzaflopsnoye bu-
       dusheye. Trudy Mezhdunarodnoi superkompjuternoi konferentsii s elementami nauchnoi
       shkoly dlya molodezhi (Novorossisk, 19 sentyabrya-24 sentyabrya 2011). [Scientific service
       in the Internet: exaflops future. Proceedings of the International supercomputer conference
       and youth scientific school (Novorossiisk, 19 September-24 September, 2011)] М.: MSU Pub-
       lishing, 2011. 42-49 pp.
    4. Kalyaev I.A., Levin I.I., Dordopulo A.I., Semernikov E.A. Rekonfiguriruyemiye vichislitelni-
       ye sistemy na osnove PLIS semeistva Virtex-6. [Reconfigurable computer systems based on
       Virtex-6 FPGAs] Parallelniye vichislitelniye tekhnologii 2011. Sbornik trudov Mezhdunarod-
       noi nauchnoi konferentsii. [Parallel computer technologies 2011. Proceedings of International
       scientific conference] Tchelyabinsk-M.: South-UIral State University Publishing Centre,
       2011. – 203–210 pp.
     5. Kalyaev I.A., Levin I.I., Dordopulo A.I., Slasten L.M. Reconfigurable Computer Systems
        Based on Virtex-6 and Virtex-7 FPGAs. IFAC Proceedings Volumes, Programmable Devices
        and Embedded Systems, Volume №12, part №1, 2013. Рр. 210-214.



*
   This paper was financially supported in part by the Ministry of Education and Science of the Russian Federa-
tion under Grant № 14.578.21.0006 from 05.06.2014, ID RFMEFI57814X0006


                                                      139
Параллельные вычислительные технологии (ПаВТ’2016) || Parallel computational technologies (PCT’2016)

                                         agora.guru.ru/pavt



    6. Igor A. Kalyaev, Ilya I. Levin, Alexey I. Dordopulo, Liuba M. Slasten. FPGA-based Recon-
       figurable Computer Systems. Science and Information Conference (SAI), Oct 7-Oct 9, 2013,
       London, UK. Рр. 148-155.




                                               140