77319

СТРУКТУРА F-ЗАМЫКАНИЙ В СРЕДЕ RiDE

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

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

Перечисление наборов глобальных имён блоков данных которое предполагалось давать в неком подобии дизъюнктивной нормальной формы: 1ый набор имён или 2ой набор. Такой момент наступает когда в ходе вычисления сформированы все блоки данных имена которых перечислены в одном из указанных наборов назовём такой набор готовым. C; аргументами для этого запуска служат уже сформированные блоки данных поименованные некоторым готовым набором. Мы называем блоки данных с перечисленными в S именами предпосылками для активации.

Русский

2015-02-02

36.5 KB

0 чел.

СТРУКТУРА F-ЗАМЫКАНИЙ В СРЕДЕ RiDE

М.О. Бахтерев ИММ УрО РАН, г. Екатеринбург

Предлагаемая нами система для поддержки распределённых вычислений RiDE построена вокруг простого формализма f-замыкания (f от future). Первоначально, каждое f-замыкание представлялось нам пятёркой следующих полей.

S. Перечисление наборов глобальных имён блоков данных, которое предполагалось давать в неком подобии дизъюнктивной нормальной формы: 1-ый набор имён, или 2-ой набор, или .., или n-ный набор. Это поле определяет момент времени, после которого система может активировать данное f-замыкание. Такой момент наступает, когда в ходе вычисления сформированы все блоки данных, имена которых перечислены в одном из указанных наборов (назовём такой набор готовым). Сама активация f-замыкания есть запуск процедуры из множества связанных с активируемым f-замыканием (см. C); аргументами для этого запуска служат уже сформированные блоки данных, поименованные некоторым готовым набором. «Дизъюнктивная» же альтернативность нужна для описания выполняющих роль мастеров f-замыканий: многие сценарии параллельных вычислений предполагают, что мастер должен запускаться при завершении любой из отслеживаемых им задач. Мы называем блоки данных с перечисленными в S именами предпосылками для активации.

lS. Описание соответствия между глобальными именами в S и локальными именами аргументов. Как сказано выше, глобальные имена используются для анализа возможности активации f-замыкания. А предназначение локальных в lS - быть ссылками в коде запускаемой во время этой активации процедуры на передаваемые ей в качестве аргументов блоки данных.

R. Описание набора глобальных имён блоков данных, каждый из которых будет сформирован в результате успешного выполнения процедуры, запущенной при активации f-замыкания. Будем называть такие блоки результатами активации.

lR. Описание соответствия глобальных имён в R и локальных имён результатов. Последние используются в коде запускаемой во время активации f-замыкания процедуры для того, чтобы ссылаться на результаты активации в ходе их формирования.

C. Описание набора процедур, одну из которых следует запустить при активации f-замыкания. Предполагается, что f-замыкание представляет некоторую операцию в параллельном алгоритме; и каждый элемент C указывает свою процедуру, выполняющую эту операцию на определённой вычислительной платформе (OpenCL, i686-pc-linux, llvm-posix, .Net и прочих).

Кроме этого, мы предполагали, что каждое f-замыкание, формируемое в процессе исполнения приложения RiDE должно проверяться на то, что все перечисленные в его поле R имена уникальны для всего вычисления. Выполнение этого условия необходимо для сохранения «графовости» потока данных.

Однако, продолжающийся теоретический анализ модели вычислений основанной на таких f-замыканиями показал, что она обладает рядом недостатков.

 1. Мы ожидали некоторый уровень простоты разделения потоков вычислений от ручного управления именами блоков данных, например, при помощи приписывания именам данных в различных потоках различных префиксов. Эти ожидания не оправдались. А способ такого отделения необходим для поддержки разработки библиотек подпрограмм, реализующих в среде RiDE те или иные параллельные алгоритмы.

 2. Описание предпосылок для активации f-замыканий в ДНФ оказалось как неудобным для написания генерирующего это описание кода (особенно для мастеров, запускающих и отслеживающих большое количество рабочих задач), так и неэффективным для обработки f-замыканий во время выполнения приложения для RiDE (особенно для таких мастеров - из-за объёма S).

 3. Указанная выше структура поля S f-замыкания не позволяет программировать реакции вычислительного процесс на внешние запросы. А возможность запрограммировать эти реакции будет необходима в случае использования RiDE для разработки высокопроизводительных систем массового обслуживания, таких как высоко нагруженные web серверы.

4. Проверки уникальности имён в поле R каждого f-замыкания могут внести существенные накладные расходы в исполнение RiDE приложения. Несмотря на возможность замаскировать эти расходы высокой степенью асинхронности исполнения программы для RiDE, их снижение до минимального уровня желательно: ведь, корректная программа будет генерировать только корректные f-замыкания во время своего выполнения.

В текущей работе мы с целью решения этих проблем рассматриваем две модели с модификацией первоначальной семантики f-замыканий: первая с ручным управлением именами и областями видимости; вторая с автоматическим управлением и механикой ссылок и списков. Обе модели расширены специальным видом именованных блоков данных - pin блоками. В новых моделях эти pin блоки данных в отличии от обычных для RiDE с уникальными именами (за которыми оставлена роль основного средства передачи данных) могут быть сгруппированы под одним именем; и могут быть выбраны из такой именованной группы строго по одному при активации f-замыкания, содержащего в предпосылках для активации имя этой группы. Данные в этих группах pin блоков могут появляться из внешних по отношению к RiDE-приложению источников. Этот механизм решает проблемы 3 и 2, существенно облегчая и обработку, и описание f-замыканий мастеров, благодаря возможности использовать для структуре поля S простые и часто короткие списки имён вместо ДНФ от этих имён.

