Логическая объектно- ориентированная модель асинхронных параллельных вычислений к.ф.-м.н. Алексей А. Морозов Институт Радиотехники и Электроники РАН morozov@mail.cplire.ru.

Презентация:



Advertisements
Похожие презентации
2010 Предикатное программирование Формальные методы в описании языков и систем программирования п/г спецкурс Ведет спецкурс: Шелехов Владимир Иванович,
Advertisements

Инвариантность изображений в задачах оптической обработки информации Мельков Алексей Евгеньевич.
Лекция 2 Предикатное программирование 2. Постановка задачи дедуктивной верификации Программа в виде тройки Хоара, однозначность программы, тотальность.
Модели представления знаний. 1. Логические; 2. Продукционные; 3. Представление знаний на основе фреймов; 4. Представление знаний на основе семанти- ческих.
МГУ имени Ломоносова, механико-математический факультет, кафедра вычислительной математики Исследование проблемы переполнения буферов в программах Пучков.
Прерывания Определение прерывания Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств.
АЛГОРИТМИЗАЦИЯ. Алгоритм Алгоритм – описание конечной последовательности действий, приводящей от исходных данных к нужному результату. Где встречаются.
Алгоритм называется частичным алгоритмом, если мы получаем результат только для некоторых d є D и полным алгоритмом, если алгоритм получает правильный.
Теория вычислительных процессов Сети Петри для моделирования Преподаватель: Веретельникова Евгения Леонидовна 1.
Принципы разработки параллельных алгоритмов. Введение Для определения эффективных способов организации параллельных вычислений необходимо: Выполнить анализ.
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ.
OOП Инна Исаева. Подпрограмма – это большая программа, разделённая на меньшие части. В программе одна из подпрограмм является главной. Её задача состоит.
Введение в формальные (аксиоматические) системы. Формальные системы - это системы операций над объектами, понимаемыми как последовательность символов.
Программирование Программирование – это раздел информатики, задача которого – разработка программного обеспечения компьютера. Люди, работающие на компьютерах.
От сложного – к простому. От непонятного – к понятному.
Элементы теоретического программирования Что такое алгоритм?
ЛЕКЦИЯ 2 Общие вопросы ППП СВОЙСТВА ППП КЛАССИФИКАЦИЯ ППП СТРУКТУРА ППП РЕЖИМЫ ПРИМЕНЕНИЯ ППП МОДЕЛЬ ПРЕДМЕТНОЙ ОБЛАСТИ ВНЕШНЕЕ УПРАВЛЕНИЕ ПАКЕТОМ.
Языки, технологии и средства создания Web-сайтов. Компонентная структура. Выполнил Федорова Я.В., студентка СФУ ИППС 1 курс заочное отделение.
Основные этапы моделирования. Моделирование – исследование объектов путем построения и изучения их моделей. Моделирование – творческий процесс, и поэтому.
Введение в задачи исследования и проектирования цифровых систем Санкт-Петербургский государственный университет Факультет прикладной математики - процессов.
Транксрипт:

Логическая объектно- ориентированная модель асинхронных параллельных вычислений к.ф.-м.н. Алексей А. Морозов Институт Радиотехники и Электроники РАН д.ф.-м.н. Юрий В. Обухов Институт Радиотехники и Электроники РАН

Что означает «Логическая»? Модель вычислений основана на принципах логического программирования: Поддержка теоретико-модельной семантики – параллельная программа является одновременно реализацией алгоритма и логической формулой. Поддержка теоретико-модельной семантики – параллельная программа является одновременно реализацией алгоритма и логической формулой. Наличие математически строгих критериев правильности вычислений: корректности и полноты. Наличие математически строгих критериев правильности вычислений: корректности и полноты. В модели существенным образом использована возможность логического вывода с не полностью определёнными данными (опережающие вычисления). В модели существенным образом использована возможность логического вывода с не полностью определёнными данными (опережающие вычисления).

Проблема, которую необходимо решить: Корректность: Полнота: Корректность и полнота «обычного» Пролога нарушаются, если исходная информация изменяется в ходе логического вывода.

Что означает «Асинхронные параллельные вычисления»? В модели вычислений не используется приостановка процессов для синхронизации. Вместо этого применяются опережающие вычисления и последующая модификация логического вывода.

Пример асинхронной параллельной программы

Пользовательский интерфейс

Работа программы

Принцип повторного доказательства Общие переменные Логические акторы Пространство поиска

Что означает «Объектно- ориентированная»? Процессами называются экземпляры классов объектно-ориентированного логического языка Акторный Пролог, предложения которых исполняются параллельно по отношению к предложениям других экземпляров классов.

Составные части модели Состояния процесса Доказанный Неудачный Неиспользуемый Сообщения Потоковые Прямые Резиденты

Состояния процесса «Доказанный» процесс. Все акторы процесса находятся в согласованном состоянии (доказательство всех акторов завершилось успехом). «Неудачный» процесс. Акторы процесса выведены из согласованного состояния. «Неиспользуемый» процесс. Может рассматриваться как некоторый отключённый компонент вычислительного устройства. Процессы автоматически переходят в состояние «неиспользуемый» и автоматически возвращаются из этого состояния при получении специальных потоковых сообщений.

Потоковые сообщения Процесс может передавать информацию в другие процессы, изменяя значение общей переменной, принадлежащей процессам. Общие переменные, связывающие процессы, называются «портами».

Разновидности портов Простые (plain). Защищающие (protecting). Защищённое значение общей переменной может быть заменено только другим защищённым значением. Отключающие (suspending). Служат для автоматического перевода процессов в состояние «неиспользуемый» и автоматического возвращения их из этого состояния.

Прямые сообщения Процесс может осуществить асинхронный вызов предиката в другом процессе. Различаются «информационные» и «переключающие» прямые сообщения.

