<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Программирование вычислительных систем гибридного типа на основе метода редукции производительности*</article-title>
      </title-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <fpage>131</fpage>
      <lpage>140</lpage>
      <abstract>
        <p>В статье предлагаются методы редукции производительности, составляющие основу разрабатываемой технологии ресурсонезависимого программирования вычислительных систем гибридного типа, содержащих реконфигурируемые и микропроцессорные вычислительные узлы. Для описания различных форм организации параллельных вычислений - от структурной формы, характерной для реконфигурируемых вычислительных узлов, через структурно-процедурную и мультипроцедурную к процедурной форме организации вычислений для микропроцессорных узлов - используется язык программирования высокого уровня COLAMO. Преобразования между различными формами организации вычислений для быстрой автоматизированной адаптации прикладной программы под изменившуюся конфигурацию аппаратного ресурса вычислительной системы выполняются с помощью методов редукции производительности. Ключевые слова: редукция производительности, язык программирования высокого уровня, программирование вычислительных систем гибридного типа, технологии ресурсонезависимого программирования.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>граммирования C, С++, FORTRAN, учитывающие архитектуру специализированного
микропроцессорного узла. К существенным недостаткам этих технологий программирования
относятся плохая переносимость готовых решений между ВС различной архитектуры и
конфигурации и плохая масштабируемость программ. Основной причиной указанных недостатков
является подход к программированию ВС, при котором осуществляется разбиение задачи на
отдельные фрагменты, каждый из которых реализуется на отдельном узле (на отдельном устройстве)
гибридной вычислительной системы. Таким образом, выполняется независимое
программирование каждого задействованного узла ВС, в результате чего любое изменение конфигурации
ВС или изменение исходного кода прикладной программы приводит к необходимости
повторного разбиения задачи на фрагменты и созданию локальных программ для каждого узла ВС. В
настоящее время широкое применение вычислительных систем гибридного типа для решения
практических прикладных задач сдерживается высокой сложностью программирования,
поскольку для эффективного использования архитектурных преимуществ всех вычислительных
узлов ВСГТ необходима разработка подпрограмм для каждого узла ВСГТ с учетом различных
вариантов организации вычислений.</p>
      <p>Поэтому целью описанных в статье научных исследований является сокращение времени
разработки и портации параллельных прикладных программ для ВСГТ с возможностью
простой и быстрой адаптации прикладной программы под изменившуюся архитектуру или
конфигурацию ВСГТ.
2. Технология ресурсонезависимого программирования ВСГТ
Для программирования ВСГТ необходимы как средства описания различных вариантов
организации вычислений в едином для различных архитектур языковом пространстве, так и
средства трансляции параллельных прикладных программ, объединенные в технологию
ресурсонезависимого программирования ВСГТ.</p>
      <p>
        Под технологией программирования понимается совокупность обобщенных и
систематизированных научных знаний об оптимальных способах (приемах и процедурах) проведения
процесса программирования [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], обеспечивающего в заданных условиях получение
программной продукции с заданными свойствами. Под технологией ресурсонезависимого
программирования будем понимать совокупность знаний, методов, технологических приемов и средств,
которая обеспечивает возможность гибкого изменения и масштабирования программы под новую
вычислительную архитектуру или конфигурацию вычислительной системы.
      </p>
      <p>Определим объект исследований – ВСГТ – более формально, поскольку зачастую к
вычислительным системам гибридного типа относят гетерогенные вычислительные системы. Это
приводит к тому, что для программирования ВСГТ используют технологии программирования,
предназначенные для программирования гетерогенных ВС.</p>
      <p>Гетерогенная ВС содержит архитектурно-одинаковые вычислительные узлы разных типов
с одинаковым типом организации вычислений и способом обработки информации. Типичным
примером таких систем являются системы, содержащие одновременно как микропроцессоры,
так и графические процессоры.</p>
      <p>ВС гибридного типа содержит архитектурно-различные вычислительные узлы с
