МЦСТ
НОВОСТИ
О КОМПАНИИ
 Профиль
 Структура
 Вычислительные
технологии
МИКРОПРОЦЕССОРЫ И ВЫЧИСЛИТЕЛЬНЫЕ КОМПЛЕКСЫ
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ «ЭЛЬБРУС»
УРОВЕНЬ ПРОЕКТИРОВАНИЯ
 Разработка аппаратуры
 Оптимизирующие и двоичные компиляторы
   проекты
 Операционные системы
 Моделирование
ОБЕСПЕЧЕНИЕ КАЧЕСТВА
НАУЧНАЯ ДЕЯТЕЛЬНОСТЬ
 Секция архитектуры и схемотехники
 Секция программного обеспечения
 
   последних лет
   текущего года
 диссертации
 патенты
ОБРАЗОВАНИЕ
 сотрудничество с университетами
 базовая кафедра МФТИ
 магистерские дипломы студентов МФТИ
 бакалаврские дипломы студентов МФТИ
НАШИ ПАРТНЕРЫ
ВАКАНСИИ
 архитектура и схемотехника
 системы программирования
 операционные системы
 автоматизация проектирования СБИС
КООРДИНАТЫ
 Схема проезда

 

 

Создание и сопровождение вебсайта: Алгософт

Rambler's Top100 Rambler's Top100



ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ «ЭЛЬБРУС»
Оптимизирующий компилятор
Распараллеливание вычислений

Оптимизирующий компилятор обеспечивает высокую эфективность распараллеливания вычислений. Граф, текст и коды из-под оптимизирующего компилятора для задачи li

Архитектура микропроцессора «Эльбрус» предоставляет большой набор параллельных устройств исполнения и средства управления параллельным запуском операций. Максимальное использование параллелизма архитектуры микропроцессора «Эльбрус» обеспечивается с помощью оптимизирующего компилятора. В компиляторе реализованы самые современные и уникальные методы анализа и распараллеливания программ на уровне отдельных операций, а также на уровне потоков управления.

Возможности компилятора демонстрируются на примере распараллеливания функции sweep из интерпретатора Лиспа. После анализа и преобразования сложной структуры управления и зависимостей между операциями основного цикла функции sweep компилятор выявляет возможный параллелизм, используя для этого представление программы в виде графа. Затем за счет конвейеризации он планирует цикл в 3 широкие команды архитектуры «Эльбрус», позволяя выполнить в среднем свыше 12 операций за один машинный такт и достичь предельного количества слогов в широкой команде, равного 16-ти.

Исходный код функции sweep из интерпретатора Лиспа на языке C

Фрагмент параллельного представления в виде графа в компиляторе для основного цикла функции sweep
(операции представлены узлами, а зависимости – дугами графа).

Параллельный код основного цикла функции sweep. Каждая строка соответствует одной широкой команде, состоящей из слогов-операций, одна из команд достигает предела в 16 слогов. Каждая итерация цикла выполняется за 3 машинных такта, параллелизм достигает 15 операций за один такт

Оптимизирующий компилятор позвояет достигать предельной производительности при использовании параллельных аппаратных ресурсов. Граф, текст и коды из-под оптимизирующего компилятора для задачи ijpeg

Вверху представлен исходный код основного цикла задачи просмотра изображений (ijpeg)

Оптимизирующий компилятор успешно распараллеливает как вещественные, так и целочисленные приложения. Это показано на примере основного цикла целочисленной задачи просмотра изображений ijpeg. После анализа зависимостей на одной итерации и между итерациями цикла компилятор распараллеливает и конвейеризирует цикл, планируя его в 15 широких команд архитектуры «Эльбрус», которые содержат 140 операций

Фрагмент параллельного представления в виде графа в компиляторе для основного цикла задачи ijpeg
(операции представлены узлами, а зависимости – дугами графа)

Параллельный код основного цикла задачи ijpeg. Каждая строка соответствует одной широкой команде, состоящей из слогов-операций, 4 команды достигают предела в 16 слогов.
Каждая итерация цикла выполняет 140 операций за 15 машинных тактов

 
Tel: +7 (495) 363-9665 | Fax: +7 (495) 363-9599 | E-mail: mcst@mcst.ru