77373

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

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

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

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

Русский

2015-02-02

18 KB

0 чел.

Язык программирования 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, и вскоре будет создан его рабочий прототип, на котором можно будет проверить гипотезы о гибкости, выразительной мощи и удобстве предлагаемых подходов к построению компиляторов.


 

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

34058. Соотношение земельного права с гражданскими и административным правом 63 KB
  Соотношение земельного права с гражданскими и административным правом. РАЗГРАНИЧЕНИЕ НОРМ ЗЕМЕЛЬНОГО ГРАЖДАНСКОГО И ИНЫХ ОТРАСЛЕЙ ПРАВА Вопрос о разграничении сферы действия норм гражданского земельного административного права при регулировании земельных отношений возникает потому что не ко всем хотя и схожим по своей природе земельным отношениям допустимо применение норм иных отраслей права. Известно что применение норм гражданского права значительно расширяется. Применение их бывает не только желательно но и необходимо...
34059. Источники земельного права: понятие, классификация и система 34 KB
  Источники земельного права: понятие классификация и система. ПОНЯТИЕ И ВИДЫ ИСТОЧНИКОВ ЗЕМЕЛЬНОГО ПРАВА Целесообразно вначале хотя бы кратко остановиться на некоторых теоретических вопросах необходимых для дальнейшего усвоения учебного материала. Для надлежащего понимания описываемх институтов земельного права необходимо объяснить понятие источника права вообще и земельного в частности показать возможность их разнообразия и видов в различных странах и в России для того чтобы более осмысленно осуществлять земельноправовые...
34060. История правового регулирования земельных отношений в России 51.5 KB
  до возврата многообразия форм собственности на землю в наше время как единую цепь государственных преобразовательных усилий и противоречивых результатов. одной из наиболее крупных вех в истории земельного права России крестьяне как одно из сословий не обладали практически никакими самостоятельными правами на землю закрепленными в законодательстве. В том что касалось прав крестьян на землю его роль заключалась в некотором упрощении получения приобретения земельных участков крестьянами на праве личной собственности не...
34061. Земельная реформа в Российской Федерации: этапы, сроки, содержание (с 1990 года) 28 KB
  В определенной степени следуя происходящим социальным переменам законодательство Российской Федерации этого времени признало право собственности граждан на землю. Конституцией было закреплено что земля может находиться в частной муниципальной государственной и иных формах собственности. О собственности было установлено что имущество может находиться в частной государственной муниципальной собственности и собственности общественных объединений организаций. Этим же Законом было установлено что объектами права собственности...
34062. Мониторинг земель в Российской Федерации: задачи, содержание и порядок ведения мониторинга земель 25 KB
  Мониторинг земель в Российской Федерации: задачи содержание и порядок ведения мониторинга земель Мониторинг земель это система наблюдений за состоянием земельного фонда.Задачи мониторинга и порядок его ведения установлены Положением об осуществлении государственного мониторинга земель утвержденным Постановлением Правительства РФ от 28 ноября 2002 г.Задачами мониторинга земель являются: своевременное выявление изменений состояния земель оценка этих изменений прогноз и выработка рекомендаций о предупреждении и устранении последствий...
34063. Контроль за использованием и охраной земель: понятие, виды 35.5 KB
  Контроль за использованием и охраной земель: понятие виды Новый Земельный кодекс значительно расширил понятие контроля за использованием и охраной земель и дал классификацию его видов посвятив этому самостоятельную главу главу XII. В Земельном кодексе РСФСР 1991 г. хотя соответствующие отношения в нем и были выделены в отдельный раздел раздел X говорилось лишь о государственном контроле за использованием и охраной земель. В Земельном же кодексе Российской Федерации сказано также об иных его видах и кроме того используется обобщенное...
34064. Государственный земельный контроль: понятие, функции органов 33 KB
  Государственное регулирование земельных отношений является частью государственного управления в целом. Государственное регулирование земельных отношений это целенаправленная деятельность государственных органов по организации рационального использования земель и их охраны путем принятия экономикоправовых мер. Тем более что в настоящее время центр тяжести должен быть перемещен от командноадминистративного управления землей к заново разработанной системе экономического регулирования земельных отношений в России когда субъектами этих...
34065. Сравнение физических свойств и химического состава морской воды 834.27 KB
  Изучение литературных и интернет-источников по данной теме. Освоение методик ведения физических и химических исследований по изучению свойств и химического состава морской воды. Определение физических свойств морской воды: плотности, мутности, электропроводности. Определение химических компонентов воды: гидрокарбонат -ионов, сульфат- ионов, нитрат- ионов, хлорид ионов, бромид-ионов, уровень рН.
34066. Переоформление прав на земельные участки: основания, порядок 101 KB
  Любое из перечисленных прав подлежит государственной регистрации осуществляемой уполномоченным государственным органом в соответствии с Федеральным законом от 21 июля 1997 г. N 122ФЗ О государственной регистрации прав на недвижимое имущество и сделок с ним . Именно с момента государственной регистрации прав на земельный участок можно считать данные права возникшими. 8 ГК РФ права на имущество подлежащие государственной регистрации возникают с момента регистрации соответствующих прав на него если иное не установлено законом.