различным типом организации вычислений и одинаковым способом обработки информации.
Примером таких систем являются вычислительные устройства с микропроцессорами и кристаллами
ПЛИС в едином контуре, которые и являются предметом рассмотрения в рамках настоящей
статьи.</p>
      <p>Для обеспечения функционирования унифицированных процессорных и
реконфигурируемых вычислительных узлов в едином контуре языковые средства разрабатываемой технологии
ресурсонезависимого программирования должны обеспечивать возможность описания
фрагментов с различными типами организации вычислений, в том числе работающих с различными
частотой, скважностью и разрядностью обрабатываемых данных, а также содержать гибкие и
мощные средства масштабирования как фрагментов вычислений, так и числа операций в
каждом фрагменте. Методы масштабирования должны обеспечивать возможность как увеличения
параллелизма задачи (индукцию) при увеличении аппаратного ресурса, так и возможность
сокращения (редуцирования) при сокращении вычислительного ресурса. Авторам не удалось
найти в открытых печатных источниках описаний технологий программирования ВСГТ для
реконфигурируемых и микропроцессорных вычислительных узлов, обеспечивающих в
автоматическом режиме как индукцию, так и редукцию параллельных программ. Поэтому
представленная технология программирования базируется на опыте разработки систем
программирования для РВС на основе кристаллов ПЛИС, полученном в ходе выполнения ряда научных и
опытно-конструкторских работ в НИИ МВС ЮФУ.</p>
      <p>Можно сформулировать ряд требований к технологии ресурсонезависимого
программирования ВСГТ. Технология ресурсонезависимого программирования ВСГТ должна:
- обеспечивать поддержку различных форм организации вычислений (структурные,
структурно-процедурные, мультипроцедурные вычисления и их различные сочетания) в едином
вычислительном контуре;</p>
      <p>- обеспечивать возможность программирования унифицированных процессорных и
реконфигурируемых вычислительных узлов в едином вычислительном контуре;</p>
      <p>- обеспечивать программирование в едином языковом пространстве на языке
программирования высокого уровня;</p>
      <p>- обеспечивать возможность простого масштабирования прикладной программы как для
случая увеличения, так и для случая сокращения доступного аппаратного ресурса;
- должна обеспечивать возможность простой и быстрой адаптации прикладной программы,
разработанной для одной конфигурации ВСГТ, под другую конфигурацию ВСГТ, в том числе
при добавлении узлов новой архитектуры;</p>
      <p>- обеспечивать портацию ресурсонезависимой параллельной программы с помощью
перетрансляции без существенной корректировки исходного текста.</p>
      <p>Для реализации технологии ресурсонезависимого программирования ВСГТ необходимо
выбрать язык программирования, который позволит описывать различные формы организации
вычислений и программировать унифицированные процессорные и реконфигурируемые
вычислительные узлы в едином вычислительном контуре.</p>
      <p>Специализированные языки высокого уровня для программирования реконфигурируемых
вычислительных систем (РВС) обладают привычным для большинства программистов
персональных ЭВМ синтаксисом языка С и отличаются между собой семантическими
особенностями вызова и использования операторов. Для описания параллельных процессов в РВС в этих
языках используется изначально последовательная парадигма языка С, семантика которого
ориентирована на взаимодействие последовательных процессов, что не позволяет в полной
мере использовать все возможности РВС при разработке параллельных программ на этих языках.
Это приводит к семантическому разрыву между исходным информационным графом задачи,
его описанием на языке высокого уровня и созданной транслятором схемотехнической
реализацией. Результатом этого разрыва является существенное снижение эффективности
параллельной программы - как правило, в 3-5 раз более низкая производительность по сравнению с
приложениями, разработанными на языках HDL-группы.</p>
      <p>
        Перспективным направлением в области программирования РВС является язык высокого
уровня COLAMO[
        <xref ref-type="bibr" rid="ref5 ref6">3-6</xref>
        ], разрабатываемый в НИИ МВС ЮФУ. Язык COLAMO предназначен для
