Высокоуровневые модели параллельных вычислений и их библиотеки поддержки времени выполнения.


Высокоуровневые модели параллельных вычислений и их библиотеки поддержки времени выполнения.

Начало проекта – 2011 год. Окончание проекта - 2012 год. Заказчик - Министерство образования и науки.

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

Дополнительно предоставляется возможность непосредственного программирования на языке Си с помощью предоставляемого транслятора на основе открытого компилятора GCC и библиотеки поддержки времени выполнения, с использованием заранее приготовленных двоичных программ для ПЛИС. Описанные исследования проводились с привлечением приложения из современной биологии.

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

  1. Разработана высокоуровневая модель программирования гетерогенной вычислительной системы, которая может использоваться как в парадигме dataflow-программирования (поточное программирование, базовая поддержка которого реализована в разработанном в п.4 трансляторе), так и при программировании либо на языке Си или его расширении (стандарте OpenCL), либо напрямую на языке описания аппаратуры (например, VHDL).
  2. Разработана и реализована низкоуровневая библиотека поддержки времени выполнения для использования на гетерогенном узле вычислительной системы. Для организации вычислений и передачи данных между узлами вычислительной системы используется стандарт MPI. На гетерогенном узле используется библиотека поддержки для стандарта OpenCL и PCI-express.
  3. Разработаны компоненты транслятора GCC, которые позволяют автоматически генерировать код на OpenCL из некоторых циклов программ на языке Си.
  4. Разработан транслятор из подмножества Си в язык Verilog на основе транслятора C-to-Verilog и применен к тестовым приложениям и к участкам разрабатываемого приложения из современной биологии.
  5. Реализовано прикладное приложение из области современной биологии, которое способно работать на гетерогенной вычислительной системе, при этом часть программы, реализующей алгоритм, перенесена для выполнения на ПЛИС.

На четвертом этапе проекта выполнены работы по тестированию и исследовательским испытаниям разработанных компонент и экспериментального образца программного комплекса CLR-PC.


Проект выполнялся в рамках программы "Исследования и разработки по приоритетным направлениям развития научно-технологического комплекса России на 2007-2013 годы".

Исполнитель

Компиляторные технологии

Перейти к списку всех проектов