Отличия информационных прямых и управляющих прямых сообщений 1. В результате обработки переключающего прямого сообщения, процесс может оказаться в состоянии «доказанный» или «неудачный», в то время как после обработки информационного прямого сообщения процесс всегда оказывается в состоянии «доказанный». Если исполнение информационного прямого сообщения закончилось неудачей, это сообщение просто игнорируется, а процесс остаётся в прежнем состоянии. 2. В отличие от переключающих прямых сообщений, обработка информационных прямых сообщений откладывается до тех пор, пока принимающий процесс не окажется в состоянии «доказанный». Отложенные сообщения накапливаются в буфере.

Резиденты «Резидентом» называется активная сущность, наблюдающая за состоянием заданного («целевого») процесса и посылающая собранную информацию своему владельцу. После каждого изменения состояния целевого процесса, резидент повторно осуществляет построение и передачу списка значений функции.

В общем случае, каждому резиденту программы соответствуют: 1. Владелец резидента. Владельцем резидента является создавший его процесс. 2. Атомарная формула. Эта формула обозначает вызов некоторой функции (в общем случае, недетерминированной), которая должна быть исполнена в целевом процессе. Функции в Акторном Прологе реализованы с помощью стандартной техники разглаживания программ. 3. Целевой процесс резидента. 4. Некоторая общая переменная. Через эту переменную резидент посылает собранную информацию своему владельцу.

Пример асинхронной параллельной программы

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

Определение 1. Будем говорить, что логическая программа достигла успешного конечного состояния, если: 1. Все процессы программы находятся в состоянии «доказанный» или «неиспользуемый». 2. Активизация резидентов не требуется. 3. Обработка каких-либо сообщений процессами и резидентами не требуется. Определение 2. Результатом, вычисленным программой, мы будем называть значения общих переменных, связывающих процессы программы, достигшей успешного конечного состояния.

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

Теорема 1. Параллельная программа является корректной относительно своей теоретико- модельной семантики.

Теорема 2. Параллельная программа является полной относительно своей теоретико-модельной семантики, если В тексте программы нет нелогических встроенных предикатов. В тексте программы нет нелогических встроенных предикатов. Прямые сообщения не используются. Информация между процессами передаётся только посредством потоковых сообщений. Прямые сообщения не используются. Информация между процессами передаётся только посредством потоковых сообщений. Программа не зацикливается в ходе исполнения целевых утверждений процессов и функций резидентов. Программа не зацикливается в ходе исполнения целевых утверждений процессов и функций резидентов. Функции, вызываемые резидентами, всегда возвращают конечное число значений. Функции, вызываемые резидентами, всегда возвращают конечное число значений. Предикаты, вычисляющие данные, передаваемые затем с помощью потоковых сообщений, являются детерминированными. Предикаты, вычисляющие данные, передаваемые затем с помощью потоковых сообщений, являются детерминированными. Информация передаётся между процессами только по однонаправленным каналам. Однонаправленная передача данных в Акторном Прологе может быть смоделирована с помощью ключевого слова protecting. Информация передаётся между процессами только по однонаправленным каналам. Однонаправленная передача данных в Акторном Прологе может быть смоделирована с помощью ключевого слова protecting. Существует частичное упорядочение процессов, обменивающихся информацией. То есть, в программе отсутствует рекурсивная передача данных между процессами и резидентами. Существует частичное упорядочение процессов, обменивающихся информацией. То есть, в программе отсутствует рекурсивная передача данных между процессами и резидентами. Все значения, вычисляемые процессами и резидентами, которые должны быть переданы другим процессам и резидентам, являются основными (то есть, не содержат несвязанные переменные). Все значения, вычисляемые процессами и резидентами, которые должны быть переданы другим процессам и резидентам, являются основными (то есть, не содержат несвязанные переменные).

Результаты проекта РФФИ ( гг.) Предложена и разработана новая модель параллельных вычислений в логическом программировании. Принципиальным отличием данной модели вычислений является то, что она обеспечивает корректность и (при определённых условиях) полноту параллельных логических программ, исполняемых в динамическом внешнем окружении. Предложена и разработана новая модель параллельных вычислений в логическом программировании. Принципиальным отличием данной модели вычислений является то, что она обеспечивает корректность и (при определённых условиях) полноту параллельных логических программ, исполняемых в динамическом внешнем окружении. Исследованы условия существования классической теоретико-модельной семантики параллельных логических программ. Исследованы условия корректности и полноты параллельных логических программ, выполняемых в динамическом внешнем окружении. Исследованы условия существования классической теоретико-модельной семантики параллельных логических программ. Исследованы условия корректности и полноты параллельных логических программ, выполняемых в динамическом внешнем окружении. Разработаны методы и синтаксические средства логического описания и анализа Web-страниц, а также средства логических запросов в Web. Разработаны методы и синтаксические средства логического описания и анализа Web-страниц, а также средства логических запросов в Web. Спроектирована и реализована экспериментальная система логического поиска и распознавания в Интернет на основе разработанного математического аппарата. В частности, разработаны методы визуального компонентно-ориентированного логического программирования агентов Интернет. Спроектирована и реализована экспериментальная система логического поиска и распознавания в Интернет на основе разработанного математического аппарата. В частности, разработаны методы визуального компонентно-ориентированного логического программирования агентов Интернет. Созданы экспериментальные агенты Интернет, осуществляющие сбор информации в Сети. Эксперименты с агентами Интернет показали целесообразность и эффективность использования разработанных методов логического программирования агентов. Созданы экспериментальные агенты Интернет, осуществляющие сбор информации в Сети. Эксперименты с агентами Интернет показали целесообразность и эффективность использования разработанных методов логического программирования агентов.