описания реализации параллельного алгоритма и создания на основе принципов
структурнопроцедурной организации вычислений специализированной вычислительной структуры в
архитектуре РВС, которая выполняет последовательную смену структурно (аппаратно)
реализованных фрагментов информационного графа задачи, каждый из которых является
вычислительным конвейером потока операндов. Таким образом, приложение (прикладная задача) для
РВС состоит из структурной составляющей, представленной в виде аппаратно реализованных
фрагментов вычислений, и процедурной составляющей, представляющей собой единую для
всех структурных фрагментов управляющую программу последовательной смены
вычислительных структур и организации потоков данных.
      </p>
      <p>
        Для описания на языке COLAMO процедурной организации вычислений на универсальных
процессорах и возможности быстрого перехода от процедурной реализации вычислений на
универсальных процессорах к структурной организации вычислений на реконфигурируемых
вычислительных узлах в языке COLAMO существует конструкция Implicit. Конструкция
Implicit является конструкцией с неявным указанием реализуемой в фрагменте формы
организации вычислений (принадлежности к структуре или процедуре). Такой фрагмент может быть
реализован либо процедурно, либо структурно. Переопределение способа реализации
конструкции Implicit позволяет прикладному программисту без существенного изменения текста
параллельной программы перейти от структурной организации вычислений к процедурной и
обратно. Наличие конструкций описания как структурных, так и процедурных фрагментов
вычислений прикладной задачи дает возможность программисту создавать единую прикладную
программу для всех узлов ВСГТ, что позволяет рассматривать язык программирования
высокого уровня COLAMO [
        <xref ref-type="bibr" rid="ref5 ref6">3-6</xref>
        ] как основу для реализации технологии ресурсонезависимого
программирования как реконфигурируемых вычислительных узлов, так и универсальных узлов
ВСГТ.
      </p>
      <p>Однако для эффективного программирования ВСГТ языковые средства должны иметь
возможность описания фрагментов вычислений, работающих с различной частотой, скважностью
и разрядностью обрабатываемых данных для обеспечения масштабирования как фрагментов,
так и отдельных устройств не только при увеличении аппаратного ресурса, но и при его
сокращении, а также возможность работы с данными переменной разрядности для эффективного
использования аппаратного ресурса ВСГТ.
3. Редукция производительности как способ масштабирования
вычислений ВСГТ</p>
      <p>Основой для простого масштабирования и адаптации прикладной программы как для
случая увеличения, так и для случая сокращения доступного аппаратного ресурса, является
редукция производительности прикладной программы, под которой понимается пропорциональное
сокращение производительности во всех без исключения фрагментах информационного графа
задачи с возможным сокращением аппаратных затрат на реализацию вычислительной
структуры. Редуцирование производительности параллельных программ позволяет изменять ключевые
параметры параллельных программ, поскольку структурная реализация задачи может привести
к нехватке доступного аппаратного ресурса, что особенно актуально при переносе задачи на
гибридные вычислительные системы различных архитектур и конфигураций.
Возможны следующие виды редукции:
- редукция производительности по вычислительным устройствам;
- редукция производительности по каналам памяти;
- редукция производительности по разрядности;
- редукция производительности по частоте.</p>
      <p>Редукция производительности по вычислительным устройствам основана на сокращении
одновременно выполняемых устройств, реализующих вычислительные операции. Иллюстрация
принципов функционирования редукции производительности на примере операции быстрого
преобразования Фурье представлена на рис. 1 и 2. На рис. 1-а представлен исходный
информационный граф операции быстрого преобразования Фурье, содержащий 16 вычислительных
устройств, а на рис. 1-б представлена структурная реализация этой операции на РВС с
условным заполнением ПЛИС (в допущении, что два вычислительных устройства занимают ресурс
одного кристалла ПЛИС). При выполнении редукции производительности по функциональным
устройствам осуществляется пропорциональное сокращение числа одновременно работающих
устройств, что приводит как к сокращению производительности, так и к сокращению
занимаемого аппаратного ресурса. Степень редукции производительности задает коэффициент
сокращения параметра редукции. Результат редукции производительности по функциональным
устройствам со степенью 2 для базовой операции быстрого преобразования Фурье представлен
на рис. 2.</p>
      <p>В представленном на рис. 2 примере видно, что число функциональных устройств
