WWW.KNIGA.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА - Книги, пособия, учебники, издания, публикации

 

Pages:     | 1 | 2 || 4 | 5 |   ...   | 10 |

«INTERNATIONAL CONGRESS ON COMPUTER SCIENCE: INFORMATION SYSTEMS AND TECHNOLOGIES Proceedings of the International Congress Republic of Belarus, Minsk, October' 31 – ...»

-- [ Страница 3 ] --
В настоящее время в мире разработано и используется более семисот систем моделирования, обладающих удобством и быстротой моделирования (GPSS, Q-GERT, GASP IV, SIMULA 67, С++ Sim и др.), они требуют от пользователя основательных знаний языков программирования и обеспечивают меньше возможностей по сравнению с универсальными языками программирования. С другой стороны, использование при разработке имитационных моделей проблемно-ориентированных систем и средств моделирования, которых насчитывается всего несколько десятков, не требует от пользователя знаний языков программирования, однако эти системы и средства позволяют моделировать лишь относительно узкие классы сложных динамических систем.

Эти и некоторые другие проблемы обусловили новую фазу развития имитационного моделирования, связанную с построением гибких систем, позволяющих имитировать результаты человеческой деятельности при принятии решений [1]. Вместе с тем использование существующих в настоящее время систем моделирования и средств автоматизации построения имитационных моделей сталкивается с рядом трудностей и проблем:

1. Предлагаемые средства являются узкоспециализированными.

2. Подобные средства по-прежнему остаются малодоступными и дорогостоящими.

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

МЕТОД И СРЕДСТВА ИССЛЕДОВАНИЯ УПРАВЛЯЕМЫХ

ПРОИЗВОДСТВЕННЫХ СИСТЕМ

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

Для достижения цели работы были поставлены следующие задачи:

1. Разработать формальную модель, описывающую динамику состояний компонентов управляемой производственной системы при наличии элементов потенциальной опасности.

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

3. Разработать методику проектного моделирования УПС при проектировании объектов, представляющих повышенную опасность.

4. Разработать алгоритмы и программное обеспечение для проектного моделирования технологических процессов с вероятностными параметрами их функционирования.

5. Выполнить апробацию метода и технологии проектного моделирования для решения задач проектирования УПС при наличии элементов потенциальной опасности.

Актуальность решения поставленных задач определяется следующими факторами:

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

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

3. Сложностью возникающих практических задач при оценке уровня надежности и безопасности потенциально опасных промышленных объектов.

4. Необходимостью учета влияния человеческого фактора при выполнении работ на потенциально опасных промышленных объектах.

Принимая во внимание важность проблемы повышения уровня надежности и безопасности технических объектов, в частности, обеспечивающих экономическую безопасность республики, разработка метода и средств исследования управляемых производственных систем на стадии проектирования объектов с элементами повышенной опасности является актуальной с научной и практической точек зрения.

Способ формализации функционирования УПС выполнен на основе использования вероятностных сетевых графиков. Алгоритм функционирования УПС описывается на основе сочетания аппарата сетевого планирования, процедуры МонтеКарло и агрегатного способа имитации [2].

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

Предполагается, что до начала исследования имеется содержательное описание УПС, в котором указаны все связи компонентов системы с оборудованием. Метод реализуется в 3 стадии: проектирование технологом структуры УПС и отладка сопряжения УПС с оборудованием; построение имитационной модели (ИМ) УПС, которая входит в качестве составного компонента функционирования человекомашинного комплекса управления производственной системы; проектное моделирование рациональной структуры УПС при наличии условий потенциальной опасности.

Особенности разработанного метода состоят в следующем: поэтапное применение агрегатного способа формализации; построение имитационной модели управляемой производственной системы; испытание имитационных моделей динамики управления оборудованием вероятностного технологического процесса; разработка и эксплуатация типовых имитационных моделей управляемых производственных систем [3, 4].

Технология разработки программно-технологических средств имитации заключается в реализации следующих стадий проектного моделирования УПС.

На стадии 1 проектирования структуры УПС проводится натурный эксперимент (НЭ), в ходе которого осуществляется отладка ИМ УПС на основе программных средств проведения натурного эксперимента;

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

Для реализации стадии 3 проектного моделирования УПС необходимо разработать комплекс оперативного управления динамикой функционирования устройств оборудования УПС.

АПРОБАЦИЯ МЕТОДА И СРЕДСТВ ИССЛЕДОВАНИЯ

По результатам апробации установлено следующее:

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

2. Определена нижняя граница состава ресурсов, при которой еще сохраняется параллельно-последовательный характер запуска агрегатами синхронизации агрегатов-исполнителей функций управления ПС.

3. Выполнена оценка влияния параметров надежности оборудования УПС на отклики имитаторов.

4. Определены суммарные расходы материалов, комплектующих изделий, стоимости выполнения технологических операций за время имитации одного взаимодействия УПС и имитатора УПС.

5. Установлены допустимые диапазоны изменения ресурсов УПС, при которых, в случае безотказной работы устройств оборудования, возможно успешное завершение технологического цикла.

6. Определено среднее время цикла имитации, при котором исполнительные элементы УПС успевают обслужить сигналы средств аппаратного сопряжения с УПС и послать управляющие сигналы на устройства оборудования УПС до поступления новых внешних воздействий.

7. Оценено влияние отказов устройств оборудования на интегральные отклики.

ЗАКЛЮЧЕНИЕ

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

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

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

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

ЛИТЕРАТУРА

1. Клименко, А. В. Способ исследования производственных систем с последовательной организацией технологического цикла / А. В. Клименко // Математичнi машини i системи (Mathematical Machines and Systems). 2009. № 2. С.122–128.

2. Клименко, А. В. Имитационное моделирование вероятностных производственных систем / А. В. Клименко, А. Н. Гончаров, О. М. Демиденко, И. В. Максимей, В. С. Смородин // Математические машины и системы. № 2. 2009. С.113–116.

3. Смородин, В. С. О развитии метода пошаговой реструктуризации для исследования вероятностных технологических процессов с последовательной организацией / В. С. Смородин, А. Н. Гончаров, А. В. Клименко // Доклады БГУИР. 2010. № 2(44). С. 74–76.

4. Смородин, В. С. Система контроля имитации технологических процессов с вероятностными параметрами их функционирования // В. С. Смородин, А. Н. Гончаров, А. В. Жигарь, А. В. Клименко // Проблемы физики, математики и техники. № 1 (2). 2010. С. 56–62.

ГЕТЕРОГЕННАЯ МНОГОЯДЕРНАЯ

ОПЕРАЦИОННАЯ СИСТЕМА:

АРХИТЕКТУРА, ПОДХОДЫ, ПРЕИМУЩЕСТВА

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

Ключевые слова: операционная система, микроядро, гетерогенная компьютерная система, многоядерный процессор.

Внутренняя архитектура современного компьютера напоминает распределенную сетевую систему, состоящую из процессорных ядер, кэшей, внутренних связей, устройств ввода/вывода и карт расширения. При этом развитие компьютерных систем имеет следующие тенденции: переход на многоядерные процессорные устройства, бурное развитие встроенных компьютерных систем, увеличение степени интеграции между компонентами компьютерной системы, увеличение степени интеграции между компьютерными системами [1].

Технологии современных компьютеров и процессорных устройств, а также тенденции и перспективы их развития предполагают разработку и использование новых технологий организации вычислений. И, видимо, они будут представлять собой симбиоз технологий организации вычислений на центральных процессорных устройствах, массивно-параллельных и иных специализированных процессорах, технологий параллельных и распределенных вычислений, а также сетевых технологий. Постепенный массовый переход на многоядерные процессорные устройства является новым поводом к пересмотру архитектуры операционной системы, в которой нужно учесть как накопленный опыт в теории операционных систем, так и накопленные инновации в архитектуре процессоров и тенденции их дальнейшего развития. Архитектура гетерогенной многоядерной операционной системы родилась в ответ на изменение архитектуры компьютерных систем и разрабатывалась с учетом выявленных тенденций их дальнейшего развития.

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

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

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

1. Ядро рассматривает компьютерную систему только как подсистему процессор-память.

2. Ядро полностью скрывает от остального программного обеспечения подробности реализации всех частей процессора и входящих в его состав компонентов.

3. Определенное ядро операционной системы может быть оптимизировано для определенного процессора.

4. Операционная система поставляется с набором ядер.

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

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

• коммуникационного канала для одноадресной передачи данных между двумя ядрами операционной системы;

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

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

Реализация межъядерной коммуникации предполагает внесение в классическую модель коммуникации, состоящую из таких элементов, как участники коммуникации, канал и сообщение, еще одного элемента – области коммуникации. Данный элемент необходим для определения множества доступных участников и служит глобальным описателем существующих в системе коммуникационных каналов. В связи с тем что структура данных, представляющая область коммуникации, совместно используется всеми ядрами ОС в системе, она потенциально является одним из наиболее слабых мест в системе с точки зрения отказоустойчивости и может существенно ограничить динамическую гибкость операционной системы. Данное обстоятельство делает обоснованной динамическую распределенную реализацию данной структуры данных.

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

