<!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>Современные высокопроизводительные вычислительные системы с реконфигурируемой архитектурой на основе ПЛИС Xilinx Virtex-7 и Virtex UltraScale</article-title>
      </title-group>
      <pub-date>
        <year>2015</year>
      </pub-date>
      <fpage>435</fpage>
      <lpage>447</lpage>
      <abstract>
        <p>В статье рассматриваются архитектура и сравнительные технические характеристики реконфигурируемых вычислительных систем (РВС) на основе программируемых логических интегральных схем (ПЛИС) семейства Xilinx Virtex-7 и Virtex UltraScale. Представлена архитектура и компоновка РВС нового поколения с жидкостным охлаждением, приводятся результаты расчетов и макетирования основных технических решений, которые позволяют достичь производительности 1 Пфлопс в стандартном вычислительном шкафу высотой 47U при потребляемой мощности 150 кВт, обеспечивая, тем самым, существенное преимущество по таким технико-экономическим параметрам, как реальная и удельная производительность, энергоэффективность, массогабаритные характеристики и другим по сравнению с аналогичными системами. Рассматриваются технологии решения прикладных задач с помощью комплекса средств разработки прикладного программного обеспечения.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>ООО «Научно-исследовательский центр супер-ЭВМ и нейрокомпьютеров»1, Южный
научный центр Российской академии наук2, Научно-исследовательский институт
многопроцессорных вычислительных систем Южного федерального университета3
1. Введение
тельных систем, состоящих из нескольких вычислительных шкафов, размещаемых в
специально оборудованном машинном зале.</p>
      <p>Реконфигурируемые вычислительные системы, содержащие большие вычислительные
поля ПЛИС, находят применение для решения вычислительно трудоемких задач в различных
областях науки и техники, поскольку обладают рядом существенных преимуществ по
сравнению с многопроцессорными вычислительными системами кластерной архитектуры: высокими
реальной и удельной производительностями, высокой энергоэффективностью и др.
2. РВС на основе ПЛИС Xilinx Virtex-7
2.1 Реконфигурируемый вычислительный блок «Калеано»</p>
      <p>На основе ПЛИС Xilinx седьмой серии разработан реконфигурируемый вычислительный
блок (РВБ) «Калеано» в конструктивном исполнении высотой 1U, предназначенный для
обработки данных, поступающих по каналу Gigabit Ethernet без поддержки IP-протоколов.</p>
      <p>На рис. 1-а представлена фотография РВБ «Калеано», на рис. 1-б - блок со снятой верхней
крышкой и печатная плата.</p>
      <p>а)</p>
      <p>б)
Рис. 1. Фотографии РВБ «Калеано» и его составных частей
РВБ «Калеано» выпускается в двух модификациях: «Калеано-K» на ПЛИС Kintex-7
XC7K160T и «Калеано-V» на ПЛИС Virtex-7 XC7VX485Т. Технические характеристики
РВБ «Калеано» для этих модификаций приведены в таблице 1.
Таблица 1. Технические характеристики РВБ «Калеано» для модификаций «Калеано-K» и «Калеано-V»
Технический параметр
Калеано-К
Калеано-V
Число и тип ПЛИС
Общее число эквивалентных вентилей в ПЛИС вычислительного
поля, млн.
Объем оперативной памяти, Гб
Производительность вычислительного модуля Pi32/Pi64 , Гфлопс
Частота работы, МГц
Скорость обмена данными по каналу Ethernet, Гбит/с
Частота передачи данных по LVDS между ПЛИС
вычислительного поля, МГц
Потребляемая мощность, Вт
Габаритные размеры, мм
Стоимость, млн. руб.
150/75
6
96
3
330</p>
      <p>1
900
200
1,3
288
6
3
1
440/220
400
1200
320
2,0
480х270х70 480х270х70
РВБ «Калеано» содержит вычислительное поле из шести ПЛИС, встроенную
управляющую ЭВМ, систему питания, систему управления, систему охлаждения и другие подсистемы.
Все ПЛИС вычислительного поля соединены между собой по принципу близкодействия с
помощью LVDS-каналов, ко всем ПЛИС РВБ подключены модули динамической памяти
емкостью 256 Мбайт каждый.
Для управления и конфигурирования вычислительного поля РВБ используется ЭВМ
семейства COM-Express фирмы Kontron, установленная непосредственно на плате
вычислительного модуля. С ее помощью подключается периферийное оборудование, осуществляются
подготовка и отладка параллельной программы для решения вычислительно трудоемких задач,
формируются файлы исходных данных, которые вместе с исполняемым модулем задачи через
шину PCI-Express загружаются в вычислительное поле по LVDS-каналу. После выполнения
задачи результаты решения пересылаются в процессорный модуль COM-Express.</p>
      <p>Возможные области применения РВБ «Калеано»: символьная обработка, математическая