сократилось вдвое (до восьми8) и результат операции получается не за один такт работы (для
структурной реализации, см. рис. 1), а не менее, чем за два такта работы.</p>
      <p>Редукция производительности по вычислительным устройствам может быть реализована в
виде:</p>
      <p>1) однокадровой параллельной программы с использованием мультиплексоров и
скважности, равной степени выполняемой редукции;
2) многокадровой программы с использованием конструкции Let;
3) мультикадровой программы с использованием конструкции MultiCadr.</p>
      <p>Re[Ct ]</p>
      <p>Re[WВ]
(3) Re[Ct ]</p>
      <p>Re[WБ ]
(15) Re[WT ]</p>
      <p>Re[At ]
Re[Bt]
Im[At]
Im[Bt]
Re[At]
Re[Bt]
Im[At]
Im[Bt]
+
+
+
+
+
+
+
+
РВУ 3
РВУ 4
Редукция производительности по функциональным устройствам в виде однокадровой
программы заключается в реализации вычислений с помощью одного кадра и набора
мультиплексоров, обеспечивающих управление информационными потоками данных, которые подаются в
вычислительную структуру со скважностью, равной степени выполняемой редукции. Для
описания редукции по вычислительным устройствам в виде однокадровой параллельной
программы в язык высокого уровня была введена директива Reduction of Device следующего вида:
#Reduction of Device X;</p>
      <p>Блок операторов
EndReduction;,
Здесь и далее Х - степень выполняемой редукции, а блок операторов содержит список
операторов, для которых будет выполняться редукции производительности.</p>
      <p>Редукция по функциональным устройствам в виде мультикадровой программы позволяет
перейти от структурной реализации задачи к структурно-процедурной при недостаточном
аппаратном ресурсе для структурной реализации задачи. Для реализации перехода от
структурной организации вычислений к структурно-процедурной организации, обеспечивающего
эффективное масштабирование параллельной программы, в язык высокого уровня COLAMO
вводится новая директива для описания редукции по функциональным устройствам в виде
мультикадровой программы. Мультикадр – это кортеж вычислительных структур, представленных в
виде подкадров, с описанием функций чтения и записи для каждого из них, переключение
между которыми осуществляется каждый условный такт работы. Важным отличием мультикадра
от кадра является отсутствие необходимости в глобальной синхронизации информационных
потоков данных при смене вычислительных структур.</p>
      <p>Для описания редукции производительности по устройствам в виде мультикадровой
программы введена конструкция следующего вида:
#Reduction of MultiCadr X;</p>
      <p>Блок операторов
EndReduction;,
Редукция производительности по функциональным устройствам в виде многокадровой
программы применяется в случае нехватки вычислительного аппаратного ресурса для
реализации редукция производительности по функциональным устройствам в виде однокадровой
программы и недостаточного количества каналов памяти для реализации редукции
производительности по функциональным устройствам в виде мультикадровой программы.</p>
      <p>Редукция производительности по функциональным устройствам в виде многокадровой
программы заключается в реализации вычислений с помощью неизменяемой структуры LET и
нескольких кадров, в каждом из которых через структуру LET проходит поток данных, а обмен
промежуточными данными осуществляется через дополнительную память. Для описания
редукции по вычислительным устройствам в виде многокадровой программы с использованием
конструкции Let в язык высокого уровня предлагается директива вида:
#Reduction of Let X;</p>
      <p>Блок операторов
EndReduction;.</p>
      <p>Одним из важнейших типов редукции, обеспечивающих возможность