Одно из ключевых понятий, которое было принесено в мир операционных систем операционной системой UNIX, было понятие паники ядра [3]. Разработчики UNIX, работавшие над операционной системой Multics, отмечают, что на тот момент более половины кода Multics было связано с восстановлением работоспособности системы после ошибок, возникших в ядре, поэтому они приняли решение о том, что UNIX должен только фиксировать ошибку, возникшую в ядре, уведомлять об этом пользователя и затем переходить в бесконечный холостой цикл. В соответствии с этой стратегией после этого пользователь должен произвести все необходимые ему действия и перезагрузить систему. Стратегия обработки ошибок ядра UNIX и такое понятие, как паника ядра, являются одними из самых важных концепций, созданных командой разработчиков UNIX.

Концепция паники ядра поддерживается архитектурой гетерогенной многоядерной операционной системы на микроуровне, но эта архитектура открывает возможность возвратиться к более интеллектуальной обработке и восстановлению после ошибок ядра на макроуровне. При разработке стратегии обработки ошибок ядра мы уже были знакомы с идеями, предложенными разработчиками Hewlett-Packard [4], которые предлагали использовать очень сложную аппаратно-программную систему для соединения по крайней мере двух серверов таким способом, который обеспечит возможности для обработки и восстановления после ошибок ядра. Однако архитектура гетерогенной операционной системы предполагает, что все ядра в системе работают с одной и той же физической памятью, и, более того, они искусственно ограничивают свой доступ к памяти, чтобы избежать интерференции. В результате такая архитектура ОС обеспечивает для разработчиков систем возможность реализовать системные службы восстановления после ошибок ядра непривилегированного режима, которые могут обеспечить беспрецедентную отказоустойчивость компьютерной системы как программного комплекса.

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

Давайте предположим, что одно из ядер операционной системы содержит некоторую ошибку, которая в какой-то момент времени приводит к краху ядра. Сразу же после того, как крах был зафиксирован ядром, оно переключается в режим паники ядра. В этом режиме ядро извещает систему о своем крахе и зацикливает само себя (чтобы сделать пример более простым и наглядным, мы опустили некоторые детали). Отметим, что при этом кадр памяти разрушенного ядра все еще содержит полный снимок данных, принадлежащих отказавшему ядру и всем задачам, который работал в его контексте. Остальная часть системы после этого получения сообщения о панике решает, какое из все еще работающих ядер предоставит услугу восстановления для разрушенного ядра. Ядро, которое в результате было выбрано в качестве сервера восстановления, уведомляет об этом специальные службы восстановления, выполняющуюся в непривилегированном режиме, о произошедшем крахе и запрашивает у задачи, играющей роль менеджера физической памяти, специальный доступ к кадру памяти отказавшего ядра. Наконец, служба восстановления обеспечивает восстановление ядра в соответствии с определяемой пользователем политикой. Возможные варианты восстановления могут быть следующими:

• игнорирование краха ядра;

• захват памяти, принадлежавшей отказавшему ядру, и возврат этой памяти в обращение путем добавления к кадру памяти работающего ядра;

• обеспечение интерактивного анализа дампа памяти отказавшего ядра и его отладки;

• сохранение дампа в файл для будущего анализа;

• миграция задач из отказавшего ядра в любое работающее ядро;

• фиксирование ошибки на лету для изменения поведения всей системы;

• перезапуск разрушенного ядра с потерей состояния;

• перезапуск разрушенного ядра с сохранением состояния.

Возможные сценарии обработки и восстановления после ошибки могут быть как очень простыми, так и очень сложными, в зависимости от требований, предъявляемых к системе. Самые интеллектуальные сценарии могут обеспечить полное восстановление без какой бы то ни было потери информации и с потерей всего нескольких миллисекунд процессорного времени. Высокий уровень модульности, обеспечиваемый архитектурой микроядра, обеспечивает высокий уровень отказоустойчивости на уровне драйверов и системных служб. Архитектура гетерогенной многоядерной операционной системы позволяет интенсивно использовать дублирование функциональности на разных уровнях. В результате объединения возможностей отказоустойчивости, предоставляемых архитектурой микроядра, с возможностями отказоустойчивости, обеспеченными архитектурой гетерогенной многоядерной операционной системы, и возможностей, связанных с дублированием функциональности, обеспечивается потенциал для создания систем с беспрецедентной отказоустойчивостью, ограниченной только возможностями аппаратного обеспечения.

Архитектура гетерогенной многоядерной операционной системы предлагает не только минимизацию ядра и исключение из его состава максимально возможного объема функциональности в соответствии с принципом минимализма Лидтке, но также и разделение традиционно монолитного централизованного ядра на децентрализованное множество микроядер, обладающих значительной степенью независимости, каждое из которых управляет одним из процессоров или процессорных ядер, входящих в состав компьютерной системы. Таким образом, она предлагает переход от архитектуры операционной системы со статическим централизованным ядром к архитектуре операционной системы с динамическим децентрализованным множеством ядер, в которой операционная система рассматривается как децентрализованная распределенная вычислительная сеть. Такой подход к организации операционной системы обеспечивает ряд преимуществ: простоту реализации ядра, более интенсивное использование кэшей процессора, уменьшение объема блокировок и трафика шины памяти, простоту реализации переносимости между различными типами компьютерных систем, высокий уровень конфигурируемости.

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

Первым таким преимуществом является естественная портируемость и поддержка гетерогенных компьютерных систем, которые выступают в роли очень перспективного направления дальнейшего развития компьютерных систем. Можно отметить такие проекты, разработанные в этой области, как процессор IBM Cell и проект гибридного ноутбука, включающего и x86 и ARM-процессор одновременно.

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

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

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

ЛИТЕРАТУРА

1. Patterson, D. Computer organization and design: the hardware/software interface / D. Patterson, J. Hennessy. Morgan Kaufmann, 2008. 912 p.

2. Liedtke, Jochen. On µ-Kernel Construction. / Jochen Liedtke // 15th ACM symposium on Operating Systems Principles, 1995. Р. 237–250.

3. Tom Van Vleck. Unix and Multics / Tom Van Vleck [Electronic resource]. 2010. Mode of access:

http://www.multicians.org/unix.html 4. Rao, P. United States Patent 7774636: Method and system for kernel panic recovery / P. Rao, L. Varghese. [Electronic resource]. 1995. Mode of access: http://www.freepatentsonline.com/7774636.html

ОРГАНИЗАЦИЯ РАСПРЕДЕЛЕННЫХ ВЫЧИСЛЕНИЙ

ПРИ МОДЕЛИРОВАНИИ ЭЛЕКТРОМАГНИТНЫХ ПОЛЕЙ

В КОМПОЗИТНЫХ МАТЕРИАЛАХ, СОДЕРЖАЩИХ

НАНОЧАСТИЦЫ МЕТАЛЛОВ

К. С. Курочка, О. Д. Асенчик, Е. Г. Стародубцев Гомельский государственный технический университет Рассматривается задача создания программно-аппаратного комплекса для компьютерного моделирования в распределенной вычислительной среде оптических свойств нанокомпозитов и метаматериалов на основе наночастиц восстановленных металлов.

Ключевые слова: распределенные вычисления, моделирование, наночастицы, оптические материалы.

Явление плазмонного резонанса в металлических наночастицах вызывает значительный интерес в связи с возможностями его практического применения: материалы, содержащие такие наночастицы, используются в качестве преобразователей и усилителей электромагнитного излучения, управляющих оптических и оптоэлектронных элементов, химических и биологических сенсоров [1]. Математическое моделирование электромагнитных полей в данных материалах базируется на решениях системы уравнений Максвелла. При этом наиболее популярными численными методами являются: метод конечных разностей во временной области (FDTD), метод конечных элементов, реализация формализма T-матрицы методом нулевого поля (NFM), метод приближения дискретных диполей (DDA), а также методы, использующие аналитические решения сложной формы, полученные при решении задачи однократного или многократного рассеянии на сферических частицах [1–7].

В связи с многообразием методов решения уравнений Максвелла разработано много готовых пакетов программ, реализующих эти методы [2]. Однако не существует универсального метода, пригодного для решения любых задач электродинамики.

На практике для моделирования электромагнитных полей в композитных материалах приходится использовать некий набор программного обеспечения. В этом случае трудно обеспечить полное соответствие специфики возникающих расчетных задач функциям готовых компонентов программного комплекса. Поэтому программные компоненты должны быть модифицируемыми и адаптируемыми к вычислительной среде. Для внутренней верификации, надежности и стабильности результатов моделирования необходим избыточный набор программного обеспечения. В качестве базового минимального набора, реализующего расчет электромагнитных полей оптического диапазона в ближней и дальней зоне металлических наночастиц, можно предложить пакеты программ с открытым исходным кодом: Meep [3], DDSCAT [4], NFMDS [5], MSTM [7].

С другой стороны, расчет распределения оптических полей вблизи нанообъектов и (или) в трехмерных объемах любым из широко используемых методов требует больших вычислительных затрат. Кроме того, задача моделирования материалов с заданными свойствами сопряжена с многократными повторными расчетами (например, расчет оптического отклика материала при различных длинах волн внешнего оптического возбуждения или при различных взаимных расположениях наночастиц), поэтому ее решение за разумное время при использовании одного даже высокопроизводительного компьютера весьма затруднительно. В этом случае наиболее доступное решение по показателю цена/производительность – распараллеливание задачи для одновременного решения на некотором изменяемом количестве персональных компьютеров, соединенных между собой линиями связи.

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