физика, моделирование и вычислительный эксперимент, цифровая обработка сигналов,
линейная алгебра и т.п.
2.2 Реконфигурируемый вычислительный модуль «Плеяда»</p>
      <p>По государственному контракту №14.527.12.0004 от 03.10.2011 г. в НИИ МВС ЮФУ была
разработана реконфигурируемая вычислительная система РВС-7 на основе ПЛИС Virtex-7,
которая содержит вычислительное поле из 576 микросхем ПЛИС Virtex-7 XC7V585T-FFG1761
объемом 58 миллионов эквивалентных вентилей каждая, конструктивно объединенных в один
вычислительный шкаф высотой 47U с пиковой производительностью 1015 операций с
фиксированной запятой в секунду.</p>
      <p>Основным структурным компонентом РВС-7, предназначенным для установки в
стандартную 19" вычислительную стойку, является вычислительный модуль (ВМ) 24V7-750 (ВМ
«Плеяда»), в состав которого входят: четыре платы вычислительного модуля (ПВМ) 6V7-180,
представленные на рис. 2; управляющий модуль УМ-7; подсистема питания; подсистема
охлаждения и другие подсистемы. Фотография ВМ 24V7-750 представлена на рис. 2.
а)
б)
Рис. 2. Фотография вычислительного модуля (ВМ) 24V7-750 (а – платы ВМ «Плеяда», б – ВМ
«Плеяда» со снятой и установленной верхней крышкой)
В состав каждой платы ВМ 24V7-750 входят: вычислительное поле, состоящее из шести
ПЛИС XC7V585T-1FFG1761 семейства Virtex-7, соединенных последовательно с
возможностью передачи данных по 144 дифференциальным линиям LVDS-интерфейса на частоте
800 МГц, и распределённая память общим объемом 12 Гбайт (на каждой плате установлены 12
микросхем динамической памяти MT47H128M16HR-25E с организацией 128 М*16 и частотой
записи/чтения до 400 МГц.
Производительность одной платы составляет 645,9 ГФлопс при обработке 32-разрядных
данных с плавающей запятой, а производительность ВМ 24V7-750 составляет 2,58 Тфлопс при
обработке 32-разрядных данных с плавающей запятой.</p>
      <p>В «НИЦ СЭ и НК» на основе ПЛИС Virtex-7 разработан 19" вычислительный модуль
«Тайгета» высотой 2U, предназначенный для создания высокопроизводительных многостоечных
РВС. ВМ «Тайгета», представленный на рис. 3-а, содержит четыре платы 8V7-200, встроенную
управляющую ЭВМ, систему питания, систему управления, систему охлаждения и другие
подсистемы. Платы в составе ВМ «Тайгета» соединяются LVDS-каналами, работающими на
частотах до 1000 МГц. Внешний вид платы 8V7-200 показан на рис. 3-б.
Плата вычислительного модуля (ПВМ) 8V7-200 представляет собой 20-слойную печатную
плату с двухсторонним монтажом элементов, на которой располагаются восемь ПЛИС типа
XC7VX485T-1FFG1761, содержащих по 48,5 миллионов эквивалентных вентилей, 16
микросхем распределенной памяти SDRAM типа DDR2 общим объемом 2 Гбайт, интерфейсы LVDS
и Ethernet и другие компоненты.</p>
      <p>Производительность одной ПВМ 8V7-200 составляет 667 Гфлопс при обработке
32разрядных данных с плавающей запятой, а производительность ВМ «Тайгета» составляет
соответственно 2,66 Тфлопс.
2.4 РВС на основе ВМ «Плеяда» и ВМ «Тайгета»</p>
      <p>На основе рассмотренного выше ВМ «Плеяда» в 2013 году была создана
реконфигурируемая вычислительная система РВС-7 (рис. 4-а), содержащая 24 вычислительных модуля и
имеющая возможность наращивания системы до 36 вычислительных модулей.
Производительность РВС-7 при комплектации от 24 до 36 ВМ 24V7-750 составляет от 62 до 93 Тфлопс при
обработке 32-разрядных данных с плавающей запятой и 19,4÷29,4 Тфлопс при обработке
64разрядных данных с плавающей запятой соответственно. Областями применения РВС-7 и
вычислительных комплексов на ее основе являются решение задач цифровой обработки сигналов
и многоканальная цифровая фильтрация.</p>
      <p>На основе ВМ «Тайгета» была создана РВС, внешний вид которой представлен на рис. 4-б.
Производительность одной стойки РВС при комплектации 18 ВМ «Тайгета» составляет
48 Тфлопс при обработке данных с плавающей запятой одинарной точности и 23 Тфлопс при
обработке 64-разрядных данных с плавающей запятой.
Высокопроизводительные РВС на основе ВМ «Тайгета» ориентированы на решение
вычислительно трудоемких задач науки и промышленности, задач синтеза лекарств и задач
символьной обработки и обеспечивают при этом существенное конкурентное преимущество по
большинству технико-экономических параметров: удельной производительности,
энергоэффективности и другим по сравнению с суперЭВМ традиционной кластерной архитектуры.
3. Перспективные реконфигурируемые системы на основе ПЛИС
Xilinx UltraScale</p>
      <p>
        Дальнейшим развитием использованной при построении РВС на основе ПЛИС Xilinx
Virtex-7 открытой масштабируемой архитектуры [
        <xref ref-type="bibr" rid="ref1">7</xref>
        ] является использование в новых
разрабатываемых изделиях перспективной элементной базы – ПЛИС Xilinx нового поколения
семейства UltraScale, выполненных по технологии 20 нм и обладающих сниженным
энергопотреблением и повышенным быстродействием по сравнению с ПЛИС седьмого семейства.
3.1 Реконфигурируемый вычислительный блок на основе ПЛИС UltraScale
Разрабатываемый РВБ «Калеано-U» будет выполнен также в конструктиве высотой 1U, но
в отличие от своих предшественников «Калеано-К» и «Калеано-V», будет содержать четыре
ПЛИС Xilinx UltraScale XCVU095 объемом 95 млн. эквивалентных вентилей каждая, что
позволит создать вычислительное поле общим объемом 380 млн. эквивалентных вентилей.
Структурная схема РВБ «Калеано-U» и эскиз компоновки платы показаны на рис. 5.
На рис. 5 обозначены:
- DD1-DD4 – вычислительные ПЛИС Xilinx UltraScale XCVU095;
- DD5 – ПЛИС контроллера ПВМ Xilinx UltraScale XCKU040;
- A1-A9 – модули распределенной памяти;
- X2-X4, X7-X12 – разъемы различных типов интерфейсов.
      </p>
    </sec>
    <sec id="sec-2">
      <title>RRAAMM</title>
      <p>Xilinx
UltraScale</p>
      <p>Xilinx
UltraScale</p>
    </sec>
    <sec id="sec-3">
      <title>RRAAMM</title>
    </sec>
    <sec id="sec-4">
      <title>RRAAMM</title>
      <p>Xilinx
UltraScale</p>
      <p>Xilinx
UltraScale</p>
    </sec>
    <sec id="sec-5">
      <title>RRAAMM</title>
    </sec>
    <sec id="sec-6">
      <title>RRAAMM</title>
      <p>КБМ
МЗУ
Intel
CPU
SATA</p>
      <p>VGA
DP
Eth
USB</p>
      <p>PCI-E
LVDS
SSTL
По сравнению с предыдущей версией РВБ «Калеано-V» производительность РВБ
«Калеано-U» возрастет в 1,7–1,8 раза при увеличении потребляемой мощности не более чем в 1,3 раза.
3.2 РВС с жидкостным охлаждением на основе ПЛИС UltraScale</p>
      <p>Использование воздушных систем охлаждения современных высокопроизводительных
вычислительных систем и построенных на их основе суперкомпьютеров, в том числе
реконфигурируемых, практически достигло своего предела. Большинство разработчиков вычислительной
техники в качестве перспективы для решения проблем охлаждения проектируемых
вычислительных комплексов ориентируются на применение жидкостного охлаждения. Для
вычислительных модулей РВС, проектируемых на основе перспективных семейств ПЛИС,
целесообразно использовать жидкостное охлаждение, в частности, непосредственное погружение плат
вычислительных модулей в жидкостный хладагент на основе минерального масла.</p>
      <p>В «НИЦ СЭ и НК» активно развивается направление по созданию РВС нового поколения
на основе жидкостного охлаждения. Разработаны новые конструкции печатных плат и
вычислительных модулей, характеризующиеся высокой плотностью компоновки. В частности, в
настоящее время ведется разработка перспективных вычислительных модулей «Скат-8» для
многостоечных РВС сверхвысокой производительности.</p>
      <p>Плата перспективного вычислительного модуля содержит 8 ПЛИС семейства Virtex
UltraScale логической емкостью не менее 100 млн. эквивалентных вентилей каждая.
Вычислительный модуль состоит из двух секций: в первой секции размещается 16 плат
вычислительных модулей с потребляемой мощностью до 800 Вт каждая, причем все платы
полностью погружены в электрически нейтральный жидкостный хладагент; во второй секции
располагаются насосная группа и теплообменник, обеспечивающие проток и охлаждение
хладагента. Эскиз ВМ с высотой конструктива 3U показан на рис. 6а.</p>
      <p>Согласно проведенным расчетам, использование жидкостного охлаждения и построение
вычислительных систем на основе ВМ «Скат-8» обеспечивает сверхпетафлопсную
производительность одного вычислительного шкафа РВС. Вычислительная 19” стойка суперкомпьютера,
эскиз которой представлен на рис. 6-б, может содержать до 12 ВМ «Скат-8» с жидкостным
охлаждением. Производительность и потребляемая мощность перспективной РВС приведены в
таблице 2.
Рис. 6. Эскиз вычислительной системы на основе жидкостного охлаждения (а - эскиз ВМ «Скат-8»,
б - эскиз вычислительной стойки на основе ВМ «Скат-8»)
Таблица 2. Производительность и потребляемая мощность перспективной РВС на основе ПЛИС</p>
      <p>Xilinx UltraScale
Характеристика
Производительность ВМ «Скат-8»
Производительность вычислительной стойки на основе ВМ «Скат-8»
Потребляемая мощность ВМ «Скат-8»
Потребляемая мощность вычислительной стойки на основе ВМ «Скат-8»
Значение
105 Тфлопс
1 Пфлопс
13 кВт
150 кВт
На основе производимых в «НИЦ СЭ и НК» реконфигурируемых систем можно
проследить темпы роста производительности РВС при переходе от семейства к семейству ПЛИС.</p>
      <p>Таблица 3. Производительность реконфигурируемых суперЭВМ
Изделие, год выпуска, семейство</p>
      <p>ПЛИС
«Орион-5», 2009 год, Virtex-5
«Ригель», 2010/2012 год, Virtex-6
«Тайгета», 2012/2013 год, Virtex-7
«Скат», 2015/2016 год, UltraScale
Производитель</p>
      <p>ность платы
Pi32/Pi64, Гфлопс
250/85
400/125
900/300
7250/2500</p>
      <p>Производительность ВМ</p>
      <p>Pi32/Pi64,
Гфлопс
1000/340
1600/500
3600/1200
Производительность
шкафа 47U</p>
      <p>Pi64,
Тфлопс
На основе представленного конструктивного исполнения в 2015-2016 годах будут созданы
сверхпроизводительные вычислительные комплексы, в которых обеспечивается эффективное
охлаждение вычислительных ПЛИС как семейства UltraScale, так и следующего
прогнозируемого семейства ПЛИС.
4. Программное обеспечение РВС</p>
      <p>
        В настоящее время существует множество различных систем проектирования,
позволяющих создавать структурные решения прикладных задач на ПЛИС. Наиболее популярными как в
качестве отдельного средства разработки, так и в составе комплексов, являются
программысинтезаторы, предоставляемые фирмами-изготовителями ПЛИС: ISE и Vivado фирмы Xilinx
[
        <xref ref-type="bibr" rid="ref2">8</xref>
        ], Quartus II фирмы Altera [
        <xref ref-type="bibr" rid="ref3">9</xref>
        ] и Actel Libero IDE фирмы Actel [
        <xref ref-type="bibr" rid="ref4">10</xref>
        ]. Данные средства, помимо
непосредственно среды проектирования цифровых устройств, включают в себя ряд
вспомогательных утилит: анализаторы временных характеристик, редакторы размещения, модули
программирования ПЛИС, системы моделирования цифровых устройств и др. Благодаря
широкому инструментарию эти системы проектирования обеспечивают полный цикл разработки
цифровых устройств в пределах одного кристалла ПЛИС: создание исходного описания проекта,
синтез, моделирование, размещение, трассировку, конфигурирование кристалла.
      </p>
      <p>
        В связи с постоянным ростом ёмкости кристаллов ПЛИС проектирование решений
прикладных задач в кристаллах ПЛИС с помощью языков описания аппаратуры (VHDL, AHDL,
Verilog и др.), а также разработка цифровых устройств в графических редакторах становится
всё более трудоёмкой. Поэтому в настоящее время ведущие производители ПЛИС и
реконфигурируемых вычислителей ориентируются на языки высокого уровня. Так, в новой среде
разработки Vivado фирмы Xilinx добавлен новый инструмент проектирования Vivado HLS [
        <xref ref-type="bibr" rid="ref5">11</xref>
        ],
основанный на языке высокого уровня, а компания Altera для своих ПЛИС предлагает
инструментарий разработки Altera SDK [12] для нового стандарта параллельного программирования
гетерогенных систем OpenCL. В данных решениях используются трансляторы С-подобных
языков, генерирующие из программы на аналоге языка программирования высокого уровня С
код на языках описания аппаратуры на уровне регистровых передач (RTL-уровень,
трансляторы C-to-RTL).
      </p>
      <p>Несмотря на схожесть синтаксисов данных С-подобных языков с самим языком С,
подобный подход вовсе не означает, что исходный код на языке С, написанный под персональный
компьютер или кластерную вычислительную систему, будет понят трансляторами C-to-RTL.
Выбор языка С в качестве основы обусловлен широкой распространённостью данного языка,
что существенно упрощает освоение новых инструментариев разработки решений прикладных
задач для ПЛИС.</p>
      <p>Также при использовании трансляторов C-to-RTL весь код программы либо явно
указанные процедуры транслируются в RTL-описания отдельных кристаллов ПЛИС. В подобных
системах разработки отсутствует инструментарий, обеспечивающий автоматические разбиения
параллельной программы на множество связанных кристаллов ПЛИС.</p>
      <p>В Vivado HLS проект разрабатывается в рамках одного кристалла ПЛИС, и если
программисту недостаточно аппаратного ресурса кристалла, то он вынужден самостоятельно
распределять вычисления между несколькими проектами для каждой ПЛИС и синхронизировать
управляющие и информационные потоки между ними.</p>
      <p>Стандарт OpenCL используется компанией Nallatech (разработчик реконфигурируемых
вычислителей) и подразумевает использование нескольких ПЛИС в одном проекте.
Программирование решений в кристаллах ПЛИС в данном случае осуществляется с помощью вызова
функций из библиотек инструментария разработки Altera SDK, и в каждом задействованном
кристалле ПЛИС выполняются вычисления, описанные отдельным участком кода. Таким
образом, программа, написанная в стандарте OpenCL, представляет собой основной код,
написанный под традиционные процессоры, и отдельные участки кода, написанные под ПЛИС,
задействованные как сопроцессоры. В данном случае задача синхронизации данных также
возлагается на самого программиста.</p>
      <p>Ещё одним известным средством программирования ПЛИС является комплекс,
разработанный компанией Mitrionics, состоящий из виртуального процессора Mitrion Virtual Processor
(MVP), программирование которого осуществляется на языке высокого уровня Mitrion-C, и
библиотеки функций для построения хост-программ MithalAPI, входящих в пакет разработки
Mitrion SDK [13]. Разрабатываемая на языке Mitrion-C программа должна быть полностью
реализована на одном виртуальном процессоре MVP, что не позволяет программировать
многокристальные РВС, и следовательно, существенно снижает эффективность использования
программного комплекса компании Mitrionics. Для программирования многокристальных РВС со
связями между ПЛИС программисту необходимо самому реализовать интерфейс (протокол)
обмена данными между ПЛИС и решить вопросы, связанные с синхронизацией потоков
данных. В этом случае программа для РВС вырождается в программу для кластера (множество
процессоров MVP), реализованного на ПЛИС, что существенно снижает эффективность
реализации задач на многокристальных РВС.
5. Язык COLAMO и комплекс средств программирования
многокристальных РВС</p>
      <p>Альтернативный подход к программированию РВС предлагается в НИИ МВС ЮФУ,
занимающемся разработкой многокристальных реконфигурируемых вычислительных систем
различных архитектуры и конфигурации уже более 15 лет.</p>
      <p>Опыт решения различных классов задач в НИИ МВС ЮФУ показал, что для эффективного
решения современных трудоемких задач программисту необходимы средства
программирования, обеспечивающие:
- программирование на языке высокого уровня;
- поддержку многокристального программирования;
- обеспечение высокой частоты работы ПЛИС;
- высокую плотность заполнения кристалла ПЛИС;
- поддержку конвейерной и макроконвейерной организации вычислений.</p>
      <p>В НИИ МВС ЮФУ разработан и широко используется программный комплекс, состоящий
из:</p>
      <p>- транслятора языка программирования COLAMO, осуществляющего трансляцию
исходного кода на COLAMO в информационный граф параллельной прикладной программы;
- синтезатора масштабируемых схемотехнических решений на уровне логических ячеек
ПЛИС Fire!Constructor, осуществляющего отображение полученного от транслятора языка
программирования COLAMO информационного графа на архитектуру РВС, размещение
отображенного решения по кристаллам ПЛИС и автоматическую синхронизацию фрагментов
информационного графа в разных кристаллах ПЛИС;</p>
      <p>- библиотеки IP-ядер, соответствующих операторам языка COLAMO
(функциональнозаконченных структурно-реализованных аппаратных устройств) для различных предметных
областей, и интерфейсов для согласования скорости обработки информации и связи в единую
вычислительную структуру;
- средств отладки и программ доступа и мониторинга состояния РВС.</p>
      <p>
        Язык высокого уровня COLAMO предназначен для описания реализации параллельного
алгоритма и создания на основе принципов структурно-процедурной организации вычислений
[
        <xref ref-type="bibr" rid="ref6 ref7">1, 14, 15</xref>
        ] в архитектуре РВС специализированной вычислительной структуры, которая
предполагает последовательную смену структурно (аппаратно) реализованных фрагментов
информационного графа задачи, каждый из которых является вычислительным конвейером потока
операндов. Таким образом, приложение (прикладная задача) для РВС состоит из структурной
составляющей, представленной в виде аппаратно реализованных фрагментов вычислений, и
процедурной составляющей, представляющей собой единую для всех структурных фрагментов
управляющую программу последовательной смены вычислительных структур и организации
потоков данных. Для представления такой организации вычислений в языке используется
понятие «кадр». Кадром является программно-неделимый компонент, представляющий собой
совокупность операторов, которые реализуются в виде арифметико-логических команд и команд
чтения/записи, выполняемых на различных функциональных устройствах, соединенных между
собой в соответствии с информационной структурой алгоритма.
      </p>
      <p>В языке COLAMO отсутствуют явные формы описания параллелизма, а распараллеливание
достигается с помощью объявления типов доступа к переменным и индексации элементов
массивов, что характерно для языков потока данных. Для обращения к данным используется два
основных метода доступа: параллельный доступ (задаваемый типом Vector) и
последовательный доступ (задаваемый типом Stream). Степень параллелизма определяется по минимальному
значению параметра распараллеливания. Для типа доступа Stream степень параллелизма равна
1, а для типа доступа Vector определяется наименьшим значением векторной составляющей
каждого массива, участвующего в вычислениях. Для параллельного типа доступа возможна
одновременная обработка всех размерностей массивов, заданных типом Vector, при этом
повышается аппаратный ресурс на обработку, но снижается время обработки.</p>
      <p>Многомерные массивы данных могут иметь множество измерений, каждое из которых
может иметь последовательный или параллельный тип доступа, задаваемый ключевым словом
Stream или Vector соответственно. Изменение типа доступа позволяет достаточно просто
управлять как степенью распараллеливания вычислений на уровне описания структур данных,
так и скоростью обработки и занимаемым ресурсом, что позволяет программисту описывать
различные виды параллелизма в достаточно сжатом виде.</p>
      <p>Помимо типа доступа, для переменной в языке COLAMO определены также и типы ее
хранения: мемориальный (Mem), регистровый (Reg) и коммутационный (Com).</p>
      <p>Мемориальной переменной называется величина, хранящаяся в ячейке распределенной
памяти и, следовательно, сохраняющая свое значение до очередного переприсваивания. Для
мемориальной переменной возможно одновременное выполнение только одного процесса.
Поэтому в семантике языка COLAMO для мемориальной переменной в теле кадра действуют
правило однократного присваивания и правило единственной подстановки. Правило однократного
присваивания указывает на то, что мемориальная переменная в кадре изменяет свое значение
только один раз. Правило единственной подстановки определяет, что переменная в кадре
может использоваться только для одного процесса чтения или записи.</p>
      <p>Для описания связей между элементами информационного графа задачи в языке COLAMO
предназначена коммутационная переменная. Поскольку коммутационная переменная
описывает информационные связи, то она не требует никакого вычислительного аппаратного ресурса
для своей реализации. Доступ к значению коммутационной переменной после выполнения
кадра невозможен. Коммутационная переменная необходима транслятору для указания
информационных зависимостей при построении вычислительной структуры задачи. На
коммутационную переменную, как и на мемориальную переменную, действует правило однократного
присваивания, но для нее не выполняется правило единственной подстановки. Использование
коммутационных переменных позволяет легко разветвлять и дублировать потоки данных, но не
позволяет реализовать рекурсию.</p>
      <p>Для организации рекурсии в языке COLAMO используется регистровая переменная,
которая представляет собой регистр на аппаратном уровне и используется для хранения
промежуточных данных, полученных в процессе вычислений. Единственным ограничением для
регистровой переменной в теле кадра является правило однократного присваивания.</p>
      <p>
        Трансляция программы на языке высокого уровня COLAMO состоит в создании
схемотехнической конфигурации вычислительной системы (структурной составляющей) и
параллельной программы, управляющей потоками данных (потоковой и процедурной составляющих) [
        <xref ref-type="bibr" rid="ref6 ref7">1,
14, 15</xref>
        ]. Создание структурной составляющей заключается в построении вычислительного
графа, соответствующего описанным на COLAMO информационным зависимостям между
результатами вычислений. При этом для каждой используемой в тексте программы операции
подставляется специализированный вычислительный блок в зависимости от типа доступа к
переменным, типа данных, их разрядности и т.д. Синтезированный информационный граф задачи
передается в синтезатор Fire!Constructor для отображения на аппаратный ресурс
многокристальной РВС [
        <xref ref-type="bibr" rid="ref8">16</xref>
        ].
      </p>
      <p>Задача автоматического отображения параллельной программы на аппаратный ресурс
многокристальной РВС состоит из трех подзадач: разбиения информационного графа на
непересекающиеся подграфы, размещения сформированных подграфов в ПЛИС РВС и трассировки
внешних связей размещённых подграфов в системе коммутаций РВС.</p>
      <p>Результатом работы синтезатора Fire!Constructor являются файлы VHDL-описаний и
файлы временных и топографических ограничений (User Constraints Files). Файлы VHDL
описывают структурные реализации фрагментов параллельной программы. На основании этих файлов и
библиотеки схемотехнических элементов формируются проекты для синтезатора ISE под
каждую отдельную ПЛИС. Далее с помощью синтезатора ISE формируются конфигурационные
файлы ПЛИС. Полученные конфигурационные файлы загружаются в РВС.</p>
      <p>Программа на языке COLAMO разрабатывается в едином проекте и может быть
транслирована на любую РВС, описание которой и соответствующие библиотеки присутствуют в
комплексе программирования РВС. В отличие от других существующих систем разработки
решений прикладных задач на ПЛИС пользователю не требуется в тексте программы указывать,
какие фрагменты программы в каких ПЛИС будут выполняться. Синтезатор Fire!Constructor
обеспечивает автоматическое разбиение вычислительной структуры программы на языке
COLAMO на несколько проектов в синтезаторе Xilinx ISE, при этом обеспечивается
синхронизация информационных потоков как внутри кристалла ПЛИС, так и между ними.
5. Заключение</p>
      <p>ПЛИС как элементная база реконфигурируемых суперЭВМ, согласно данным таблицы 3,
обеспечивают устойчивый, близкий к линейному, рост производительности РВС, открывая
новые перспективы по созданию суперкомпьютеров петафлопсной производительности. Можно
утверждать, что конструктивные решения, положенные в основу перспективных
вычислительных модулей на основе ПЛИС Xilinx Virtex UltraScale, позволят сосредоточить в пределах
одной вычислительной стойки высотой 47U мощный вычислительный ресурс и обеспечить
удельную производительность РВС на основе ПЛИС Xilinx Virtex UltraScale на уровне лучших
мировых показателей для суперЭВМ с кластерной архитектурой. Это позволяет рассматривать
РВС на основе ПЛИС Xilinx Virtex UltraScale как основу для создания
высокопроизводительных вычислительных комплексов нового поколения, обеспечивающих высокую эффективность
вычислений и близкий к линейному рост производительности при наращивании
вычислительного ресурса.
Литература
2. http://www.nallatech.com/
3. http://picocomputing.com/
4. http://www.conveycomputer.com
5. http://www.maxeler.com/
6. http://www.srccomp.com/
12. http://www.altera.com/literature/lit-opencl-sdk.jsp
13. http://www.mitrionics.com/
Volumes (ISSN 14746670), Programmable Devices and Embedded Systems, Volume №12, part
№1, 2013, рр. 204-209.
Modern high-performance reconfigurable computer systems
based on Xilinx Virtex-7 and Virtex UltraScale FPGAs
Ilya Levin, Alexey Dordopulo, I. Kalyaev, Yu. Doronchenko and M. Raskladkin
Keywords: Field programmable gate array, Reconfigurable computer systems, FPGA
The paper covers architectures and comparison characteristics of reconfigurable computer
systems (RCS) based on field programmable gate arrays (FPGAs) of the Xilinx Virtex-7
family and technologies of task solving by means of software development tools. In the paper
we also consider architecture and assembly of next-generation RCS with a liquid cooling
system and give results of calculations and prototyping of principal technical solutions which
provide the performance of 1 PFlops for a standard computational 47U rack with the power of
150 kWatt. This is promising approach because of RCS with a liquid cooling system have a
considerable advantage for lot of engineering and economical parameters such as real and
specific performance, power efficiency, mass and dimension characteristics, etc., in
comparison with similar systems.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          7.
          <string-name>
            <surname>Левин</surname>
            <given-names>И</given-names>
          </string-name>
          .И.
          <article-title>Реконфигурируемые вычислительные системы с открытой масштабируемой архитектурой // Труды Пятой Международной конференции «Параллельные вычисления и задачи управления» PACO'</article-title>
          <year>2010</year>
          .
          <article-title>- М.: Учреждение Российской академии наук Институт проблем управления им</article-title>
          .
          <source>В.А</source>
          .
          <string-name>
            <surname>Трапезникова</surname>
            <given-names>РАН</given-names>
          </string-name>
          ,
          <year>2010</year>
          . -
          <fpage>С</fpage>
          .
          <fpage>83</fpage>
          -
          <lpage>95</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          8.
          <string-name>
            <surname>Зотов</surname>
            <given-names>В</given-names>
          </string-name>
          .Ю.
          <article-title>Проектирование цифровых устройств на основе ПЛИС фирмы XILINX в САПР WebPACK ISE</article-title>
          [Текст] М.:
          <string-name>
            <surname>Горячая</surname>
          </string-name>
          линия-Телеком.
          <year>2003</year>
          -
          <volume>624</volume>
          с.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          9.
          <source>Quartus II Handbook Version 10.1 Volume 1: Design and Synthesis</source>
          .
          <source>Altera Corporation</source>
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          10.
          <string-name>
            <surname>Libero</surname>
            <given-names>IDE</given-names>
          </string-name>
          v9.
          <article-title>1 User's Guide</article-title>
          .
          <source>Actel Corporation</source>
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          11.
          <article-title>Проектирование для ПЛИС Xilinx с применением языков высокого уровня в среде Vivado HLS</article-title>
          .
          <article-title>Компоненты и технологии</article-title>
          .
          <source>2013 г. №12.</source>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          14.
          <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 (ISSN 14746670)</source>
          ,
          <source>Programmable Devices and Embedded Systems</source>
          , Volume №
          <volume>12</volume>
          , part №1,
          <year>2013</year>
          , рр.
          <fpage>210</fpage>
          -
          <lpage>214</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          15.
          <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)</source>
          <year>2013</year>
          , Oct 7,
          <fpage>2013</fpage>
          - Oct 9,
          <year>2013</year>
          , London, UK, рр.
          <fpage>148</fpage>
          -
          <lpage>155</lpage>
          ;
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          16.
          <string-name>
            <given-names>V.A.</given-names>
            <surname>Gudkov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.A.</given-names>
            <surname>Gulenok</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.B.</given-names>
            <surname>Kovalenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.M.</given-names>
            <surname>Slasten</surname>
          </string-name>
          <article-title>. Multi-level Programming of FPGAbased Computer Systems with Reconfigurable Macroobject Architecture /</article-title>
          / IFAC Proceedings
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>