Скачать 347.51 Kb.
|
Министерство образования и науки Российской Федерации Федеральное государственное автономное государственное учреждение высшего профессионального образования «Уральский федеральный университет имени первого Президента России Б. Н. Ельцина» Математико-механический факультет Кафедра информатики и процессов управления Разработка методик визуализации для представления работы параллельных программ «Допускается к защите» Квалификационная работа на степень бакалавра наук Заведующий кафедрой студента группы МТ - 405 УРОСОВА АЛЕКСАНДРА ПАВЛОВИЧА _____________________ «___» __________ 2011 г. Научный руководитель АВЕРБУХ ВЛАДИМИР ЛАЗАРЕВИЧ, заведующий сектором компьютерной визуализации ИММ УрО РАН, доцент КИПУ, кандидат технических наук Екатеринбург 2011 Реферат Уросов А. П. РАЗРАБОТКА МЕТОДИК ВИЗУАЛИЗАЦИИ ДЛЯ ПРЕДСТАВЛЕНИЯ РАБОТЫ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ, квалификационная работа на степень бакалавра наук. Ключевые слова: Визуализация параллельных вычислений, Система RiDE, Параллельное программирование. Объект исследования: система RiDE, разрабатываемая для программирования в параллельных распределённых средах. Цель работы: разработка методик визуализации для представления работы параллельных программ, написанных для системы RiDE. Разработка программы-визуализатора. В процессе работы проводился анализ возможностей для визуализации работы программы, написанной для системы RiDE. Выбирались сущности и события, на основе которых можно сделать комплексную визуализацию работы программы. В результате работы разработана программа, предназначенная для визуализации работы параллельной программы для системы RiDE. Содержание ВВЕДЕНИЕ………………………………………………………………………………………………………..4 ВИЗУАЛИЗАЦИЯ ПАРАЛЛЕЛЬНЫХ ВЫЧИСЛЕНИЙ…………………………………………..6 СИСТЕМА RiDE…………………………………………………………………………………………………. МЕТОДИКА ВИЗУАЛИЗАЦИИ………………………………………………………………………….. ОПИСАНИЕ ВИЗУАЛИЗАТОРА…………………………………………………………………………. ЗАКЛЮЧЕНИЕ………………………………………………………………………………………………….. ЛИТЕРАТУРА……………………………………………………………………………………………………. Введение Современный уровень развития информационных технологий требует принципиально новых средств разработки программного обеспечения. Переломным моментом стало появление на массовом рынке персональных компьютеров, имеющих многоядерные центральный и графический процессоры. Теперь, чтобы написать программу, эффективно использующую ресурсы компьютера, программисту необходимо также заботиться и о ее распараллеливании. Однако написание параллельной программы является значительно более сложным процессом, чем традиционное последовательное программирование. Усложняется и отладка программы, так как возникают новые классы ошибок, связанные, во-первых, с множеством отдельных потоков управления (процессов), которые выполняются одновременно, а во-вторых, с асинхронными взаимодействиями этих потоков управления друг с другом. В программировании для суперкомпьютеров и рабочих станций, которые изначально строились как параллельные многопроцессорные системы, так же произошли качественные изменения. Связаны они как с существенным увеличением количества процессоров, так и с применением процессоров разного типа. Современный суперкомпьютер может насчитывать десятки тысяч как многоядерных центральных процессоров (CPU), так и графических процессоров (GPU), которые в свою очередь так же являются сложными параллельными процессорами, состоящими из тысяч вычислительных блоков. Разработка программного обеспечения для таких гибридных систем сильно осложняется большим количеством вычислительных блоков, а так же, что более существенно, различиями в подходах к программированию для центральных и графических процессоров. Вследствие этого очень остро встают проблемы сложности разработки и контроля правильности выполнения программы. Решение этих проблем требует комплексного подхода, включающего в себя создание средств разработки, отладки и контроля выполнения программы. Поэтому создание средств визуализации для подобных систем является очень актуальной задачей. Моя работа относится к области визуализации программного обеспечения параллельных и распределенных систем. Использование средств визуализации повышает эффективность разработки (средства визуального программирования) и отладки (визуальные отладчики) параллельных программ. Существующие программные среды параллельных вычислений основываются по большей части на парадигме передачи сообщений или использования общей памяти. В то же время идут разработки других систем, основывающихся на модели потока данных. В частности, исследования по таким программным средам проводятся в Институте математики и механики Уральского отделения РАН. Моей задачей была разработка методик визуализации для разрабатываемой в ИММ УрО РАН системы RiDE, предназначенной для программирования в параллельных распределённых средах. Визуализация параллельных вычислений Система RiDE Распространенные средства параллельного программирования, такие как MPI и OpenMP, требуют от программиста подробного описания большого количества сущностей. Необходимо заботиться о распределении вычислительных задач, синхронизации и обмене данными. В связи с этим, программирование с использованием этих средств является трудоемкой задачей, занимающей существенную часть рабочего времени. Программы создаются долго, получаемые коды сложны и громоздки, их сопровождение и развитие оказывается затратным процессом. Другой проблемой распространенных средств параллельного программирования является их ориентация на конкретные классы вычислительных систем, таких как системы с общей памятью, кластерные системы или распределенные системы. Программы, написанные с помощью таких средств, способны выполняться на предназначенном для них типе параллельной системы, но не способны эффективно работать с системой другого типа. Кроме того, данные средства, как правило, не содержат встроенной поддержки ускорителей (GPU, ПЛИС и т.д.), а также концепций облачных вычислений и SaaS. Поэтому особый интерес представляет создание такого универсального средства, которое бы обеспечивало возможность разработки и эффективного исполнения программ во всех типах вычислительных сред, а также в их смешанных конфигурациях. RIDE - это методика и основанная на ней система для программирования в параллельных распределённых средах. Главные критерии, на которые ориентировались авторы при ее разработке, следующие:
Методика базируется на понятиях хранилища, задач и правил. Хранилище содержит в себе именованные данные, по отношению к которым доступны три операции – создание (запись), чтение и удаление. Хранимые данные являются самодостаточными - это не очереди, но некие цельные единицы информации с уникальными именами. Допускаются операции частичного чтения данных. Задачей называется программа, которая во время исполнения считывает данные с определенными именами из хранилища и в результате своего исполнения формирует новые данные, которые записываются в хранилище. Правилом называется такая конструкция, которая определяет условия и параметры запуска задач. Правило содержит в себе:
Правило считается готовым к исполнению, когда в хранилище присутствуют все данные с именами из списка (1). После успешного исполнения правило удаляется из списка выполняемых правил. Рис. 1. Участники процесса вычислений в RiDE На Рис. 1 представлена общая схема участников описываемой методики. В центре находится хранилище. Белым выделены данные, которых в хранилище пока нет, серым - которые уже есть. Показан пример правила, которое гласит: при наличии данных X1 и Y1 необходимо запустить программу Calc1.exe, подать ей на вход эти данные, а результат работы записать в данные с именем X2. Показано и другое правило, которое требует выполнить другую программу при наличии элемента данных с именем X2. Очевидно, что это правило сработает только после того, как будет завершено первое правило. Это отмечено с помощью пунктира, который говорит, что обозначенный запуск и как результат порождение новых данных пока невозможно, но свершится в будущем. Вполне вероятно, что на рисунке есть и правила, которые могут выполняться независимо от представленных двух. Степень независимости и определяет меру параллелизма, с которой может быть произведено вычисление. Процесс программирования и проведения вычислений в рамках RiDE происходит следующим образом. Прежде всего, разрабатываются программные коды задач, из которых состоит вычислительный эксперимент. Каждая такая задача на этапе инициализации должна считать данные из хранилища, а затем по ходу выполнения сформировать и записать новые данные в хранилище. Отметим, что в рамках одного вычисления могут использоваться любые комбинации языков, а также целевых аппаратных сред для создания задач. Например, часть задач можно реализовать на графических ускорителях, а часть – на обычных процессорах. После создания вычислительных программ (задач) программистом формируется файл инициализации, в котором описываются начальные правила системы. В дальнейшем эти правила могут дополняться – при выполнении задач или финализации правил. Кроме правил, в файле инициализации указываются начальные данные, которые помещаются в хранилище. После подачи команды на запуск вычислительная среда ищет правила, готовые к исполнению, и запускает указанные в них задачи на подходящих свободных вычислительных ресурсах. В результате часть правил исполняется, формируя новые данные и освобождая ресурсы для других правил. Среда продолжает поиск и выполнение правил вплоть до исчерпания всех правил, приостановки работы с внешней стороны или выявления ошибки. Программная реализация предлагаемой методики способна обеспечить следующие преимущества:
Методика визуализации Исходя из подробного анализа описания системы RiDE, можно разработать методику, основанную на визуализации базовых для нее понятий хранилища, задач и правил. В первую очередь необходимо реализовать отображение хранилища. Хранилище является одним из главных базовых понятий системы и должно занимать в визуализации центральное место. Само понятие хранилища является абстрактным, то есть нас не интересует его конкретная реализация, поэтому мы будем отображать его как неупорядоченный набор данных. Хранилище размещается в центре экрана и при полном заполнении данными имеет форму квадратной матрицы. При неполном заполнении в хранилище появляются пустые места, которые могут быть в любом месте. Связано это с возможностью удаления более не нужных данных из хранилища. Система RiDE не выполняет эту процедуру автоматически, поэтому о “сборке мусора” необходимо заботиться программисту самостоятельно. При добавлении новых данных в хранилище они размещаются по порядку на свободные места, начиная с левого верхнего угла. Безусловно, такая форма представления хранилища не имеет ничего общего с его реальным устройством, однако обеспечивает С понятием хранилища неразрывно связано понятие данных, которые в нем содержатся. Было решено отображать данные как маленькие цветные шарики с границей. Такое представление данных очень наглядно: Описание визуализатора Программа-визуализатор RideVis написана на языке C# с использованием технологии Windows Presentation Foundation (WPF). Для ее работы необходима операционная система Microsoft Windows и программная платформа Microsoft .NET Framework 3.5 или выше. Окно программы представлено на рисунке 1. Рисунок 1 Интерфейс программы состоит из трех полей для ввода параметров и кнопки начала отображения визуализации. Первым параметром задается путь к файлу с историей выполнения программы для системы RiDE. По умолчанию размещается в текущем каталоге с программой. Данный файл создается самой системой RiDE при выполнении некоторой программы, процесс работы которой необходимо визуализировать. Вторым параметром задается интервал времени в миллисекундах, в течение которого прочитанные данные находятся вокруг процессов, после чего исчезают. В качестве третьего параметра выступает скорость визуализации. Это число с плавающей запятой: 0,1 0,5 1 2 и т. д. Устанавливает, во сколько раз скорость визуализации будет отличаться от номинальной (от 1). Рассмотрим формат файла с историей выполнения программы. В первой строке задается количество процессоров в системе. Далее следует описание начального состояния хранилища: во второй строке указывается количество начальных данных в хранилище и в следующих строках перечислены их имена по одному имени в каждой строке. Все имена должны быть уникальными. Пример: 4 - количество ядер в системе 36 - количество данных в хранилище Test1 - имена данных в хранилище Test2 Test3 Test4 Test5 Test6 Test7 ……… Test36 Далее перечислены события, произошедшие в ходе выполнения визуализируемой программы. Эти события являются командами для программы-визуализатора. Общий формат команды имеет следующий вид: время в миллисекундах от старта программы | тип события | дополнительные параметры | дополнительные параметры | … Для каждого типа событий предусмотрен свой формат команды. Подробно рассмотрим каждый из них:
время|тип события|имя процесса|номер процессора Пример: 1000|ps|Prosess1|0 2000|ps|Prosess2|2 3000|ps|Prosess3|1
время|тип события|имя процесса Пример: 11000|pt|Prosess3 12000|pt|Prosess1 13000|pt|Prosess4
время|тип события|имя процесса|имя данного из хранилища Пример: 4340|pr|Prosess3|Data1 4350|pr|Prosess3|Data2 4360|pr|Prosess3|Data3
время|тип события|имя процесса|имя данного Пример: 5340|pw|Prosess2|Data42 5350|pw|Prosess2|Data43 5360|pw|Prosess1|Data44
время|тип события|имя данного Пример: 8000|da|Data37 9000|da|Data38
время|тип события|имя данного из хранилища Пример: 10000|dd|Data1 В каждый момент времени имена данных в хранилище должны быть уникальными. Перейдем к рассмотрению визуализации работы программы. Рассмотрим Рисунок 2. В центре окна размещается хранилище, состоящее из набора начальных данных. Начальные данные отображаются как маленькие белые шарики с черной границей. Вокруг хранилища показаны орбиты, количество которых совпадает с количеством процессоров в системе. Каждая орбита соответствует одному определенному процессору и не меняет свое значение в процессе работы. |
Литература по психологии,классичес Альдебаран-крупнейшая электронная библиотека on-line- художественная, учебная и техническая литература и книги различных жанров:... | Литература чувашская литература Чувашский государственного университет имени И. Н. Ульянова по специальности русский язык и литература | ||
“ Литература + литература” Идея проведения данного урока взята из газеты “Литература” (приложение к газете “Первое сентября”,№13 за 1998 год, страница 1) | Программа по формированию навыков безопасного поведения на дорогах... Литература и история. Литература как искусство слова. Литература и другие виды искусства | ||
Программа по формированию навыков безопасного поведения на дорогах... Литература и история. Литература как искусство слова. Литература и другие виды искусства | Литература 1 Русская литература. Мультимедийная энциклопедия. 8-11... Математика. Учебное электронное издание. 5-11. Новые возможности для усвоения математики | ||
ЛИТЕРАТУРА К КУРСУ "ФИЛОСОФИЯ" ОСНОВНАЯ ЛИТЕРАТУРА и ДОПОЛНИТЕЛЬНАЯ ЛИТЕРАТУРА | "Литература народов России" (Кабардино-черкесская литература) ... | ||
Тема урока. Основное содержание Введение. Судьба России в XX веке. Основные направления, темы и проблемы русской литературы XX века. Русская советская литература;... | Программа по формированию навыков безопасного поведения на дорогах... Литература и жизнь. Литература как искусство слова. Вымысел. Литература как учебный предмет | ||
Литература Тема: Человек и история в поэме А. С. Пушкина «Медный всадник» Учебно-методическое обеспечение: учебник 10 класс литература Коровина В. И. Литература. 10 класс, Москва Просвещение. 1часть. 2012... | Рабочая программа по литературе составлена на основе программы "Литература.... Литература. 5-11 класс" под ред. Г. И. Беленького. Реализуется в учебнике "Литература. 11 класс: Учебник для общеобразовательных... | ||
Список бесплатных электронных библиотек Альдебаран крупнейшая электронная библиотека on-line художественная, учебная и техническая литература и книги различных жанров: детективы,... | Родная литература Рабочая программа по литературе для 5 класса к учебнику «Родная литература» (Ана литература) 5 класс. Авторы: (Суюнчев А., Азаматова... | ||
Рабочая программа учебного предмета: «Литература» «Литература» под редакцией В. Я. Коровиной (Программы для общеобразовательных учреждений. Литература. 5-11 кл. Авторы: В. Я. Коровина,... | Рабочая программа педагога по курсу «Литература» Литература 5 – 11 классы/ под редакцией Г. И. Беленького. – 4-е изд., перереб. – М.: Мнемозина, 2009. – 110с и ориентирована на использование... |