Выделяют ряд моделей организации кластерных систем [8]:

1. Централизованные модели программирования с общедоступным состоянием обычно применяются в тесносвязанных системах с синхронными языками и средствами реализации, предназначенными для машин с общей (совместно используемой) или гибридной (физически распределенной, но логически общей) памятью; модели передачи сообщений. Наиболее широкое распространение получил стандарт MPI, обеспечивающий связь между ветвями параллельного приложения [9].

2. Модели удаленного вызова процедур (RPC) и удаленного вызова методов (RMI) обеспечивают те же возможности, что и MPI, но структурируют взаимодействие между отправителем и получателем в виде конструкции языка и представляют собой механизмы для управления потоками команд и данных.

3. Гибридные модели в основном применяются в кламперах (clumps) (кластерах симметричных многопроцессорных систем) и в ГРИД-системах. Гибридные модели позволяют организовать выполнение как в пределах, так и вне непосредственно доступных адресных пространств.

4. Одноранговые вычисления (P2P) представляют собой разделение компьютерных ресурсов и сервисов путем прямого обмена между системами, которые пользуются преимуществом существующих вычислительных возможностей настольных систем и их связностью работы с сетями.

5. Объектные и компонентные модели представляют собой интерфейсы метаязыков для управления и организации взаимодействия между объектами, находящимися в распределенной системе (CORBA, Cactus, COM/DCOM и др.).

6. Модель OGSA представляет собой открытую архитектуру сервисов ГРИД в интернет и обеспечивает прозрачность размещения и многопротокольные связывания для экземпляров сервисов и поддерживает интеграцию с находящимися в основе средствами платформ (Globus).

7. Координационные модели предоставляют средства интегрирования разнородных компонентов путем их связывания с помощью интерфейсов для формирования единого приложения, которое может выполняться на параллельной или распределенной системе.

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

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

Предлагается выделить два основных класса распараллеливаемых задач: 1) распараллеливание на уровне алгоритмов; такое распараллеливание заложено в само программное обеспечение и подвержено минимальному управлению; 2) распараллеливание на уровне задач, так называемая сериализируемая обработка, когда независимые друг от друга задачи выполняются параллельно.

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

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

При тестовых испытаниях вычислительного кластера исследовалось влияние количества узлов в кластере на время решения тестовых задач в абсолютных (рис. 2) и относительных (рис. 3) единицах.

Рис.2. Время (в секундах) нахождения решения тестовых задач Рис.3. Время (относительно ко времени при использовании одного компьютера) Рассматривались следующие тестовые задачи (рис. 2, 3): вычисление числа (кривые CPI); расчет методом конечных разностей во временной области (FDTD) распределения электромагнитного поля с использованием пакета MEEP [3] при возбуждении: непрерывном (плоская монохроматическая волна) металлических нанообъемов (кривые Test1); импульсном (гауссов временной импульс, создаваемый источником тока) двух близко расположенных сферических наночастиц (кривые Test2).

В качестве аппаратно-программной платформы для организации распределенных вычислений была выбрана локально-вычислительная сеть 100-baseTX, объединяющая 45 персональных компьютеров. В качестве операционной системы использовалась Ubuntu 10.10. Для организации распределенных вычислений использовался MPICH.

Проведенный вычислительный эксперимент показал:

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

2. Наиболее эффективной является сериализируемая обработка.

3. При распараллеливаемой обработке для каждой задачи существует некое число вычислительных узлов, свыше которого время обработки перестает уменьшаться.

ЛИТЕРАТУРА

1. Климов, В. В. Наноплазмоника / В. В. Климов. М.: ФИЗМАТЛИТ, 2009. 480 с.

2. Hellmers, J. Classification of Software for the Simulation of Light Scattering and Realization within an Internet Information Portal / J. Hellmers, T. Wriedt // Journal of Universal Computer Science. 2010.

Vol. 16 (9). P. 1176–1189.

3. Oskooi, А. F. MEEP: A flexible free-software package for electromagnetic simulations by the FDTD method / Ardavan F. Oskooi, David Roundy, Mihai Ibanescu, Peter Bermel, J. D. Joannopoulos and Steven G. Johnson // Computer Physics Communications 2010. № 181. P. 687–702.

4. Draine, В. Т. User Guide to the Discrete Dipole Approximation Code DDSCAT 7.1 / B. T. Draine, P.

J. Flatau // arXiv:1002.1505v1 [astro-ph.IM]. 2010. Режим доступа: http://arXiv.org/abs/1002.1505v1, свободный.

5. Doicu, А. Light Scattering by Systems of Particles: Null-field Method with Discrete Sources: Theory and Programs. / A. Doicu, T. Wriedt, Y. A. Eremin. Berlin, Heidelberg, New York: Springer, 2006, 337 p.

6. Xu, Y.-l. Electromagnetic scattering by an aggregate of spheres / Y.-l. Xu // Appl. Opt. 1995. Vol. 34.

№ 21. P. 4573-4588.

7. Mackowski, D. W. A multiple sphere T-matrix Fortran code for use on parallel computer clusters / D. W. Mackowski, M. I. Mishchenko // Journal of Quantitative Spectroscopy and Radiative Transfer, In Press, Corrected Proof, Available online 11 March (http://www.sciencedirect.com/science/article/pii/S0022407311001129).

8. Дорошенко, А. Е. Модели и средства программирования ГРИД-систем / А. Е. Дорошенко, А.

П. Розенблат, К. А. Рухлис, Ю. М. Тырчак // Проблеми програмування. 2007. № 3. C. 16–31.

9. Snir, M. MPI: The Complete Reference / Marc Snir, Steve Otto, Steven Huss-Lederman, David Walker, Jack Dongarra. MIT Press, 1996.

ОДНОРОДНЫЕ ЗАВИСИМОСТИ

ЗЕРНИСТЫХ АЛГОРИТМОВ

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

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

ТАЙЛИНГ

Будем считать, что алгоритм задан последовательной программой, основную вычислительную часть которой составляет многомерный цикл произвольной структуры вложенности, а границы изменения параметров циклов задаются неоднородными формами, линейными по совокупности параметров циклов и внешних переменных. Пусть в гнезде циклов имеется K выполняемых операторов S, область изменения параметров гнезда циклов для выполняемого оператора S будем обозначать V, 1 K. Реализацию (выполнение) оператора S при конкретных значениях и вектора параметров цикла J будем называть операцией и обозначать S ( J ). Выполнение всех операций, зависящих от J, называется J -й итерацией.

Тайлинг применяется для получения макроопераций, называемых зернами вычислений или тайлами [1–3]. Тайлинг – это такое преобразование алгоритма, заданного последовательной программой, при котором каждый цикл разбивается на два цикла: глобальный, параметр которого определяет на данном уровне вложенности порядок вычисления тайлов, и локальный, в котором параметр исходного цикла изменяется в границах одного тайла. Допускается вырожденное разбиение цикла, при котором все итерации относятся к глобальному циклу или все итерации относятся к локальному циклу. Такие циклы будем называть соответственно глобальными не разбиваемыми и локальными не разбиваемыми. При тайлинге алгоритм преобразуется таким образом (перестановкой и распределением циклов), чтобы глобальные циклы были внешними по отношению к локальным циклам.

Пусть в гнезде циклов имеется наборов выполняемых операторов, и в окружении каждого набора есть хотя бы один разбиваемый цикл. Под набором операторов будем понимать один или несколько операторов, окруженных одним и тем же множеством циклов. Наборы операторов линейно упорядочены расположением их в записи алгоритма. Обозначим: V, 1, – области изменения параметров циклов, окружающих наборы операторов, n – размерность области, V – число циклов, окружающих -й набор операторов.

Следующие величины и множества используются для формализации тайлинга.

менения параметров циклов;

r1,..., rn – заданные натуральные числа, определяющие размеры тайла; r обозначает число значений параметра j, приходящихся на один тайл -го набора операторов; r может принимать фиксированное значение в пределах от 1 до r,max включительно, где r,max = M m + 1 ; если r = 1, то цикл с параметром j = 1 является глобальным не разбиваемым; если r = r,max, то цикл с параметром j является локальным не разбиваемым; если два набора операторов имеют общий цикл с параметром j, то r1 = r2 ;

Q = ( M m + 1) / r, 1 n, – число частей, на которые при формировании тайлов разбивается область значений параметра j цикла, окружающего -й набор операторов;

V,gl = J gl ( j1gl,..., jngl )1 jgl Q, 1 n, – области изменения параметров глобальных, т. е. уровня тайлов, циклов;

J V – области изменения параметров локальных (уровня операций тайлов) циклов при фиксированных значениях параметров глобальных циклов. Множество операций, выполняемых на итерациях множества VJgl, будем также обозначать VJgl.

Множества VJgl называются тайлами VJgl или тайлами J gl. Тайлы VJgl будем называть тайлами -го типа.

