Владимир Пекунов - Технологии автоматического дедуктивного распараллеливания в языке Planning C

Здесь есть возможность читать онлайн «Владимир Пекунов - Технологии автоматического дедуктивного распараллеливания в языке Planning C» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. ISBN: , Жанр: Прочая околокомпьтерная литература, Прочая научная литература, Математика, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Технологии автоматического дедуктивного распараллеливания в языке Planning C: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Технологии автоматического дедуктивного распараллеливания в языке Planning C»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

Работа посвящена решению проблемы автоматического распараллеливания C-программ с применением средств построения языковых расширений языка Planning C 2.0. Предложены механизмы реализации расширений, доказана теорема об их реализуемости. Предложена новая технология распараллеливания тел циклов, состоящих из двух зависимых по данным частей. Предложена технология оптимизирующей векторизации многократно выполняемых циклов с расходящимися трассами итераций на векторных расширителях.

Технологии автоматического дедуктивного распараллеливания в языке Planning C — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Технологии автоматического дедуктивного распараллеливания в языке Planning C», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Глава 2. Встроенная трансформация программ в языке Planning C

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

Соответственно, целью данной главы является определение набора языковых средств Planning C 2.0, на базе которых могут быть реализованы все вышеупомянутые этапы.

Для реализации данной цели необходимо решить задачи по реализации вышеупомянутых этапов с применением логического программирования или его элементов.

2.1. Дедуктивные макромодули: средства решения задач распараллеливания и генерации выходной программы

Первоначально в языке Planning C дедуктивные макромодули предназначались для гибкой генерации описаний вычислительных топологий (этим и объясняются некоторые их не вполне очевидные синтаксические особенности), впоследствии же их применение было расширено: в настоящее время дедуктивные макромодули используются для гибкой дедуктивной генерации произвольных фрагментов программы на основе логических правил, записанных на языке GNU Prolog , имеющем бесплатный и свободно распространяемый интерпретатор. Как будет показано в настоящей работе, дедуктивные макромодули вполне могут сгенерировать и полноценную параллельную программу.

Дедуктивный макромодуль является совокупностью статических и динамических (генерируемых на одной из стадий компиляции в ходе применения предикатов GNU-Prolog) элементов. Он оформлен в виде специального программного блока и имеет параметры, в зависимости от которых им генерируется фрагмент программного кода. Соответствующий код будет вставлен в программу в точке обращения к макромодулю, в котором будут указаны конкретные значения его параметров. Предполагается, что макромодуль будет генерировать код на этапе компиляции, точнее, на стадии препроцессинговой обработки. Соответственно, это накладывает определенные ограничения на возможные значения его параметров – это должны быть выражения, которые можно вычислить на этапе препроцессинга: предположим, что это выражения, содержащие исключительно именованные и неименованные константы, в том числе те, которые формируются в результате классических макроподстановок C/C++.

2.1.1. Синтаксис и семантика макромодуля

Предлагается следующий синтаксис декларации дедуктивного макромодуля (все элементы в описании могут разделяться пробелами):

« #» « def_module» « (» префиксная_строка» )» имя_модуля « (» [имя_параметра] {»,» имя_параметра}» )» « {»
(предикат | цель | произвольный_Planning_C_код)
{(предикат | цель | произвольный_Planning_C_код}
« }» «;»
предикат = « @» имя_предиката [» (» переменные_предиката» )»] [» : -» GNU_PROLOG_выражение]».»
цель = « @» « goal» « :-» GNU_PROLOG_выражение».»

Здесь произвольный_Planning_C_код должен представлять собой фрагмент синтаксически корректного языкового выражения, не содержащего символа « @». Это может быть описатель любого статического элемента генерируемого кода. GNU_PROLOG_выражение может содержать вызовы любых предикатов GNU Prolog, в том числе генерирующих консольный вывод – результаты этого вывода и будут использоваться в качестве сгенерированных фрагментов кода . В большинстве случаев вывод будет генерироваться предикатом write .

Обращение к макромодулю имеет формат:

имя_модуля « (» [значение_параметра] {»,» значение_параметра}» )» «;»

В точке обращении к макромодулю компилятором выполняются следующие действия :

а) вычисляются все параметры обращения;

б) значения параметров подставляются в текст модуля вместо соответствующих лексем – имен параметров;

в) из текста модуля исключаются все предикаты, из которых формируется текст логической GNU Prolog-программы;

г) фрагмент модуля, содержащий какую-либо из целей, заменяется результатом доказательства этой цели (то есть блоком выведенных на консоль в ходе доказательства строк) в контексте сформированной логической GNU Prolog-программы;

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Технологии автоматического дедуктивного распараллеливания в языке Planning C»

Представляем Вашему вниманию похожие книги на «Технологии автоматического дедуктивного распараллеливания в языке Planning C» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Технологии автоматического дедуктивного распараллеливания в языке Planning C»

Обсуждение, отзывы о книге «Технологии автоматического дедуктивного распараллеливания в языке Planning C» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x