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


 

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

37583. АЛЛЕЛЬНЫЕ ВАРИАНТЫ ГЕНОВ-КАНДИДАТОВ ПОДВЕРЖЕННОСТИ ТУБЕРКУЛЕЗУ У РУССКОГО НАСЕЛЕНИЯ ЗАПАДНОЙ СИБИРИ 1.02 MB
  Задачи исследования: Изучить распространенность и межлокусное взаимодействие полиморфных вариантов гена NRMP1 46914G C D543N C274T 146585G аллельных вариантов генов VDR B b F f IL12В 1188C IL1B 39531 2 IL1RN VNTR у русских г. Показано что структура неравновесия по сцеплению между полиморфизмами гена NRMP1 идентична у русских и тувинцев. Впервые выявлены ассоциации полиморфизма 3953А1 А2 гена IL1B c ограниченным деструктивным ТБ легких VNTR полиморфизма гена IL1RN и полиморфизма 274С Т гена NRMP1 с...
37584. ФОРМИРОВАНИЕ ГРАЖДАНСКОГО ОБЩЕСТВА В УСЛОВИЯХ РОССИЙСКОГО РЕГИОНА 3.01 MB
  Концептуальнотеоретические основы формирования гражданского общества в России. Региональные аспекты формирования гражданского общества. Адаптивная готовность государственных и муниципальных служащих к работе в условиях формирования гражданского общества.
37585. УПРАВЛЕНИЕ ИНВЕСТИЦИЯМИ В СУБЪЕКТЕ ФЕДЕРАЦИИ (НА ПРИМЕРЕ МОСКВЫ) 818.5 KB
  Общетеоретическую и методологическую основу исследования составили положения содержащиеся в трудах отечественны и зарубежных ученых экономистов в области экономической теории организационного менеджмента теории сложных систем и теории управления проектами. Москвы Центральный административный округ территории формирующие городские центры зона МКАД; в городское жилищное строительство малоэтажная и коттеджная застройка территорий города и ближайших загородных зон; г крупные городские объекты формирующие облик города и призванные быть...
37586. УПРАВЛЕНИЕ ФЕДЕРАЛЬНОЙ СОБСТВЕННОСТЬЮ В УСЛОВИЯХ ПЕРЕХОДНОЙ ЭКОНОМИКИ 795.5 KB
  Проблемы управления федеральной собственностью [1. Федеральная собственность как объект управления [1. Анализ проблем управления федеральной собственностью в условиях переходной экономики [1. Анализ зарубежного опыта управления государственной собственностью [1.
37587. ПОВЫШЕНИЕ ЭФФЕКТИВНОСТИ СБЫТОВОЙ ДЕЯТЕЛЬНОСТИ ТЕКСТИЛЬНОГО ПРЕДПРИЯТИЯ НА ОСНОВЕ СОВЕРШЕНСТВОВАНИЯ ПЛАНИРОВАНИЯ УСЛОВИЙ РЕАЛИЗАЦИИ ТЕКСТИЛЬНОЙ ПРОДУКЦИИ 974 KB
  КУЛИКОВ МАКСИМ ВАСИЛЬЕВИЧ ПОВЫШЕНИЕ ЭФФЕКТИВНОСТИ СБЫТОВОЙ ДЕЯТЕЛЬНОСТИ ТЕКСТИЛЬНОГО ПРЕДПРИЯТИЯ НА ОСНОВЕ СОВЕРШЕНСТВОВАНИЯ ПЛАНИРОВАНИЯ УСЛОВИЙ РЕАЛИЗАЦИИ ТЕКСТИЛЬНОЙ ПРОДУКЦИИ Специальность 08. Управление процессом ПЛАНИРОВАНИЯ РЕАЛИЗАЦИИ ПРОДУКЦИИ на промышленном предприятии.1 Основные аспекты проблемы управления процессом реализации продукции.2 Анализ научных работ посвященных проблеме математического моделирования процесса расчетов по реализации продукции.
37588. ПОВЫШЕНИЕ ЭФФЕКТИВНОСТИ УПРАВЛЕНИЯ ДЕЯТЕЛЬНОСТЬЮ ЭКОНОМИЧЕСКИХ ПОДРАЗДЕЛЕНИЙ ПРОМЫШЛЕННОГО ХОЛДИНГА 1.25 MB
  Основные экономические показатели деятельности холдинга [2. Методика подготовки управленческой информации экономическими подразделениями холдинга [2. Инструментарий управления экономическими подразделениями холдинга [3.
37589. Разработка концепции предмета преступления с учетом реалий современной общественной жизни и обновленного уголовного законодательства 1.34 MB
  Эволюция взглядов на предмет преступления в российской науке уголовного права 16 1 Развитие учения о предмете преступления в дореволюционный период 16 2 Концепции предмета преступления в науке советского уголовного права 20 3 Современное состояние учения о предмете преступления 31 Глава 2. Понятие предмета преступления и его место в составе преступления 38 1 Понятия предмет и объект в действующем уголовном законодательстве судебной практике философии и правоведении 38 2 Понятие предмета преступления 47 3 Место предмета преступления...
37590. СОВЕРШЕНСТВОВАНИЕ МЕХАНИЗМА УПРАВЛЕНИЯ СОБСТВЕННОСТЬЮ ПРОМЫШЛЕННЫХ КОРПОРАЦИЙ 1.18 MB
  корпорации и Корпоративное управление в россии [2. Российские корпорации в современной экономике [2.7] Общие требования к финансовой отчетности корпорации [2.8] Консолидированная отчетность корпорации [2.
37591. ПРАВОВОЕ РЕГУЛИРОВАНИЕ ОРГАНИЗАЦИИ И ДЕЯТЕЛЬНОСТИ АКЦИОНЕРНЫХ ОБЩЕСТВ В РОССИЙСКОЙ ФЕДЕРАЦИИ 345.5 KB
  ИСТОРикОПРАВОвыЕ АСПекты СОЗДАНИЯ ЗАКОНОДАТеЛЬСТВА ОБ ОРГАНИЗАЦИИ И ДЕЯТЕЛЬНОСТИ АКЦИОНЕРНЫХ ОБЩЕСТВ [3] 2. ПРАВОВОЕ ПОЛОЖЕНИЕ современных АКЦИОНЕРНЫХ ОБЩЕСТВ в россии [4] 3. Федеральный закон Об акционерных обществах от 26 декабря 1995 г.