Геометрически разбиение итерационных областей на тайлы можно представить как разбиение гиперплоскостями с нормальными векторами eq = 0,, 1, 0,, 0, 1 q n (координатный тайлинг). Отметим, что некоторые множества VJ gl могут быть пустыми; такой подход, при котором допускаются избыточные области изменения параметров глобальных циклов, называется методом окаймления [4]. Параметры циклов jgl (при использовании метода окаймления) изменяются в соответствии с неравенствами 1 jgl Q.

Исследуем случай, в котором итерационные области V представимы в виде пересечения двух параллелепипедов:

где H Z n n – нижняя треугольная матрица с единицами на главной диагонали, строки которой составлены из координат линейно независимых векторов, E – единичная матрица, M ( ± ) Z n. Здесь и далее неравенство векторов понимается как система неравенств, составленная из соответствующих координат векторов. Итерационные области вида (1) встречаются во многих вычислительных алгоритмах, представленных последовательными программами.

Пусть R = diag ( r1, r2,, rn ) – диагональная матрица. Обозначим 1n = (1,1,,1), Rn = R 1n = r1, r2,, rn, Rn,max = ( r1,max, r2,max,, rn,max ), Qn = Q1, Q2,, Qn – n – мерные векторы. Следующая теорема дает представление границ изменения параметров глобальных и локальных циклов для случая итерационных областей вида (1). Данное в теореме представление границ изменения параметров глобальных циклов позволяет избегать избыточных вычислений.

Теорема 1. При координатном разбиении итерационной области V ( E, H ) на тайлы область изменения параметров глобальных циклов определяется аппроксимирующим многогранником области изменения параметров локальных циклов определяются множествами Отметим, что если итерационная область V представлена в виде H – нижняя треугольная матрицы с единичными элементами на главной диагонали, то в первом случае m = H 1M ( ) при условии H 1 = H + 1, а во втором случае

ФОРМАЛИЗАЦИЯ ОДНОРОДНЫХ ЗАВИСИМОСТЕЙ ЗЕРНИСТЫХ

АЛГОРИТМОВ

Вхождением (a, S, q ) будем называть q -е вхождение массива a в оператор S.

Индексы элементов массива, относящегося к вхождению (a, S, q ), будем выражать аффинной функцией Fa, S,q ( J ) от вектора параметров цикла, где J V.

Пусть пара вхождений (a, S,1) и (a, S, q ) порождает истинную однородную зависимость S ( I ) S ( J ). Это означает, что S ( I ) выполняется раньше S ( J ) ;

S ( I ) переопределяет (изменяет) элемент массива a, а S ( J ) использует в качестве аргумента тот же элемент массива; между операциями S ( I ) и S ( J ) этот элемент массива a не переопределяется, операторы S и S окружены одним и тем же набором циклов; пары итераций, которым принадлежат зависимые операции, можно задать некоторым вектором и множеством V( a,S,1),( a,S,q ) = J Z n S ( J ) S ( J ), определяющим вторые элементы пары.

Если понятно, какие вхождения порождают зависимость, то множество V( a, S,1),( a, S,q ) будем обозначать V,. Будем предполагать (не ограничивая случаев практического использования), что V, имеет вид где и – нижние треугольные матрицы с нулевыми элементами на главной диагонали, и – n -мерные векторы.

Глобальные (уровня тайлов) зависимости задаются векторами gl. Обозначим VJout,, gl – множество итераций тайла J gl таких, что результаты выполненных на них операций являются аргументами операций тайла J gl + gl ; через VJin,, gl обозначим множество итераций тайла J gl таких, что аргументы выполняемых на них операций являются результатами операций тайла J gl gl.

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

Теорема 2. Пусть – фиксированный вектор зависимостей, относящийся к -му набору операторов. Вектор порождает глобальные векторы зависимостей;

множество этих векторов содержит все различные векторы, у которых -я координата равна:

Множества информационно зависимых операций тайлов выражаются для фиксированной глобальной зависимости следующим образом:

ПРИЛОЖЕНИЕ К ПАРАЛЛЕЛЬНЫМ ВЫЧИСЛЕНИЯМ

Определим последовательности зернистых вычислений следующим образом [5]: к одной последовательности отнесем вычисления тайлов с одинаковыми значениями функций Pr ( J gl ), 1, отображающих тайлы на процессоры. Для каждого зафиксируем число, 1 n. Будем полагать Pr J gl ( j1gl,..., jngl ) = jgl.

Функция Pr задает вычислительный процесс выполнения на процессоре с номером Pr ( J gl ) операций тайлов VJgl с одинаковыми значениями -й координаты jgl векторов J gl, J gl VJgl.

Последовательности зернистых вычислений назовем параллельными, если асимптотически, т. е. при большом размере задачи и без учета разгона вычислений и торможения вычислений, в каждый момент времени выполняются операции тайлов всех последовательностей. Условия, при выполнении которых последовательности зернистых вычислений являются параллельными, приводятся в работе [5].

Пусть вычислительные процессы заданы функциями Pr и зафиксированы произвольные вектор gl и тайл J gl, относящиеся к -му набору операторов. Если 0, то вектор gl порождает коммуникационную операцию получения процесgl сом Pr ( J gl ) массива a Fa, S,q ( J ), где J VJin,,gl, от процесса Pr ( J gl gl ). Если 0, то вектор порождает также коммуникационную операцию отправки проgl цессом Pr ( J gl ) массива a Fa, S,1 ( J ), где J VJout,,gl, процессу Pr ( J gl + gl ).

Если = 0, то вектор коммуникационных операций между процессами не порождает.

ЛИТЕРАТУРА

1. Irigoin, F. Supernode partitioning / F. Irigoin, R. Triolet // Proceedings of the ACM SIGPLAN Symposium on Principles of Programming Languages. San Diego, California, Jan. 1988. P. 319–329.

2. Lim, A. Blocking and array contraction across arbitrary nested loops using affine partitioning / A. Lim, S.

Liao, M. Lam // Proceedings of the ACM SIGPLAN Simposium on Principles and Practice of Parallel Programming. Snowbird, Utah, June, 2001. P. 103–112.

3. Xue, J. Time-minimal tiling when rise is larger then zero / J. Xue, W. Cai // Parallel Computing. 2002.

Vol. 28, № 5. P. 915–939.

4. Renganarayanan, L. Parameterized tiled loops for free / L. Renganarayanan, D. Kim, S. Rajopadhye, M. Strout // ACM SIGPLAN Conference on Programming Language Design and Implementation. San Diego, California, USA, June 2007. P. 126–138.

5. Лиходед, Н. А. Параллельные последовательности зернистых вычислений / Н. А. Лиходед, А. А. Толстиков // Доклады НАН Беларуси. 2010. Т. 54, № 4. С. 36–41.

КОРРЕКТНОСТЬ РАЗБИЕНИЙ АЛГОРИТМОВ

ПРИ ОРГАНИЗАЦИИ ЗЕРНИСТЫХ ПАРАЛЛЕЛЬНЫХ

ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ

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

Ключевые слова: тайлинг, допустимость тайлинга, параллельные вычислительные процессы, L-дерево.

ПРЕДВАРИТЕЛЬНЫЕ СВЕДЕНИЯ. ТАЙЛИНГ

Введем в рассмотрение иерархическое представление структуры программы, называемое L-деревом (Loop tree).

Пусть на первом уровне вложенности имеется E1 линейно упорядоченных циклов. На втором уровне вложенности в теле цикла первого уровня вложенности с порядковым номером k1 пусть имеется Ek1,2 линейно упорядоченных циклов; текущий порядковый номер цикла обозначим k2. Таким образом, на уровне вложенности каждому циклу можно поставить во взаимно-однозначное соответствие вектор ( k1,, k ), 1 k Ek1,,k1,. Любой выполняемый оператор, не имеющий на некотором уровне окружающего его цикла, будем считать циклом с одним значением параметра цикла.

Каждому вектору ( k1,, k ) поставим в соответствие вершину графа. Каждой паре вершин, представляющих внешний и непосредственно вложенный в него внутренний циклы, поставим в соответствие дугу графа. Вершины графа упорядочены согласно вектору ( k1,, k ). Выполняемым операторам, не имеющим на некотором уровне вложенности окружающих их циклов, будем ставить в соответствие висячие дуги. Полученное таким образом L-дерево формализует описание циклической структуры программы.

Будем считать, что алгоритм задан последовательной программой, основную вычислительную часть которой составляет многомерный цикл произвольной структуры вложенности, а границы изменения параметров циклов задаются неоднородными формами, линейными по совокупности параметров циклов и внешних переменных. Пусть в гнезде циклов имеется K выполняемых операторов S, область изменения параметров гнезда циклов для выполняемого оператора S будем обозначать V, 1 K. Реализацию (выполнение) оператора S при конкретных значениях и вектора параметров цикла J будем называть операцией и обозначать S ( J ). Выполнение всех операций, зависящих от J, называется J -й итерацией.

