
- •Введение
- •Порядок выполнения и защиты лабораторных работ
- •Лабораторная работа №1. Определение параметров n-мерных коммутационных структур вс типа гиперкуб, тор и циркулянт
- •Приведение схем алгоритмов к виду, удобному для организации параллельных вычислений.
- •Использование граф-схем для представления параллельных алгоритмов
- •Определение контуров в граф-схеме алгоритма
- •Лабораторная работа №4. Построение матрицы логической несовместимости операторов
- •Лабораторная работа №5. Построение множеств взаимно независимых операторов
- •Лабораторная работа №6. Определение ранних и поздних сроков окончания выполнения операторов и оценка снизу требуемого количества процессоров и времени решения задачи на вс
- •Лабораторная работа №8. Написание программ с использованием библиотеки mpi
- •Определение характеристик таймера
- •Приём и передача сообщений
- •Определения структуры приходящего сообщения
- •Определение базовых характеристик коммуникационной сети
- •Анализ тупиковых ситуаций при обмене
- •Организация передачи-приёма сообщений без блокировки
- •Реализация отложенных запросов на взаимодействие
- •Сравнительная оценка различных способов обмена данными
- •Использование глобальных операций в mpi
- •Взаимодействие процессов в mpi
- •Оглавление
Введение
Параллельные вычислительные системы (ВС) являются одними из самых перспективных направлений увеличения производительности вычислительных средств. При решении задач распараллеливания существует два подхода:
Имеется параллельная система, для которой необходимо подготовить план и схему решения поставленной задачи, т.е. ответить на следующие вопросы о том, в какой последовательности будут выполняться программные модули, на каких процессорах, как происходит обмен данными между процессорами, каким образом минимизировать время выполнения поставленной задачи.
Имеется класс задач, для решения которых необходимо спроектировать параллельную вычислительную систему, минимизирующую время решения поставленной задачи, при минимальных затратах на её проектирование.
При создании параллельных вычислительных систем учитываются различные аспекты их эксплуатации, такие как множественность решаемых задач, частоту их решения, требования к времени решения и т.д., что приводит к различным структурным схемам построения таких систем. Перечислим их в порядке возрастания сложности:
однородные многомашинные вычислительные комплексы (ОМВК), которые представляют собой сеть однотипных ЭВМ;
неоднородные многомашинные вычислительные комплексы (НМВК), которые представляют собой сеть разнотипных ЭВМ;
однородные многопроцессорные вычислительные системы (ОМВС), которые представляют собой ЭВМ с однотипными процессорами и общим полем оперативной памяти или без него;
неоднородные многопроцессорные вычислительные системы (НМВС), которые представляют собой системы с разнотипными процессорами и общим полем оперативной памяти или без него.
В лабораторном практикуме ставится задача познакомить студентов с основными алгоритмами, используемыми при проектировании параллельных вычислительных комплексов и систем. В частности, в первой лабораторной работе рассматриваются коммутационные структуры типа циркулянт, обобщенных гиперкубов и n-мерных торов. Вторая лабораторная работа посвящена преобразованию последовательных алгоритмов в параллельные. Третья и четвёртая – получению всех необходимых для решения задач распараллеливания матриц, таких как матрица следования, матриц логической несовместимости и независимости и т. д. В пятой лабораторной работе определяются множества взаимно независимых операторов. В шестой – определяются ранние и поздние сроки выполнения операторов, а также оценка требуемого количества процессоров и времени решения поставленной задачи на вычислительной системе. В седьмой лабораторной работе изучаются методы подключения к ВС типа кластер из локальной сети кафедры с прогоном двух простых примеров, В восьмой – решается на кластере программа средней сложности. Все основные определения и большинство алгоритмов имеются в литературе [1, 2, 5]. Для знакомства с реально работающими вычислительными системами можно обратиться к литературе [5].
При выполнении лабораторных работ (1–6) рекомендуется использовать среду программирования Delphi. Это позволит избежать многих проблем при реализации интерфейса взаимодействия с пользователем. В частности, алгоритмы и графы удобнее отображать с помощью компонента TImage. Используя TImage.Canvas, можно непосредственно «рисовать» на этом элементе граф, а при помощи обработчиков событий onMouseClick, onMouseOver и т.п. можно запрограммировать возможность интерактивного создания и редактирования графа на «холсте». При реализации программы в средах, подобных Delphi, наилучшим способом удобного отображения матриц со скроллингом является компонент TStringGrid. Используя свойство TStringGrid.Cells[y,x], можно записывать различные значения в ячейки матрицы. Для придания матрице «правильного» вида необходимо подкорректировать значения TStringGrid.DefaultColWidth и TStringGrid.DefaultRowHeight. При выполнении седьмой, восьмой работы следует внимательно изучить операционную систему LENUX соответствующей модификации и библиотеку MPI – cтандарта.