ресурсонезависимого программирования ВСГТ, является редукция производительности по каналам памяти. Для
описания редукции по каналам памяти предлагается использование в языке COLAMO
следующей директивы:
#Reduction of Channel (Type) X;,</p>
      <p>Блок операторов</p>
      <p>EndReduction;,
где ключевое слово «Channel» указывает на выполнение редукции по каналам памяти, а
параметр Type указывает на выбранный способ редукции. Все каналы памяти можно разделить на
входные и выходные каналы, редукция для которых может быть выполнена независимо друг от
друга. Поэтому сокращение каналов памяти можно выполнить тремя способами:
- редукцией входных каналов (задается ключевым словом Input);
- редукцией выходных каналов (задается ключевым словом Output);
- редукцией входных и выходных каналов (задается ключевым словом All).</p>
      <p>Редукция каналов памяти заключается в объединении каналов в один общий канал путем
смешивания данных или путем последовательного объединения данных друг за другом.</p>
      <p>Редукция производительности по разрядности направленна не на сокращение устройств в
вычислительной структуре, а на сокращение разрядности обрабатываемых данных за счет
использования устройств меньшей разрядности, что приводит к сокращению аппаратных затрат
на реализацию вычислительной структуры. При выполнении редукции производительности по
разрядности управление информационными потоками данных осуществляется
мультиплексором, а сами данные подаются в вычислительную структуру со скважностью, значение которой
равно степени выполняемой редукции. Для описания редукции по разрядности на язык
высокого уровня COLAMO предлагается использование конструкции вида: #Reduction of Bit X;
Блок операторов
EndReduction;
Редукция производительности по частоте, в отличие от рассмотренных редукций,
предназначена для замедления работы вычислительных устройств на величину, равную степени
выполняемой редукции, при этом скважность подачи данных в вычислительную структуру
остается неизменной. Как правило, редукция производительности по частоте применяется для
согласования скоростей обработки между редуцированными и нередуцированными фрагментами
информационного графа в структуре прикладной задачи. Для описания редукции
производительности по частоте в язык высокого уровня предлагается конструкция вида:
#Reduction of Frequency X;</p>
      <p>Блок операторов</p>
      <p>EndReduction;,
где Х - степень выполняемой редукции, а блок операторов содержит список операторов, для
которых будут выполняться редукции производительности по разрядности.
4. Заключение</p>
      <p>Для эффективного программирования вычислительных систем гибридного типа
предложено использование языка программирования высокого уровня COLAMO как основы
разрабатываемой технологии ресурсонезависимого программирования ВСГТ. Возможность описания в
едином вычислительном контуре различных форм организации параллельных вычислений в
совокупности с разработанными методами редукции производительности прикладной
программы позволяет обеспечить ресурсонезависимость программирования ВСГТ, т.е.
возможность простой и быстрой адаптации прикладной программы под изменившуюся архитектуру
или конфигурацию ВСГТ. Предложенное расширение языка COLAMO обеспечивает
пользователя набором необходимых средств для быстрой разработки эффективных ресурсонезависимых
масштабируемых параллельных программ в едином языковом пространстве, что снижает
сложность программирования ВСГТ и повышает скорость разработки параллельных прикладных
программ при рациональном использовании узлов ВСГТ с разной архитектурой.
Литература
Programming of hybrid computer systems based on the
performance reduction method*</p>
      <p>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