Тайлинг применяется для получения макроопераций, называемых зернами вычислений или тайлами [1–4]. Тайлинг – это такое преобразование алгоритма, заданного последовательной программой, при котором каждый цикл разбивается на два цикла: глобальный, параметр которого определяет на данном уровне вложенности порядок вычисления тайлов, и локальный, в котором параметр исходного цикла изменяется в границах одного тайла. Допускается вырожденное разбиение цикла, при котором все итерации относятся к глобальному циклу или все итерации относятся к локальному циклу. Такие циклы будем называть соответственно глобальными не разбиваемыми и локальными не разбиваемыми. При тайлинге алгоритм преобразуется таким образом (перестановкой и распределением циклов), чтобы глобальные циклы были внешними по отношению к локальным циклам.

Пусть в гнезде циклов имеется наборов выполняемых операторов, и в окружении каждого набора есть хотя бы один разбиваемый цикл. Под набором операторов будем понимать один или несколько операторов, окруженных одним и тем же множеством циклов. Наборы операторов линейно упорядочены расположением их в записи алгоритма. Обозначим: V, 1, – области изменения параметров циклов, окружающих наборы операторов, n – размерность области V, число циклов, окружающих -й набор операторов. Заметим, что наборы операторов удобно задавать при помощи L-дерева: все висячие дуги L-дерева с одним и тем же предком и задают набор операторов.

Следующие величины и множества используются для формализации тайлинга.

менения параметров циклов;

r1,..., rn – заданные натуральные числа, определяющие размеры тайла; r обозначает число значений параметра j, приходящихся на один тайл -го набора операторов; r может принимать фиксированное значение в пределах от 1 до r,max включительно, где r,max = M m + 1 ; если r = 1, то цикл с параметром j = 1 является глобальным не разбиваемым; если r = r,max, то цикл с параметром j является локальным не разбиваемым; если два набора операторов имеют общий цикл с параметром j, то r1 = r2 ;

Q = ( M m + 1) / r, 1 n, – число частей, на которые при формировании тайлов разбивается область значений параметра j цикла, окружающего -й набор операторов;

V,gl = J gl ( j1gl,..., jngl )1 jgl Q, 1 n, – области изменения параметров глобальных, т. е. уровня тайлов, циклов;

J gl V, gl, – области изменения параметров локальных (уровня операций тайлов) циклов при фиксированных значениях параметров глобальных циклов. Множество операций, выполняемых на итерациях множества VJgl, будем также обозначать VJgl.

Множества VJgl называются тайлами VJgl или тайлами J gl. Тайлы VJgl будем называть тайлами -го типа.

Опишем структуру многомерного цикла после применения к нему преобразования тайлинга. Параметры циклов jgl изменяются в соответствии с неравенствами 1 jgl Q, для каждого набора операторов имеется столько локальных циклов, сколько r1,..., rn превосходят единицу.

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

ДОПУСТИМОСТЬ ТАЙЛИНГА

Установим необходимые и достаточные условия, при выполнении которых преобразование тайлинга является корректным.

Пусть имеется некоторая зависимость S ( I ) S ( J ). Обозначим через и номера наборов операторов, которым принадлежат S и S соответственно, а через c, количество общих циклов в окружении операторов S и S. Если общих циклов не существует, то положим c, = 0.

Теорема 1. Пусть существует хотя бы одна такая зависимость S ( I ) S ( J ), I VI,loc, J VJgl,loc, I gl J gl, что c, 0. Тайлинг является допустимым тогда и только тогда, когда для любой такой зависимости выполняются следующие условия:

При отсутствии указанных зависимостей тайлинг допустим.

Рассмотрим непосредственно следующий из теоремы 1 способ проверки корректности тайлинга.

Для каждой пары итераций I и J, порождающих зависимость между операциями если c, = 0, то зависимость не нарушает корректности тайлинга ( );

• если c, 0, то определить первые c, глобальные координаты итераций I и если c, 0, то проверить справедливость условия ( j1gl ,..., jcgl ) lex (i1gl,..., icgl ) ;

если c, 0 и ( j1gl,..., jcgl ) = (i1gl,..., icgl ), то проверить справедливость условия Обозначим через c, количество общих для операторов S и S разбиваемых циклов, jk, 1 c,, – параметры этих циклов.

Теорема 2. Пусть не разбиваемый цикл является глобальным, если не существует внешнего по отношению к нему разбиваемого цикла, и является локальным, если существует внешний по отношению к нему разбиваемый цикл. Пусть существует хотя бы одна такая зависимость S ( I (i1,..., in )) S ( J ( j1,..., jn )), что в окружении операторов S и S имеется хотя бы один общий разбиваемый цикл и равны параметры всех внешних не разбиваемых циклов: (i1,..., ik1 1 ) = ( j1,..., jk1 1 ), k1 1. Обобщенный тайлинг является допустимым, если для любой такой зависимости выполняются следующие условия:

При отсутствии указанных зависимостей тайлинг допустим.

Рассмотрим следующий из теоремы 2 способ проверки корректности тайлинга.

Для каждой пары итераций I и J, порождающих зависимость между операциями • определить общие разбиваемые циклы;

• если c, 1, то зависимость не нарушает корректности тайлинга;

• если (i1,..., ik1 1 ) ( j1,..., jk1 1 ), то зависимость не нарушает корректности тайлинга;

• если (i1,..., ik1 1 ) = ( j1,..., jk1 1 ), то проверить справедливость условий jk ik,

ЗЕРНИСТЫЕ ВЫЧИСЛИТЕЛЬНЫЕ ПРОЦЕССЫ

Для распределения вычислений по вычислительным процессам будем использовать следующий вид отображения тайлов на процессы:

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

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

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

Теорема 3. Если для всех наборов циклов выполнено хотя бы одно из условий:

1) в s-м наборе циклов количество параметров Qis 1, i больше либо равно и хотя бы для одного такого параметра выполняется Qis Qs ;

2) в s-м наборе циклов цикл параллельный, и выполняются условия леммы, то зернистые вычислительные процессы, задаваемые формулой (5), являются параллельными.

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

ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МЕТОДА

Программная реализация метода состоит из комплекса модулей, входящих в программу ParProc. Каждый модуль независимо отвечает за следующие компоненты:

• построение L-дерева алгоритма;

• развертка цикла;

• получение «срабатываний» зависимостей;

• проверка условий теорем 1 и 2;

• преобразование цикла к параллельной реализации (генерация кода).

Выполненная программная реализация позволяет частично автоматизировать использование метода (проверка корректности тайлинга, генерация кода).

Вопрос же о выборе циклов для разбиения, в частности цикл для «пространственного» отображения, – тема для дальнейших исследований.

ЛИТЕРАТУРА

1. Irigoin, F. Supernode partitioning / F. Irigoin, R. Triolet // Proceedings of the ACM SIGPLAN Symposium on Principles of Programming Languages. San Diego, California, Jan. 1988. P. 319–329.

2. Lim, A. Blocking and array contraction across arbitrary nested loops using affine partitioning / A. Lim, S.

Liao, M. Lam // Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming. Snowbird, Utah, June, 2001. P. 103–112.

3. Xue, J. On tiling as a loop transformation / J. Xue // Parallel Processing Letters 1997. Vol. 7, № 4. P. 409–424.

4. Kim, D. Parameterized tiling for imperfectly nested loops. / D. Kim, S. Rajopadhye. // Technical Report CS-09-101, Colorado State University, Department of Computer Science, February 2009. 21 p.

5. Лиходед, Н. А. Параллельные последовательности зернистых вычислений / Н. А. Лиходед, А. А. Толстиков // Доклады НАН Беларуси. 2010. Т. 54, № 4. С. 36–41.

ПРОГРАММНАЯ

ИНЖЕНЕРИЯ

ОБЩИЕ ПОДХОДЫ К РАЗРАБОТКЕ ИНТЕРНЕТ-ПОРТАЛА

ДЛЯ СОЗДАНИЯ ПОЛЬЗОВАТЕЛЬСКИХ ПРИЛОЖЕНИЙ

РАЗЛИЧНОГО ПРОФИЛЯ

Гродненский государственный университет имени Янки Купалы E-mail: istin2007@gmail.com, rudikowa@gmail.com Излагаются общие подходы к созданию интернет-портала для создания пользовательских приложений различной направленности. Определяется многоуровневая архитектура интернет-портала. Дается краткая характеристика разработанных базовых приложений для использования во всемирной сети.

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

ВВЕДЕНИЕ

Масштабное развитие интернет-пространства привело к широкому использованию всемирной сети для различных целей: информационных, коммуникационных, аналитических и т. д. [1]. Кроме того, с развитием веб-технологий повышаются требования и к соответствующим приложениям, с помощью которых можно быстро и качественно создавать и адаптировать готовые решения, предназначенные для размещения и использования в сети интернет.

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

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

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

Естественно, что на рынке программного обеспечения можно найти похожие решения. Так, например, страница пользователя iGoogle. Однако ее реализация это не классическое представление рабочего места, а, скорее, панель быстрого запуска и размещения виджетов. Как следствие такой расстановки, зачастую некоторые сервисы Google теряются, и, чтобы попасть в них приходится осуществлять долгий поиск по различным страницам портала.

В процессе реализации интернет-портала было принято решение разработать ряд приложений, основанных на модульном механизме [2, 3].

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

МНОГОУРОВНЕВАЯ АРХИТЕКТУРА ИНТЕРНЕТ-ПОРТАЛА

