на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Разработка графического интерфейса DVM-системы

Разработка графического интерфейса DVM-системы

Содержание

Введение

Глава 1. Распределенные вычислительные системы

Роль распределенных вычислительных систем в решении современных задач

Инструментальная система
DVM для разработки параллельных программ

Глава 2. Графический интерфейс

Что такое графический интерфейс

Требования к графическому интерфейсу

Требования к графическому интерфейсу
DVM-системы

Модель графического интерфейса

Глава 3. Формальная модель графического интерфейса

Средства построения формальной модели графического интерфейса

Формальная модель графического интерфейса

Глава 4. Графический интерфейс DVM-системы - ГРИФ

Как устроен ГРИФ

Детальное описан
ие графического интерфейса ГРИФ

Заключение

Приложение

Список литературы

Введение

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

Глава 1. Распределенные вычислительные системы

Роль распределенных вычислительных систем в
решении современных задач

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

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

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

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

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

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

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

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

Модель передачи сообщений. MPI.

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

- возможность совмещения передачи сообщений и вычислений;

- широкий набор коллективных операций;

- возможность задания типа передаваемой информации;

- широкий набор редукционных операций;

К недостаткам относится то, что интерфейс слишком сложный и громоздкий.

Модель параллелизма по данным. HPF.

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

Модель параллелизма по управлению.
OpenMP.

Эта модель возникла в применении к мультипроцессорам. Вместо термина «нить» она использует специальные конструкции - параллельные циклы и секции. Создание и уничтожение нитей, распределения по ним витков циклов - все это делал сам компилятор.

Инструментальная
система DVM для разработки параллельных программ

В 199
3 году, в институте Прикладной Математики имени М.И.Келдыша РАН, разработана новая модель, объединяющая достоинства прочих. Это - модель DVM. Модель положена в основу языков С-DVM и Fortran-DVM, которые являются расширениями языков C и Fortran, соответственно. Это модель использует сразу два вида параллелизма : по данным и по управлению. Программист сам, под свою ответственность распределяет между процессорами блоки данных и вычисления. Также самостоятельно программист указывает общие блоки памяти, доступные одному процессу на запись, а остальным на чтение, определяет точки обновления таких общих блоков памяти и вручную распределяет между процессами витки циклов. Также модель имеет набор редукционных операций. Таким образом, вся ответственность за правильное распределение данных и вычислений лежит на самом программисте, но это, в то же самое время, дает ему огромную свободу при распределении задачи, делая DVM-модель гибкой.

Я
зыки параллельного программирования C-DVM и Fortran-DVM представляют собой стандартные языки расширенные спецификациями параллелизма, причем, эти спецификации прозрачны для стандартных компиляторов. Это значительно упрощает понимание программ, их использование (в последовательном варианте программа может прогоняться на любой машине), и отладку.

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

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

· Параллельная программа на исходном языке Фортран-DVM (или Си-DVM) превращается в программу на языке Фортран 77 (или Си), содержащую вызовы функций системы поддержки, и выполняющуюся в соответствии с моделью SPMD (одна программа - много данных) на каждом выделенном задаче процессоре.

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

· Многопроцессорной системой (или системой процессоров) называется та машина, которая предоставляется программе пользователя аппаратурой и базовым системным программным обеспечением. Число процессоров многопроцессорной системы и её представление в виде многомерной решетки задаётся в командной строке при запуске программы.

·
Все объявленные в программе переменные (за исключением специально указанных "распределённых" массивов) размножаются по всем процессорам.

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

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

Разработанная таким образом DVM-система показала при тестировании следующий : эффективность DVM-программ гораздо выше, чем эффективность HPF, и вполне сравнима с эффективностью OpenMP и MPI.

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

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

DVM-система, также имеет средства отладки производительности программ. Система поддержки выполнения DVM-программ во время выполнения программы на многопроцессорной ЭВМ (или однородной сети ЭВМ) накапливает информацию с временными характеристиками в оперативной памяти процессоров, а при завершении выполнения программы записывает эту информацию в файл, который затем обрабатывается на рабочих станциях в среде Windows 95/NT или UNIX специальным инструментом - визуализатором производительности. С помощью визуализатора производительности пользователь имеет возможность получить временные характеристики выполнения его программы с различной степенью подробности.

Страницы: 1, 2, 3



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