glava1 (Лобусов Е.С. Теоретические основы параллельных вычислений)

2017-12-22СтудИзба

Описание файла

Файл "glava1" внутри архива находится в следующих папках: Лобусов Е.С. Теоретические основы параллельных вычислений, Теоретические основы. Документ из архива "Лобусов Е.С. Теоретические основы параллельных вычислений", который расположен в категории "". Всё это находится в предмете "параллельное программирование" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "книги и методические указания", в предмете "параллельное программирование" в общих файлах.

Онлайн просмотр документа "glava1"

Текст из документа "glava1"

Московский Государственный Технический Университет

имени Н. Э. Баумана

















Лобусов Е. C.







“Теоретические и алгоритмические основы параллельной

обработки”.

























1999 г.

Содержание.

Введение…………………………………………………………………………..3

1. Способы организации параллельной обработки…………………………..…9

2. Способы описания алгоритмов обработки вычислительных сетей……….12

2.1. Предварительные математические сведения…………………………….12

2.1.1. Теоретико-множественные понятия…………………………………..12

2.1.2. Некоторые понятия теории графов…………………………………..14

2.1.3. Наиболее распространенные алгоритмы на графах………………....19

2.2. Представление алгоритмов обработки…………………………………...24

2.2.1. Представление численных процедур интегрирования……………....28

2.3. Представление вычислительных сетей…………………………………..32

2.3.1. Представление процессоров с совмещением вычислений и ввода-вывода……………………………………………………………………………...35

3. Методы отображения алгоритмов обработки……………………………….37

3.1. Статистические методы…………………………………………………...37

3.1.1. Распределение компонент алгоритма обработки…………………….37

3.1.1.1. Распределение алгоритмов обработки, основанных на методах численного интегрирования. …………………………………………………….42

3.1.1.2. Некоторые общие замечания по распределению…………………47

3.1.2. Составление расписания………………………………………………48

3.1.2.1. Составление расписания для процессоров с совмещением операций ввода-вывода………………………………………………………………....53

3.1.2.2. Составление расписания ля процессоров с совмещением операций ввода-вывода и квазипараллельной работой (обработкой)……………….54

3.2. Динамические методы……………………………………………………55

4. Программная реализация и сравнение параллельных алгоритмов………..60

5. Дискретное преобразование Фурье и его параллельная реализация………………………………………………………………………..61

5.1. Основные соотношения и алгоритмы ДПФ…………………………..…61

5.2. Алгоритмы ДПФ для однородных распределённых вычислительных структур……………………………………………………………………………63

Литература……………………………………………………………………….69

Введение.

Введение

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

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

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

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

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

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

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

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

Поэтому представим решение задачи отображения в виде трех уровней:

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

  • алгоритмический (или уровень нахождения алгоритма решения задачи отображения);

  • программный (или уровень реализации найденного решения на сети).

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

Данное представление алгоритма обработки или вычислительной сети приводит к конкретной модели, обычно, в виде ориентированного графа.

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

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

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

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

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

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

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

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

Именно асимптотическая сложность алгоритма определяет в итоге размер задач, которые можно решить этим алгоритмом. Если алгоритм обрабатывает входы размера n за время cn2, где с – некоторая постоянная, то говорят, что временная сложность этого алгоритма есть O(n2) (читается "порядка n2"). Точнее, говорят, что (неотрицательная) функция g(n) есть O(f(n)), если существует такая постоянная с, что g(n)  сf(n) для всех, кроме конечного (возможно пустого) множества, неотрицательных значений n.

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

Допустим, у нас есть пять алгоритмов А1 – А5 со следующими временными сложностями:

Алгоритм Временная сложность

А1 n

A2 nlog2n

А3 n2

А4 n3

А5 2n

Здесь временная сложность – это число единиц времени, требуемого для обработки входа размера n. Пусть единицей времени будет одна миллисекунда. Тогда алгоритм А1 может обработать за одну секунду вход размера 1000, в то время как А5 – вход размера не более 9. В таб.1 приведены размеры задач, которые можно решить за одну секунду, одну минуту и один час каждым из этих пяти алгоритмов.

Таб.1 Границы размеров задач, определяемые скоростью роста сложности.

Алгоритм

Временная

сложность

Максимальный размер задачи

1мин

А1

A2

A3

A4

A5

n

nlog2n

n2

n3

2n

1000

140

31

10

9

6104

4893

244

39

15

3,6106

2,0105

1897

153

21

Предположим, что следующее поколение вычислительных машин будет в 10 раз быстрее нынешнего. В таб.2 показано, как возрастут размеры задач, которые мы сможем решить благодаря этому увеличению скорости. Заметим, что для алгоритма А5 десятикратное увеличение скорости увеличивает размер задачи, которую можно решить, только на три, тогда как для алгоритма А3 размер задачи более чем утраивается.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5160
Авторов
на СтудИзбе
439
Средний доход
с одного платного файла
Обучение Подробнее