Определим основные уровни в архитектуре универсальной среды интернетпортала, позволяющей разрабатывать веб-приложения (рис. 1).

Первый уровень назовем уровнем хранилища данных. Как правило, этот уровень связан с данными, которые необходимо сохранять, накапливать и поддерживать. Для реализации данного уровня выбираются различные СУБД (MySQL, Oracle, SQLite и др.) в зависимости от ресурсов и рассматриваемой задачи предметной области.

Второй уровень связан с технологией доступа к данным (технология DAO – DataAccessObjects). Он предназначен для отправки запросов в хранилища и обработки их результатов. Как правило, данный уровень чаще всего поддерживается различными фреймворками, которые предоставляют удобный интерфейс для работы с базами данных.

Третий уровень – уровень сервисов. Он выполняет операции с данными в одной транзакции. Здесь создаются также различные бизнес-объекты, над которыми уже оперирует DAO-уровень и если нужно возвращается результат.

Четвертый уровень – уровень менеджеров, представляющих собой определенную «прослойку» между веб-сервисами (или – непосредственными обработчиками пользовательских запросов) и сервисами для создания промежуточного кэша данных. Кроме того, данный уровень позволяет избегать повторения кода при расширении вебприложений до функциональности веб-сервиса и тем самым избегать новых ошибок.

Пятый уровень связан с веб-сервисами и непосредственными обработчиками пользовательских запросов (MVC). На этом уровне могут находиться и веб-сервисы, необходимые для открытой работы с приложением другим клиентом и/или непосредственные обработчики пользовательских запросов, т. е. серверная часть, которая принимает на себя запросы пользователей.

Рис.1. Общая структура уровней веб-приложений И, наконец, последний, шестой уровень – это клиенты веб-сервиса и/или клиенты непосредственных запросов. Клиентами веб-сервисов могут быть различные приложения с совершенно непохожими интерфейсами и работающими под различными операционными системами, или даже из самого браузера, т. к. веб-сервис предоставляет открытый API для работы с самим приложением. Клиентом же непосредственных запросов, как правило, является браузер: он предоставляет интерфейс пользователю для работы с приложением.

БАЗОВЫЕ ПРИЛОЖЕНИЯ ИНТЕРНЕТ-ПОРТАЛА

Рассмотрим подробнее отдельные из разработанных приложений.

Система поиска. Система поиска по тегам – это веб-приложение с открытым API, в котором пользователям предоставляется возможность отмечать интернетресурсы тегами, просматривать теги других пользователей и осуществлять поиск интернет-ресурсов по тегам с различными фильтрами. Концепция данной системы заключается в том, что любой пользователь может быстро пометить любой интернетресурс тегом, а затем легко найти его. При этом поиск может осуществляться не только по его пометкам, а также по отметкам других пользователей, в том числе и анонимных.

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

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

1. Частный чат между двумя пользователями – стандартный способ общения, при котором только два пользователя обмениваются сообщениями между собой.

2. Частный чат между тремя и более пользователями – несколько расширенная версия первого варианта, с единственным отличием – сообщениями обмениваются уже не два, а три или более пользователей, при этом право на добавление новых собеседников имеется лишь у создателя чата.

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

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

5. Сервисный чат – предназначен для хранения обсуждений, созданных посредством использования интернет-сервиса, возможности комментирования на сторонних сайтах.

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

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

Социальная сеть. Достаточно распространенное на данный момент явление. В ракурсе данной системы социальная сеть имеет немного другое представление, отличное от того, которое принято воспринимать как социальная сеть. Разработанная система социальной сети предоставляет возможность пользователю находить себе контакты, которые в первую очередь будут помогать аналитической системе портала определять сферу интересов и занятий за счет анализа личных данных, увлечений, профессии и другой информации тех пользователей, с которыми текущий пользователь больше всего общается и имеет общие интересы. Такой анализ поможет более эффективно организовать поиск информации, подборку новостей либо рекламных предложений с расчетом на интересы конкретного пользователя. С определенной точки зрения это можно назвать индивидуальным подходом к каждому клиенту. Разумеется, социальная сеть позволяет пользователям обмениваться сообщениями, информацией, оформлять личные блоги, размещать медиаконтент, выполнять поиск и добавление друзей.

Кроме перечисленных выше разработанный интернет-портал включает следующие приложения: система размещения объявлений, система создания и управления интернет-магазинами и онлайн-играми.

ЗАКЛЮЧЕНИЕ

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

ЛИТЕРАТУРА

1. MySpace [Electronic resource] Mode of access: http://m.myspace.com/login.wap. Date of access:

22.10.2009.

2. HIBERNATE Relational Persistence for Idiomatic Java [Electronic resource] Mode of access:

http://docs.jboss.org/hibernate/stable/core/reference/en/html/. Date of access: 28.03.2011.

http://docs.jboss.org/hibernate/stable/annotations/reference/en/html/. Date of access: 28.03.2011.

ОБЕСПЕЧЕНИЕ ИНФОРМАЦИОННОЙ

БЕЗОПАСНОСТИ КОМПЬЮТЕРОВ НА ОСНОВЕ

ДИФРАКЦИОННЫХ ОПТИЧЕСКИХ ТЕХНОЛОГИЙ

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

Ключевые слова: оптический компьютер, уязвимость, утечка информации.

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

Исходные данные для «плоского конического» дифракционного элемента были следующими: относительный диаметр 0,4 длины волны, относительное отверстие 0,8.

Число уровней квантования фазы равно двум; тип элемента – фазоинверсный.

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

элемента, от сигнала, падающего на его «основание» [13].

Аналогичным образом легко организовать и логические элементы. Рассмотрим для примера дифракционный элемент, обеспечивающий фокусировку излучения из одной точки в две. Такой элемент является двухмерным аналогом трехмерного элемента, обеспечивающего фокусировку от точечного источника излучения в кольцо.

Используем теперь этот элемент «наоборот» – пусть он обеспечивает фокусировку излучения от двух точечных источников в точку. Тогда, если изменить длину волн излучения одного из этих двух точечных источников, область фокусировки излучения изменит свое положение в пространстве – сместится поперек оптической оси элемента (рис. 2). Следовательно, реализуется полихроматический логический элемент: если частоты излучения на его двух входах одинаковы, то сигнал на выходе есть (нет); при отличии одной из частот на входе / выходе сигнал пропадает.

Основные оптические элементы, построенные на основе планарных квазидвухмерных ДОЕ, следующие [13]:

Нелинейный элемент. Одной из главных элементарных, ячеек, присущих любой вычислительной системе, является некий, «черный ящик», обладающий нелинейными свойствами. Такой ячейкой может служить ДОЕ, выполненный, в частности, на произвольной поверхности вращения второго порядка или ее части. Главной особенностью таких устройств является неоднозначность в проявлении частотных свойств по отношению к направлению падения электромагнитной волны относительно вершины его поверхности, который работает в нерасчетном режиме.

Аналоговый сумматор с заданными весовыми коэффициентами. Исполнение функции сумматора в оптическом процессоре может взять на себя синтезированный специальным образом элемент ДОЕ. Так, например, теоретически и экспериментально показана возможность создания дифракционного фокусирующего устройства с заданными фокусирующими свойствами в заранее заданном спектральном диапазоне. Принцип синтеза такого элемента заключается в том, что на основе решения обратной некорректной задачи по заданным пространственно-частотным свойствам определяется профиль его поверхности и соответствующая разовая функция. Такой ДОЕ позволяет смешивать излучения спектрального состава в заданной области пространства.

Параллельная обработка. Параллельная обработка сигналов может привести к существенному изменению производительности вычислительных систем и их структуры. Суть заключается в том, что оптические излучения различного спектрального состава не взаимодействуют между собой и ряд операций можно проводить одновременно на нескольких длинах волн. Более того, возможен синтез ДОЕ, позволяющего при падении на него излучения с одинаковыми или разными длинами волн «расщепить» их по пространству: направить каждый пучок, фокусированный ДОЕ, в свою область или разделить один пучок на несколько с заданными весовыми коэффициентами (операции деления и вычитания).

Логические элементы «или», «и». Элемент «или» дает сигнал на выходе, если на любом из двух его входов имеется сигнал (состояние 1). Такой элемент можно синтезировать, используя возможность смешивания излучения с одинаковыми или разными длинами волн в одной области. В частности, если ДОЕ предназначен для суммирования в одной области пространства излучения от двух источников с разными длинами волн, то реализуется элемент «и». Изменение длины одной из волн излучения на входе приведет вследствие частотных свойств ДОЕ к сдвигу в пространстве области фокусировки и суммирования сигналов на приемнике не произойдет. Аналогичным образом, если ДОЕ предназначен для работы с излучением, имеющим одинаковые длины волн, условие суммирования нарушится при изменении длины одной из волн и реализуется элемент «или».

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

Оптические вентили (рис. 3) могут использоваться в различных областях науки и техники, например в интегральной оптике, в устройствах ввода (вывода) оптических сигналов, в устройствах, противодействующих ослеплению водителей светом фар встречных машин и так далее. Для обеспечения селективных свойств оптических вентилей и возможности перестройки их спектрального диапазона в широких пределах в работе предложено выполнять их в виде дифракционных элементов на криволинейной поверхности. Такие элементы обладают частотными свойствами (продольной хроматической аберрацией), зависящей, в частности, от ориентации поверхности элемента относительно направления падения излучения. Выбирая профиль элемента и его ориентацию, можно управлять и спектральными свойствами вентиля.