Для решения проблем 1 и 4 в первой модели предложен механизм областей видимости. Области видимости, очевидно, позволяют разделять различные потоки вычислений и снизить сложность проверок уникальности каждого имени в поле R, ограничивая объём работы в большинстве случаев областью видимости, содержащей проверяемое f-замыкания.

Автоматическое управление именами во второй модели в основном направлено на решение проблемы 4, но естественным образом решает и проблему 1. Однако,  эта модель требует введения в язык f-замыканий дополнительных средств, позволяющих контролировать автоматический процесс именования. Такими средствами являются ссылки и списки.

На языках обеих моделей были выражены несколько традиционных параллельных алгоритмов. Это позволило сделать вывод о том, что первая модель уступает второй в удобстве использования. Сей вывод является основным результатом работы. Но вместе с ним получены и следующие потенциально полезные для теории и практики заключения.

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

Во-вторых, для определения семантики второй модели мы применяем не традиционную стратегию вычислений (evaluation strategy), которую можно классифицировать как вызов по ссылке на будущее (call by future reference).

Работа выполнена в рамках Программы фундаментальных исследований Президиума РАН № 14 "Интеллектуальные информационные технологии, математическое моделирование, системный анализ и автоматизация" при поддержке УрО РАН, проект  09-П-1-1003.


 

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

36214. Понятие плана эксперимента. Оптимизационные свойства планов экспериментов. Полный факторный план и его свойства 46 KB
  Оптимизационные свойства планов экспериментов. Полный факторный план и его свойства. Одной из главных задач планирования экспериментов является выбор множества экспериментальных точек в некотором смысле оптимальных.
36215. Классификация математических моделей. Критерии качества моделей. Примеры моделей 66.5 KB
  Примеры моделей Суть моделирования состоит в замене исходного объекта упрощенной копией математической моделью ММ и дальнейшем изучении модели с помощью вычислительнологических алгоритмов реализуемых на компьютерах. При исследовании любой системы методами математического моделирования возможно наличие нескольких альтернативных вариантов модели. Поэтому процесс построения наилучшего как правило компромиссного варианта модели достаточно сложен. Системный подход предполагает наличие следующих этапов создания модели.
36216. Простейший поток и его свойства. Модель простейшего потока 61 KB
  Модель простейшего потока. Свойства ординарного потока. Тогда для любого случайного потока имеем равенство как сумма вероятностей полной группы событий. Для ординарного же потока имеем.
36217. Уравнения Колмогорова. Моделирование многоканальной СМО с ограничением на длину очереди 75.5 KB
  Моделирование многоканальной СМО с ограничением на длину очереди Марковские процессы уравнения Колмогорова Случайный процесс t называется Марковским если его будущее не зависит от прошлого а определяется настоящим т. Примерами Марковских процессов являются при определенных предположениях процессы функционирования СМО.1 СМО может иметь установившийся стационарный режим. Для построения модели стационарного режима СМО положим все производные в системе 11 равными нулю.
36218. Имитация Марковских процессов с непрерывным временем и дискретными состояниями. Планирование машинных экспериментов при имитационном моделировании 91.5 KB
  Например пусть 1 время через которое должен произойти переход в состояние Sj1 а 2 время через которое должен произойти переход в состояние Sj2. Обозначим Т время в течении которого будем наблюдать имитируемый процесс время прогона. Для тех дуг что i = k0 сформировать с помощью датчика случайных чисел k0 j время ожидания перехода Sk0 Sj. Определить время пребывания в состоянии Sk0 через какое время будет реальный переход в новое состояние.
36219. Классификация моделей оптимального синтеза. Методы релаксации в непрерывной оптимизации, условия сходимости. Алгоритмы градиентного метода и методов сопряжённых градиентов 119 KB
  Задача линейного программирования ЛП функции критериев qkx и ограничений fix линейны; если хотя бы одна из этих функций нелинейна то имеем задачу нелинейного программирования НЛП. Задача выпуклого программирования функции критериев qkx и ограничений fix выпуклые. Задача линейного целочисленного программирования функции критериев qkx и ограничений fix линейны контролируемые входные переменные хj целые числа. Оценка приращения функции Лемма 6.
36220. Теоретические основы линейного программирования. Симплекс-метод. Метод искусственного базиса 93.5 KB
  Канонической формой задачи ЛП называется такая ее запись при которой 1 целевая функция должна быть минимизирована; 2 все искомые переменные должны быть неотрицательны; 3 все ограничения кроме неотрицательности переменных имеют вид равенства. Оптимальные значения переменных от такой замены не изменятся. 2 Если в исходной задаче на какойто параметр хj не наложено условие неотрицательности то можно сделать замену переменных положив где новые переменные удовлетворяющие условию неотрицательности. 3 Преобразование неравенств в...
36221. Очередь. Работа с динамической очередью 246 KB
  Например: Работа с очередью Для создания очереди и работы с ней необходимо иметь как минимум два указателя: на начало очереди возьмем идентификатор BegQ; на конец очереди возьмем идентификатор EndQ. Установка указателей BegQ и EndQ на созданный первый элемент: Удаление элемента очереди 1. Перестановка указателя начала очереди BegQ на следующий элемент используя значение поля Link которое хранится в первом элементе. После этого освобождается память начального...
36222. Парадигмы программирования. Правила структурного программирования 37.5 KB
  Создавались вполне работоспособные программы. Это можно объяснить только тем что программы в те времена были в основном простые работала над каждой группа не больше чем 10 человек а чаще всего вообще только программист. Он же потом осуществлял сопровождение программы и перенос в случае необходимости на другие аппаратные платформы...