БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ templet ДЛЯ...
TRANSCRIPT
![Page 1: БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ TEMPLET ДЛЯ …templet.ssau.ru/wiki/_media/pit2014/pit2014vostokin.pdf · БАЗОВЫЙ СИНТАКСИС ЯЗЫКА](https://reader034.vdocuments.net/reader034/viewer/2022050308/5f70dd2125df446d16157843/html5/thumbnails/1.jpg)
Международная научно-техническая конференция «Перспективные информационные технологии». Самара, СГАУ (30 июня - 2 июля 2014)
БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ TEMPLET ДЛЯ ПРЕДСТАВЛЕНИЯ МОДЕЛИ
«ПРОЦЕСС-СООБЩЕНИЕ»
Востокин С.В.
Самарский государственный аэрокосмический университет имени академика С.П. Королёва (национальный исследовательский университет)
![Page 2: БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ TEMPLET ДЛЯ …templet.ssau.ru/wiki/_media/pit2014/pit2014vostokin.pdf · БАЗОВЫЙ СИНТАКСИС ЯЗЫКА](https://reader034.vdocuments.net/reader034/viewer/2022050308/5f70dd2125df446d16157843/html5/thumbnails/2.jpg)
ПИТ-2014 2
Назначение моделей программирования в параллельных вычислениях
● Сокрытие деталей реализации вычислительного процесса– Механизм синхронизации– Обмен данными между процессами
– Размещение кода процессов на физических процессорах
![Page 3: БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ TEMPLET ДЛЯ …templet.ssau.ru/wiki/_media/pit2014/pit2014vostokin.pdf · БАЗОВЫЙ СИНТАКСИС ЯЗЫКА](https://reader034.vdocuments.net/reader034/viewer/2022050308/5f70dd2125df446d16157843/html5/thumbnails/3.jpg)
ПИТ-2014 3
Рассматриваемая модель программирования
● Модель процесс-сообщение– Код программы разбит на процессы– Каждый процесс выполняет фиксированный
набор процедур– Процедуры одного процесса выполняются
последовательно
– Процессы взаимодействуют путём отправки и приёма сообщений
– Процессы пассивны: активируются при поступлении сообщения
![Page 4: БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ TEMPLET ДЛЯ …templet.ssau.ru/wiki/_media/pit2014/pit2014vostokin.pdf · БАЗОВЫЙ СИНТАКСИС ЯЗЫКА](https://reader034.vdocuments.net/reader034/viewer/2022050308/5f70dd2125df446d16157843/html5/thumbnails/4.jpg)
ПИТ-2014 4
Как описать модель программирования?
● Создать новый язык или расширить существующий
● Использовать моделирующие свойства языка программирования общего назначения!– Как контролировать синтаксические ограничения
модели программирования?
– Как работать с увеличенным объёмом кода?
![Page 5: БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ TEMPLET ДЛЯ …templet.ssau.ru/wiki/_media/pit2014/pit2014vostokin.pdf · БАЗОВЫЙ СИНТАКСИС ЯЗЫКА](https://reader034.vdocuments.net/reader034/viewer/2022050308/5f70dd2125df446d16157843/html5/thumbnails/5.jpg)
ПИТ-2014 5
Структура кода
/*$TET$templet$!templet!*/ ← граничный блок1
/* *Parent=+hello(). */ ← блок схемы модуля
/*$TET$*/ ← граничный блок2
bool Parent::hello() { ← системный блок
/*$TET$Parent$hello*/ ← граничный блок3
cout<<"Hello world!"; ← блок пользователя
return true;
/*$TET$*/ ← граничный блок4
} ← системный блок
![Page 6: БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ TEMPLET ДЛЯ …templet.ssau.ru/wiki/_media/pit2014/pit2014vostokin.pdf · БАЗОВЫЙ СИНТАКСИС ЯЗЫКА](https://reader034.vdocuments.net/reader034/viewer/2022050308/5f70dd2125df446d16157843/html5/thumbnails/6.jpg)
ПИТ-2014 6
Тестовая задача
● Проверка тождества Sin2 (x) + Cos2 (x) = 1– Управляющий процесс (Parent) рассылает
рабочим значения переменной x– Два рабочих процесса (Child) вычисляют квадрат
своих тригонометрических функций от переменной x
– Управляющий процесс (Parent) собирает результаты, складывает их и сравнивает с 1
![Page 7: БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ TEMPLET ДЛЯ …templet.ssau.ru/wiki/_media/pit2014/pit2014vostokin.pdf · БАЗОВЫЙ СИНТАКСИС ЯЗЫКА](https://reader034.vdocuments.net/reader034/viewer/2022050308/5f70dd2125df446d16157843/html5/thumbnails/7.jpg)
ПИТ-2014 7
Пример схемы — канал Link
~Link =
+BEGIN ?
argCos -> CALCCOS |
argSin -> CALCSIN;
CALCCOS !
cos2 -> END;
CALCSIN !
sin2 -> END.
![Page 8: БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ TEMPLET ДЛЯ …templet.ssau.ru/wiki/_media/pit2014/pit2014vostokin.pdf · БАЗОВЫЙ СИНТАКСИС ЯЗЫКА](https://reader034.vdocuments.net/reader034/viewer/2022050308/5f70dd2125df446d16157843/html5/thumbnails/8.jpg)
ПИТ-2014 8
EBNF каналов
channel = '~' ident [ '=' state { ';' state} ] '.' .
state = [ '+' ] ident [ ( '?' | '!' ) [ rules ] ] .
rules = ident '->' ident { '|' ident '->' ident } .
![Page 9: БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ TEMPLET ДЛЯ …templet.ssau.ru/wiki/_media/pit2014/pit2014vostokin.pdf · БАЗОВЫЙ СИНТАКСИС ЯЗЫКА](https://reader034.vdocuments.net/reader034/viewer/2022050308/5f70dd2125df446d16157843/html5/thumbnails/9.jpg)
ПИТ-2014 9
Пример схемы — процесс Parent
*Parent =
p1 : Link ! sin2 -> join;
p2 : Link ! cos2 -> join;
+fork( p1!argSin, p2!argCos );
join( p1?sin2, p2?cos2 ).
![Page 10: БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ TEMPLET ДЛЯ …templet.ssau.ru/wiki/_media/pit2014/pit2014vostokin.pdf · БАЗОВЫЙ СИНТАКСИС ЯЗЫКА](https://reader034.vdocuments.net/reader034/viewer/2022050308/5f70dd2125df446d16157843/html5/thumbnails/10.jpg)
ПИТ-2014 10
Пример схемы — процесс Child
*Child =
p : Link ? argSin -> sin | argCos -> cos;
sin( p?argSin, p!sin2 );
cos( p?argCos, p!cos2 ).
![Page 11: БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ TEMPLET ДЛЯ …templet.ssau.ru/wiki/_media/pit2014/pit2014vostokin.pdf · БАЗОВЫЙ СИНТАКСИС ЯЗЫКА](https://reader034.vdocuments.net/reader034/viewer/2022050308/5f70dd2125df446d16157843/html5/thumbnails/11.jpg)
ПИТ-2014 11
EBNF процессов
process = '*' ident [ '=' (( ports [ ';' actions ] ) | actions) ] '.' .
ports = port { ';' port } .
port = ident ':' ident( '?' | '!' ) [( rules [ '|' '->' ident ] ) | ( '- >' ident ) ] .
actions = action { ';' action } .
action = [ '+' ] ident '(' [args] ')' ['->' ( [ident] '|' ident) | ident ] .
args = ident ('?'|'!') ident { ',' ident ('?' | '!') ident} .
![Page 12: БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ TEMPLET ДЛЯ …templet.ssau.ru/wiki/_media/pit2014/pit2014vostokin.pdf · БАЗОВЫЙ СИНТАКСИС ЯЗЫКА](https://reader034.vdocuments.net/reader034/viewer/2022050308/5f70dd2125df446d16157843/html5/thumbnails/12.jpg)
ПИТ-2014 12
Применение
● Быстрая разработка параллельных программ для суперкомпьютера "Сергей Королёв" в сервисе Templet Web– http://templet.ssau.ru/templet/templates
● Визуальное проектирование алгоритмов– http://extensions.openoffice.org/project/templet-ope
noffice-addon● Визуальная отладка программ
– https://bitbucket.org/RegiS_V2/diplom/
![Page 13: БАЗОВЫЙ СИНТАКСИС ЯЗЫКА РАЗМЕТКИ TEMPLET ДЛЯ …templet.ssau.ru/wiki/_media/pit2014/pit2014vostokin.pdf · БАЗОВЫЙ СИНТАКСИС ЯЗЫКА](https://reader034.vdocuments.net/reader034/viewer/2022050308/5f70dd2125df446d16157843/html5/thumbnails/13.jpg)
ПИТ-2014 13
Спасибо за внимание!
● Домашняя страница проекта http://templet.ssau.ru/
● Служба научных вычислений на СК Сергей Королёв http://templet.ssau.ru/templet/