Рис.2. Распределение интенсивности поля в области фокуса пленарного дифракционного логического элемента для двух состояний Рис. 3. Схема функционирования оптического вентиля.

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

Таким образом, применение дифракционной квазиоптики в оптическом компьютере при использовании многочастотных дискретных сигналов или излучения непрерывного спектра в некотором заданном диапазоне позволяет создать устройства, не имеющие аналогов среди современных ЭВМ. Принцип действия таких устройств может быть основан на использовании соответствующих мод или гармоник излучения, выбор которых осуществляется выбором числа уровней квантования фазы в ДОЕ. Создание таких оптических систем может привести к принципиальному изменению логики построения вычислительных систем в целом, так как реализуются устройства, позволяющие выполнять несколько последовательных переключений. Кроме того, в оптическом компьютере автоматически обеспечивается отсутствие ПЭМИН из-за природы используемых сигналов.

ЛИТЕРАТУРА

1. Минин, И. В. Дифракционная квазиоптика / И. В Минин, О. В. Минин. М.: ИнформТэи, 1992. 180 с.

2. Prather, D. The potential of flat curvilinear DOE as a key element of future integrated diffractive optics and information protected element / D. Prather, S. Shi, I.V. Minin, O.V. Minin // Proceeding of the 5th IEEE-Russia Conference «Microwave electronics: measurements, identification, applications» MEMIA 2005. Dec. 13–15, 2005. Novosibirsk, Russia. Р. 186–193.

3. Minin, I. V. Novel type of the elements of integrated diffractive optics / I. V. Minin, O. V. Minin, C. Chen, J. Mititu, D. W. Prather // Proc. SPIE 6212, April 17–21, 2006. Gaylord Palms Resort and Convention Center • Orlando (Kissimmee), Florida USA. 11 p.

ДИНАМИЧЕСКОЕ НАЗНАЧЕНИЕ РОЛЕЙ В ЯЗЫКАХ

ПРОГРАММИРОВАНИЯ СО СТАТИЧЕСКОЙ ТИПИЗАЦИЕЙ

Рассмотрен подход к динамическому назначению ролей объектам в языках со статической типизацией, основанный на преобразовании типов данных.

Разработан шаблон проектирования для решения задачи динамического назначения ролей. Приведена реализация шаблона на языке программирования С++.

Ключевые слова: роли, преобразование типов, шаблоны проектирования, язык программирования С++.

ПРОБЛЕМА ДИНАМИЧЕСКОГО НАЗНАЧЕНИЯ РОЛЕЙ

В настоящее время этап проектирования программных систем включает разработку концептуальной модели прикладной области. Каждая концепция рассматривается как некоторая сущность, которая обладает некоторыми свойствами и связями с другими концепциями. Поэтому естественно, что в концептуальной модели прикладной системы встречаются такие сущности, как роли. Например, человек может играть роль врача, учителя и так далее в зависимости от ситуации. Так как концептуальная модель прикладной области естественным образом является основой концептуальной модели программной системы, то при разработке этой программной системы требуется решить вопрос о реализации ролей или назначении ролей объектам классов. Более подробно вопросы концептуального моделирования прикладной области системы с использованием ролей рассмотрены в работах [1–5].

Часто, абстрагируясь от вопросов проектирования систем, при определении ролей используют следующий подход. Все классы разбивают на две категории: естественные (natural or intrinsic classes) классы и ролевые классы (role classes) или просто роли. Подразумевается, что естественные классы имеют конкретные свойства и отношения с другими естественными классами. С другой стороны, роли исполняются естественными классами, а сами по себе не имеют конкретных свойств и отношений.

Причем часто возникает ситуация, когда роли естественным классам должны назначаться динамически в зависимости от контекста системы.

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

КОНЦЕПТУАЛЬНАЯ РЕАЛИЗАЦИЯ РОЛЕЙ

Вопросы концептуального моделирования ролей подробно рассмотрены в работах [6–12]. В данном докладе приведено решение проблемы программирования ролей, основанное на шаблоне проектирования, предложенном в работе [6], который показан на рис. 1.

Рис.1. Шаблон проектирования для реализации ролей Здесь Actor и Role обозначают концептуальные классы, а RoleA и RoleB – конкретные классы-роли, которые может играть актер. Так как актер может играть роль, то между классами Actor и Role существует отношение ассоциации, которое назовем play. Как видно из диаграммы, это отношение указывает, что актер может играть несколько ролей. Одна из возможных реализаций этого шаблона, используя агрегацию ролей в классе Actor, также приведена в работе [6]. Другие возможные подходы к реализации ролей рассмотрены в работах [13–17].

В данном докладе рассмотрен другой подход к реализации шаблона проектирования Actor-Role, который основан на использовании класса для реализации ассоциации play. В языке моделирования систем UML такие классы называются классами-ассоциациями (association class). Концептуально этот подход был предложен в работе [9]. Концептуальный шаблон для реализации этого подхода к реализации ролей представлен на рис. 2. В этом шаблоне концептуальный класс Converter представляет концептуальный класс, который реализует ассоциацию play. Проблема заключается в практической реализации этого класса. В следующем разделе представлен подход к решению этой проблемы, используя средства преобразования типов языка программирования C++.

Приведем описание шаблона Actor-Role, следуя классической схеме, предложенной в работе [18].

Назначение шаблона: выполняет преобразование типов данных в зависимости от контекста окружения.

Мотивация: необходимость в динамическом преобразовании типов данных в зависимости от контекста окружения.

Применимость: класс не знает имена классов, в которые должны быть выполнено преобразование его типа.

Структура шаблона: структура шаблона приведена на рис. 2.

Участники шаблона: Участниками шаблона являются следующие классы:

• Actor – класс, тип которого должен быть преобразован. Класс Actor не знает классов, в которые должен быть преобразован его тип.

• Role – класс, в тип которого должен быть преобразован класс Actor.

• Converter – класс выполняющий динамическое преобразование типов • RoleA, RoleB – классы наследники класса Role, которые могут представлять специализацию ролей.

Взаимодействия: клиент выполняет явное преобразование объекта класса Actor к объекту класса Converter. Преобразование объекта класса Converter к объекту класса Role выполняется неявно. Преобразования типов выполняются во время исполнения программы.

Последствия: класс Actor освобождается от необходимости знания всех ролевых классов. Как следствие, код приложения становится более структурированным, так уменьшается связность классов.

Реализация шаблона приведена в следующем разделе.

Родственные шаблоны: FactoryMethod, AbstractFactory.



Pages:     | 1 | 2 || 4 | 5 |   ...   | 10 |





Похожие работы:

«Содержание 1 Организационно-правовое обеспечение образовательной деятельности 2 Структура подготовки магистров 3 Содержание подготовки магистров 3.1. Анализ рабочего учебного плана и рабочих учебных программ 3.2 Организация учебного процесса 3.3 Информационно-методическое обеспечение учебного процесса 3.4 Воспитательная работа 4 Качество подготовки магистров 4.1 Анализ качества знаний студентов по результатам текущей и промежуточной аттестации. 15 4.2 Анализ качества знаний по результатам...»

«Отечественный и зарубежный опыт 5. Заключение Вышеизложенное позволяет сформулировать следующие основные выводы. • Использование коллекций ЦОР и ЭОР нового поколения на базе внедрения современных информационных технологий в сфере образовательных услуг является одним из главных показателей развития информационного общества в нашей стране, а их разработка – коренной проблемой информатизации российского образования. • Коллекции ЦОР и ЭОР нового поколения – важный инструмент для повышения качества...»

«СРГ ПДООС ПРЕДЛАГАЕМАЯ СИСТЕМА СТАНДАРТОВ КАЧЕСТВА ПОВЕРХНОСТНЫХ ВОД ДЛЯ МОЛДОВЫ: Технический доклад (сокращенная версия, без приложений) Настоящий доклад подготовлен Полом Бяусом (Нидерланды) и Кармен Тоадер (Румыния) для Секретариата СРГ ПДООС/ОЭСР в рамках проекта Содействие сближению со стандартами качества воды ЕС в Молдове. Финансовую поддержку проекту оказывает DEFRA (Соединенное Королевство). За дополнительной информацией просьба обращаться к Евгению Мазуру, руководителю проекта в ОЭСР,...»

«министерство образования российской федерации государственное образовательное учреждение московский государственный индустриальный университет информационно-вычислительный центр Информационные технологии и программирование Межвузовский сборник статей Выпуск 3 (8) Москва 2003 ББК 22.18 УДК 681.3 И74 Информационные технологии и программирование: Межвузов ский сборник статей. Вып. 3 (8) М.: МГИУ, 2003. 52 с. Редакционная коллегия: д.ф.-м.н. профессор В.А. Васенин, д.ф.-м.н. профессор А.А. Пярнпуу,...»

