77373

Язык программирования RiDE.L

Научная статья

Информатика, кибернетика и программирование

Традиционно используемые в HPC языки с архитектурой классических компиляторов: C, C++, FORTRAN, Pascal – не позволяют справляться с этой сложностью настолько хорошо, насколько позволяют более поздние языки: Haskell, JavaScript, Oz, Ruby. Но программы, написанные на таких языках недостаточно эффективны во время исполнения

Русский

2015-02-02

18 KB

1 чел.

Язык программирования RiDE.L

М.О. Бахтерев, В.В. Косенко

ИММ УрО РАН, УрГУ, Екатеринбург

Разработка ПО, используемого для высокопроизводительных вычислений (HPC), со временем становится всё сложнее вместе с усложнением применяемых в больших расчётах аппаратных архитектур,  структур данных и алгоритмов, математических моделей.

 Традиционно используемые в HPC языки с архитектурой классических компиляторов: C, C++, FORTRAN, Pascal –  не позволяют справляться с этой сложностью настолько хорошо, насколько позволяют более поздние языки: Haskell, JavaScript, Oz, Ruby. Но программы, написанные на таких языках недостаточно эффективны во время исполнения. Лучший в этом Haskell GHC даже с использованием направленных на оптимизацию, нарушающих стройные синтаксис и семантику этого языка конструкций не позволяет получать программы, сравнимые с полученными при помощи C++ по скорости исполнения и по эффективности использования памяти. Известно, что Haskell GHC проигрывает по этим параметрам C++ в более чем 2 раза на программах, вычисляющих одинаковые функции.

Попытки расширять классические компиляторы инструментами из новых языков программирования предпринимаются: C++0x, C#, Java. Но они приводят к чрезмерному усложнению и без того нетривиальных синтаксиса и семантики расширяемых языков, что существенно затрудняет работу как пользователям этих инструментов, так и их создателям.

В связи с этим актуальной становится разработка языка, обладающего набором характеристик, обеспечивающих как эффективное программирование, так и эффективное исполнение полученных программ. Требования к языку формулировались в ходе работ над ядром операционной системы, но выполнение этих требований может привести к средству полезному и в разработке ПО для HPC. Нужным представляется сочетание следующих качеств:

1. Базовые синтаксис и семантика должны быть максимально простыми и однородными.

2. Язык  должен позволять составлять программы в императивной парадигме.

3. В языке должны быть возможны работа с замыканиями, перегрузка и спецификация операторов.

