профессор, д. ф.-м. наук Крюков В. А. СодержаниеВведение………………………………………………………………………………………..3 Глава 1. Распределенные вычислительные системыРоль распределенных вычислительных систем в решении современных задач …………..4Инструментальная система DVM для разработки параллельных программ……………….7Глава 2. Графический интерфейсЧто такое графический интерфейс…………………………………………………………….10Требования к графическому интерфейсу……………………………………………………..12 Требования к графическому интерфейсу DVM-системы……………………………………13 Модель графического интерфейса…………………………………………………………….15 Глава 3. Формальная модель графического интерфейсаСредства построения формальной модели графического интерфейса……………………..16Формальная модель графического интерфейса………………………………………………17 Глава 4. Графический интерфейс DVM-системы – ГРИФ.Как устроен ГРИФ……………………………………………………………………………...23Детальное описание графического интерфейса ГРИФ. …………………………………….25 Заключение…………………………………………………………………………………….29Приложение…………………………………………………………………………………....30Список литературы ……………………………………………………………….40 Введение.Данная работа посвящена проблемам разработки графического интерфейса для DVM-системы. Задача построения такого интерфейса еще по существу пока не ставилась, поскольку система активно развивалась, и ее интерфейсы заметно менялись. Система базируется на новой языковой модели, в ней реализованы новые методы функциональной отладки программ и отладки эффективности. Практическое использование системы для разработки сложных параллельных программ неизбежно вносило и вносит коррективы в ее алгоритмы и интерфейсы. В настоящее время отсутствие графического интерфейса становится заметным недостатком системы. Однако построение графического интерфейса для сложной программной системы, которая находится в стадии развития, является сложной задачей, решение которой можно существенно упростить путем проектирования обобщенной, формальной модели графического интерфейса DVM-системы. Такая абстрактная модель, позволит оценивать разрабатываемые варианты интерфейса с точки зрения соответствия модели, и проектировать оптимальные интерфейсы. Данная работа предлагает новый инструмент, предназначенный для формализации проектирования новых интерфейсов. В ее рамках был разработан новый интерфейс на языке Java, и проведена его оценка в сравнении с построенной формальной моделью Глава 1. Распределенные вычислительные системыРоль распределенных вычислительных систем в решении современных задач.Последние три столетия преподносили человеку новые, немыслимые до того технологии, определяющие весь ход дальнейшего научно-технического прогресса. Появление в 18-м веке механических машин перевернуло человеческие представления о труде. Паровые машины, изобретенные в 19-м веке, открыли новые мощности. 20-й век был ознаменован появлением вычислительной техники. Это открыло для человека новые, гораздо более эффективные способы хранения, передачи и обработки информации. С появлением этих способов, стали возрастать и потребности. Развитие промышленных технологий ставило задачи построения сложных систем. Аналитическое проектирование стало все меньше подходить для этого. Компьютеры стали использоваться для моделирования процессов и систем. Потребность во все более высокой производительности вычислительных систем стала расти экспоненциально.Существует несколько доступных путей увеличения производительности. Можно улучшить аппаратное обеспечение, используя более высокопроизводительный процессор, можно улучшать программное обеспечение. В первом случае сразу становится виден предел повышения производительности (на каждом этапе развития процессоростроения). Во втором – возникают те же проблемы. Хотя явно нельзя определить «верхний предел» эффективности алгоритма, но и изобретать алгоритмы – дело непредсказуемой сложности.Но есть еще третий путь – параллельные вычисления. Многие алгоритмы хорошо масштабируемы, и потому выполнение их параллельно на нескольких вычислительных устройствах, даёт большой выигрыш в скорости выполнения. И именно этот третий путь, возможно является своеобразным толчком к появлению главного достижения 21-го века – внедрения вычислительных сетей. Однако, параллельные вычисления - только первая ступенька на этом пути. Еще не существует достаточного количества программных средств, позволяющих писать и, что не менее важно, отлаживать параллельные программы. Вообще многопроцессорные системы классифицируются по признаку обмена данными между процессорами. Существуют две основные модели параллельного выполнения программ – модель передачи сообщений, и модель взаимодействия через общую память. В первой модели программа представляет собой систему процессов, взаимодействующих с помощью передачи сообщений. Первая модель может быть использована на любых кластерах. Во второй модели параллельная программа представляет собой систему нитей (thread), взаимодействующих посредством общих переменных и примитивов синхронизации. Нить – это легковесный процесс имеющий с другими процессами общие ресурсы, в том числе – общую оперативную память. Вторая модель может быть использована только на DSM-кластерах, то есть кластерах, на которых аппаратно или программно-аппаратно реализована распределенная общая память, позволяющая выполняющимся на разных узлах программам взаимодействовать через общие переменные. ![]() Однако, обе эти модели в чистом виде были неудобны для разработчика. Они заставляют его иметь дело с параллельными процессами и низкоуровневыми примитивами передачи сообщений или синхронизации. Особенно большие трудности возникают при необходимости использования многоуровневого параллелизма (например, параллелизм между разными подзадачами и параллелизм внутри подзадач). Кроме того, программист обычно вынужден иметь и сопровождать два варианта программы – последовательный и параллельный. В качестве примера можно привести несколько подходов различающихся моделями и языками параллельного программирования. |