«Зарегистрировано в Минюсте РФ 16 декабря 2009 г. N 15640 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ПРИКАЗ от 9 ноября 2009 г. N 553 ОБ УТВЕРЖДЕНИИ И ВВЕДЕНИИ В ДЕЙСТВИЕ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО СТАНДАРТА ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ПО НАПРАВЛЕНИЮ ПОДГОТОВКИ 230100 ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА (КВАЛИФИКАЦИЯ (СТЕПЕНЬ) БАКАЛАВР) (в ред. Приказов Минобрнауки РФ от 18.05.2011 N 1657, от 31.05.2011 N 1975) КонсультантПлюс: примечание. Постановление...»

«МИНИСТЕРСТВО СЕЛЬСКОГО ХОЗЯЙСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ СТАВРОПОЛЬСКИЙ ГОСУДАРСТВЕННЫЙ АГРАРНЫЙ УНИВЕРСИТЕТ УТВЕРЖДАЮ Проректор по учебной и воспитательной работе И.В. Атанов _2014 г. ОТЧЕТ о самообследовании основной образовательной программы высшего образования 230700.62 Прикладная информатика (код, наименование специальности или направления подготовки) Ставрополь, СТРУКТУРА ОТЧЕТА О...»

«Новые поступления. Январь 2012 - Общая методология. Научные и технические методы исследований Савельева, И.М. 1 001.8 С-128 Классическое наследие [Текст] / И. М. Савельева, А. В. Полетаев. - М. : ГУ ВШЭ, 2010. - 336 с. - (Социальная теория). экз. - ISBN 978-5-7598-0724-7 : 101-35. 1чз В монографии представлен науковедческий, социологический, библиометрический и семиотический анализ статуса классики в общественных науках XX века - экономике, социологии, психологии и истории. Синтез этих подходов...»

«ИНФОРМАЦИЯ: ОБЗОР СОВРЕМЕННЫХ ПРЕДСТАВЛЕНИЙ О СУЩНОСТИ И ПОДХОДОВ К ОПРЕДЕЛЕНИЮ А. Я. Фридланд Тульский государственный педагогический университет им. Л.Н. Толстого 300026, г. Тула, пр. Ленина, д. 125 Аннотация. Информация – базовое понятие в современной науке. Однако единого подхода к пониманию сущности этого явления – нет. В статье дан обзор современных подходов к определению сущности явления информация. Показаны достоинства и недостатки каждого из подходов. Сделаны выводы о применимости...»

«Федеральное агентство по образованию Государственное образовательное учреждение высшего профессионального образования САМАРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ НОРМАТИВНЫЕ ДОКУМЕНТЫ САМАРСКОГО ГОСУДАРСТВЕННОГО УНИВЕРСИТЕТА ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ Выпуск 1 Издательство Универс-групп 2005 Печатается по решению Редакционно-издательского совета Самарского государственного университета Нормативные документы Самарского государственного университета. Информационные технологии. Выпуск 1. / Составители:...»

«ТЕОРИЯ И МЕТОДОЛОГИЯ УДК 336.722.112:316 Т. А. Аймалетдинов О ПОДХОДАХ К ИССЛЕДОВАНИЮ ЛОЯЛЬНОСТИ КЛИЕНТОВ В БАНКОВСКОЙ СФЕРЕ АЙМАЛЕТДИНОВ Тимур Алиевич - директор по исследованиям ЗАО НАФИ, кандидат социологических наук, доцент кафедры социальной и педагогической информатики РГСУ. Email: aimaletdinov@nacfin.ru Аннотация. В статье приводится обзор классических и современных подходов к теоретической интерпретации и эмпирическим исследованиям лояльности клиентов к банкам. На основе анализа...»

«Научные исследования подавателей факультета I математики и информатики 70-летию университета посвящается УДК 517.977 Е.А. Наумович ОСНОВНЫЕ РЕЗУЛЬТАТЫ ДЕЯТЕЛЬНОСТИ КАФЕДРЫ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ И ОПТИМАЛЬНОГО УПРАВЛЕНИЯ (1979-2009 гг.) В статье приводятся краткие сведения из истории создания и развития кафедры дифференциальных уравнений и оптимального управления. Сформулированы основные научные направления и наиболее важные результаты, полученные сотрудниками кафедры. Приведена информации...»

«ІІ. ІСТОРІЯ ФІЛОСОФІЇ Клаус Вигерлинг (Германия)1 К ЖИЗНЕННОЙ ЗНАЧИМОСТИ ФИЛОСОФИИ – ПО ПОВОДУ ОДНОГО СТАРОГО ФИЛОСОФСКОГО ВОПРОСА В статье производится ревизия современного состояния философии, анализируется её значение на основании философского анализа умозаключений, сделанных Гуссерлем, Хёсле. Данная статья подготовлена на основе двух докладов, которые были сделаны в университете Баня-Лука (Босния-Герцоговина). Ключевые слова: философия, жизненный мир, первоосновы, современное состояние...»

«ДОКЛАДЫ БГУИР №2 ЯНВАРЬ–МАРТ 2004 УДК 538.945 НАНОЭЛЕКТРОНИКА И НАНОТЕХНОЛОГИЯ В БЕЛОРУССКОМ ГОСУДАРСТВЕННОМ УНИВЕРСИТЕТЕ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ: ОТ ПЕРВЫХ ШАГОВ ДО СЕГОДНЯШНЕГО ДНЯ В.Е. БОРИСЕНКО Белорусский государственный университет информатики и радиоэлектроники П. Бровки, 6, Минск, 220013, Беларусь Поступила в редакцию 19 ноября 2003 Представлены основные этапы развития работ по наноэлектронике и нанотехнологии в БГУИР. Показаны организационная структура научных исследований и...»

«Зарегистрировано в Минюсте РФ 28 апреля 2010 г. N 17035 МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ПРИКАЗ от 29 марта 2010 г. N 224 ОБ УТВЕРЖДЕНИИ И ВВЕДЕНИИ В ДЕЙСТВИЕ ФЕДЕРАЛЬНОГО ГОСУДАРСТВЕННОГО ОБРАЗОВАТЕЛЬНОГО СТАНДАРТА ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ ПО НАПРАВЛЕНИЮ ПОДГОТОВКИ 021300 КАРТОГРАФИЯ И ГЕОИНФОРМАТИКА (КВАЛИФИКАЦИЯ (СТЕПЕНЬ) МАГИСТР) КонсультантПлюс: примечание. Постановление Правительства РФ от 15.06.2004 N 280 утратило силу в связи с изданием Постановления...»

«Направление подготовки: 010400.68 Прикладная математика и информатика (очная) Объектами профессиональной деятельности магистра прикладной математики и информатики являются научно - исследовательские центры, государственные органы управления, образовательные учреждения и организации различных форм собственности, использующие методы прикладной математики и компьютерные технологии в своей работе. Магистр прикладной математики и информатики подготовлен к деятельности, требующей углубленной...»

«УДК 621.37 МАХМАНОВ ОРИФ КУДРАТОВИЧ Алгоритмические и программные средства цифровой обработки изображений на основе вейвлет-функций Специальность: 5А330204– Информационные системы диссертация на соискание академической степени магистра Научный руководитель : к.т.н., доцент Хамдамов У. Р. ГОСУДАРСТВЕННЫЙ КОМИТЕТ СВЯЗИ,...»

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им. М.В.ЛОМОНОСОВА ФАКУЛЬТЕТ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ И КИБЕРНЕТИКИ А.М. ДЕНИСОВ, А.В. РАЗГУЛИН ОБЫКНОВЕННЫЕ ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ Часть 2 МОСКВА 2009 г. Пособие отражает содержание второй части лекционного курса Обыкновенные дифференциальные уравнения, читаемого студентам факультета вычислительной математики и кибернетики МГУ им. М.В. Ломоносова в соответствии с программой по специальности Прикладная математика и информатика. c Факультет...»

«И.И.Елисеева, М.М.Юзбашев ОБЩАЯ ТЕОРИЯ СТАТИСТИКИ Под редакцией члена-корреспондента Российской Академии наук И.И.Елисеевой ПЯТОЕ ИЗДАНИЕ, ПЕРЕРАБОТАННОЕ И ДОПОЛНЕННОЕ Рекомендовано Министерством образования Российской Федерации в качестве учебника для студентов высших учебных заведений, обучающихся по направлению и специальности Статистика Москва Финансы и статистика 2004 УДК 311(075.8) ББК 60.6я73 Е51 РЕЦЕНЗЕНТЫ: Кафедра общей теории статистики Московского государственного университета...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ БАШКИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ОТЧЕТ по результатам самообследования соответствия государственному образовательному стандарту содержания и качества подготовки обучающихся федерального государственного бюджетного образовательного учреждения высшего профессионального образования Бирский филиал Башкирский государственный университет по...»

«Направление подготовки: 010300.68 Фундаментальная информатика и информационные технологии (очная, очно-заочная) Объектами профессиональной деятельности магистра фундаментальной информатики и информационных технологий являются научно-исследовательские и опытноконструкторские проекты, математические, информационные, имитационные модели систем и процессов; программное и информационное обеспечение компьютерных средств, информационных систем; языки программирования, языки описания информационных...»







 
© 2014 www.kniga.seluk.ru - «Бесплатная электронная библиотека - Книги, пособия, учебники, издания, публикации»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.