При разработке как ядра ОС, так и ПО для HPC это позволяет удобно (опыт показывает: удобнее чем шаблоны (template) в C++) описывать алгебраические типы данных. Также в ПО для HPC при помощи замыканий можно обеспечивать специализацию кода во время исполнения, что полезно для достижения максимальной производительности. При этом обеспечивать её с сохранением контроля со стороны программиста над процессом специализации, как это позволяет `C, а не прозрачными методами, возможно, не соответствующим особенностям решаемой задачи, которые используются в виртуальных машинах .Net и Java.

4. В языке должны присутствовать механизмы для описания машинно-зависимых типов данных. При работе и над ОС, и над ПО для HPC это обеспечивает возможность оптимизировать программы для работы на процессорах определённой архитектуры.

5. Язык должен обеспечивать создание новых конструкции для управления потоком выполнения. При разработке ОС это полезно для создания абстракций, облегчающих описание цепочек обработки ошибок, а в разработке ПО для HPC это может пригодиться, например, для реализации оптимизированной под архитектуру конкретного супер-компьютера параллельной версии оператора for, или некого оператора, предназначенного для управления работой вычислительных ядер (имеются в виду специальные программы) в потоковых вычислителях.

Удовлетворяющий всем этим требованиям язык удалось разработать. И более того, RiDE.L, оказался несложным в своей архитектуре. Он прост синтаксически и является, в общем, тривиальным языком выражений. Семантика же этих выражений определяется при помощи простого алгоритма, замещающего участки дерева выражений реализациями соответствующих перегруженных операторов. Это нельзя сделать без определения некоторых базовых примитивов, но оказалось, что достаточно реализовать в семантической базе небольшое число простых конструкций (меньше десятка), предназначенных для абстрактной работы с типами, для работы с выражениями и для перегрузки операторов.

Несмотря на свою базовую простоту, RiDE.L позволяет работать например, с такими нетривиальными конструкциями:

int i; int j; future(int) array(M * N) retvals; int allisok;

for (((i; j) ={in} range(0; N - 1) * range(0; N - 1)) &&
(ok = 1; ok)) (
retvals.(i * j) = matrixmul 'A.%1 B.%2 : R.%1.%2 = R'(i; j) |
 grep 'success'
);

for ((allisok = 1; i = 0); i < M * N && allisok; i += 1)
allisok &&= wait(retvals.i) && retvals.i.value == 0);

if (allisok) () or (print 'ERROR')

Данный код описывает запуск и ожидание результатов примитивного параллельного умножения матрицы A на матрицу B в рамках модели распределённых вычислений, принятой в разрабатываемой ОС. В этом коде конструкции: int, future, array, range, for, if-or, ={in} – не являются элементами базовой семантики RiDE.L, а могут быть реализованы на уровне библиотек.

В настоящее время реализовано несколько основных компонентов транслятора RiDE.L, и вскоре будет создан его рабочий прототип, на котором можно будет проверить гипотезы о гибкости, выразительной мощи и удобстве предлагаемых подходов к построению компиляторов.


 

А также другие работы, которые могут Вас заинтересовать

37227. Экономическое содержание, функции и виды прибыли 60 KB
  Экономическое содержание функции и виды прибыли. Экономическая сущность прибыли является одной из сложных и дискуссионных проблем в современной экономической науке. Экономическое содержание прибыли проявляется в выполняемых ею функциях среди которых можно выделить следующие: Прибыль характеризует экономический эффект полученный в результате деятельности организации т. Стимулирующая функция прибыли проявляется в том что прибыль выступает основным внутренним источником формирования финансовых ресурсов организации обеспечивающих ее развитие...
37228. Практика и перспективы использования технических средств в учреждении культуры 40.5 KB
  Кроме финансовой затратности изготовления жестких декораций имеется и несколько отрицательных художественнопостановочных моментов их применения. Смена жестких декораций не всегда возможна в течение концерта или спектакля по техническим и экономическим причинам. Проекционные декорации создаваемые позволяют радикальным образом решить все проблемы связанные с использованием жестких декораций следующим образом. Проецируемый слайд точно вписывается в подвешенный экран без геометрических искажений создавая полную иллюзию реальности создаваемых...
37229. Электромузыкальные инструменты 69 KB
  Электромузыкальные инструменты Принцип действия Виды электромузыкальных инструментов Потребительские свойства электромузыкальных инструментов Хранение инструментов Заключение Введение Эмоциональный мир человека невозможно представить без музыки. А термин электрический музыкальный инструмент используется для обозначения инструментов звук которых воспроизводится механически и усиливается или изменяется с помощью электроники. Появлению электромузыкальных инструментов ЭМИ предшествовали инструменты построенные на...
37230. Фотоаппаратура в СКД 106 KB
  Фотоаппаратура в СКД История фотоаппаратуры Виды фотоаппаратов Основные детали фотоаппаратов Современная фотоаппаратура Управление современной фотоаппаратурой Режимы фотоаппаратов Заключение Введение Постоянный обмен информацией короткое время производства экономия финансов польза для окружающей среды вот только несколько причин которые объясняют гигантский рост интереса к фотоаппаратам . Фотоаппарат устройство для получения и фиксации неподвижных изображений материальных объектов при помощи света. Фотоаппарат фотокамера...
37231. Разработка художественно-технических приемов обеспечения проведения социально-культурного мероприятия техническими средствами СКД на основе сценарного плана социально-культурного мероприятия 141.5 KB
  Проведение школьной дискотеки 1.Интерьер помещения для дискотеки 1.Световое оборудование Заключение Введение В большинстве случаев к сожалению дискотеки в школах получают неудовлетворительную оценку. Раньше для успеха дискотеки достаточно было использовать кассету с зарубежными хитами а в качестве освещения использовать 4 фонаря и зеркальный шар.
37232. Техническое обеспечение социально-культурных мероприятий 87 KB
  Функции технических средств на каждом этапе подготовки мероприятия Технические средства и монтаж Заключение Введение В настоящее время всё больше актуализируется вопрос технического оснащения социальнокультурных мероприятий. При этом технические средства могут выступать не только в качестве оснащения социальнокультурной программы мероприятия но и содействовать при разработке этой программы от начального до завершающего этапа облегчать работу режиссёру творческой и технической группе. Если художественное оформление...
37233. Средства пожарной безопасности клубных помещений 75.5 KB
  Основные первичные средства пожаротушения: Огнетушители. Огнетушители предназначаются для тушения очагов горения в начальной их стадии а также для противопожарной защиты небольших сооружений машин и механизмов. Огнетушители бывают переносные и передвижные. Огнетушители с большим объемом заряда с массой не менее 20 но не более 400 кг; могут иметь одну или несколько емкостей с огнетушащим веществом относятся к передвижным их корпуса устанавливаются на специальные тележки.
37234. Разработка плана (схемы) технического оснащения учреждения культуры системой озвучивания 110 KB
  Важнейшей характеристикой колебаний звука является частота число показывающее сколько полных колебаний в секунду совершает например маятник часов струна и т. Система озвучивания зала в учреждении культуры представляет собой усилительную систему применяемую в случаях если звуковая мощность источника звука оратора актеров оркестра недостаточна для обеспечения нормальной слышимости на сравнительно большой зоне расположения слушателей или когда в этой зоне имеются значительные шумы или если у помещения плохие акустические свойства....
37235. Система озвучивания социально-культурных мероприятий 146.5 KB
  Система озвучивания социальнокультурных мероприятий 1. Система озвучивания На протяжении столетий в концертных залах театрах лекционных залах церквах и др. Все это вызвало существенные изменения в требованиях к акустическим параметрам современных больших залов многоцелевого назначения и привело к широкому использованию в них систем озвучивания и звукоусиления. Системой озвучивания называется комплекс электроакустических устройств состоящий из излучателей микрофонов усилителей различных корректоров и др.