University1, “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
resourceindependent programming of hybrid computer systems consisted of reconfigurable and
microprocessor computational nodes. Owing to the language COLAMO it is possible to
describe various forms of organization of parallel calculations – from the structural form
typical for reconfigurable computational nodes, then to structural-procedural and
multiprocedural forms, and at last to procedural forms of organization of calculations, used for
microprocessor nodes. Transformations between these various forms of organization of
calculations 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.
* This paper was financially supported in part by the Ministry of Education and Science of the Russian
Federation under Grant № 14.578.21.0006 from 05.06.2014, ID RFMEFI57814X0006</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <surname>Kalyaev</surname>
            <given-names>I.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Levin</surname>
            <given-names>I.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Semernikov</surname>
            <given-names>E.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shmoilov</surname>
            <given-names>V.I.</given-names>
          </string-name>
          <article-title>Rekonfiguriruyemiye multikonveyerniye vichislitelniye struktury. [Reconfigurable multipipeline computing structures] 2nd edition, revised and supplemented</article-title>
          .
          <source>Edited by I.A. Kalyaev. Rostov-on-Don: SSC RAS Publishing</source>
          ,
          <year>2009</year>
          . 344 pp.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Ivanova</surname>
            <given-names>G.S.</given-names>
          </string-name>
          <article-title>Tekhnologiya programmirovaniya [Technology of programming]: Manual</article-title>
          . М.:
          <source>Bauman MSTU Publishing</source>
          ,
          <year>2002</year>
          . 320 pp.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <surname>Kalyaev</surname>
            <given-names>I.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Levin</surname>
            <given-names>I.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dordopulo</surname>
            <given-names>A.I</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Semernikov</surname>
            <given-names>E.A.</given-names>
          </string-name>
          <article-title>Vysokoproizvoditelniye rekonfiguriruyemiye vichislitelniye sistemy novogo pokoleniya. [High-performance reconfigurable computer systems of the next-generation] Nauchnyi servis v seti Internet: ekzaflopsnoye budusheye. Trudy Mezhdunarodnoi superkompjuternoi konferentsii s elementami nauchnoi shkoly dlya molodezhi (Novorossisk, 19 sentyabrya-</article-title>
          24 sentyabrya
          <year>2011</year>
          ).
          <article-title>[Scientific service in the Internet: exaflops future</article-title>
          .
          <source>Proceedings of the International supercomputer conference and youth scientific school (Novorossiisk</source>
          , 19 September-24
          <string-name>
            <surname>September</surname>
          </string-name>
          ,
          <year>2011</year>
          )] М.: MSU Publishing,
          <year>2011</year>
          .
          <fpage>42</fpage>
          -49 pp.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <surname>Kalyaev</surname>
            <given-names>I.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Levin</surname>
            <given-names>I.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dordopulo</surname>
            <given-names>A.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Semernikov</surname>
            <given-names>E.A.</given-names>
          </string-name>
          <article-title>Rekonfiguriruyemiye vichislitelniye sistemy na osnove PLIS semeistva Virtex-6. [Reconfigurable computer systems based on Virtex-6 FPGAs] Parallelniye vichislitelniye tekhnologii 2011</article-title>
          .
          <article-title>Sbornik trudov Mezhdunarodnoi nauchnoi konferentsii. [Parallel computer technologies 2011</article-title>
          . Proceedings of International scientific conference]
          <string-name>
            <surname>Tchelyabinsk-M.:</surname>
          </string-name>
          South-UIral State University Publishing Centre,
          <year>2011</year>
          . - 203-210 pp.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Kalyaev</surname>
            <given-names>I.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Levin</surname>
            <given-names>I.I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dordopulo</surname>
            <given-names>A.I.</given-names>
          </string-name>
          , Slasten L.M.
          <source>Reconfigurable Computer Systems Based on Virtex-6 and Virtex-7 FPGAs. IFAC Proceedings Volumes, Programmable Devices and Embedded Systems</source>
          , Volume №
          <volume>12</volume>
          , part №1,
          <year>2013</year>
          . Рр.
          <volume>210</volume>
          -
          <fpage>214</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Igor</surname>
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Kalyaev</surname>
            ,
            <given-names>Ilya I. Levin</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Alexey I. Dordopulo</given-names>
            ,
            <surname>Liuba</surname>
          </string-name>
          <string-name>
            <given-names>M.</given-names>
            <surname>Slasten</surname>
          </string-name>
          .
          <source>FPGA-based Reconfigurable Computer Systems. Science and Information Conference (SAI), Oct 7-Oct 9</source>
          ,
          <year>2013</year>
          , London, UK. Рр.
          <volume>148</volume>
          -
          <fpage>155</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>