Ответы к экзамену (2) (547585), страница 3
Текст из файла (страница 3)
По связанностиa. Сильносвязанныеb. Слабосвязанные4. По централизации управленияa. централизованныеb. смешанныеc. децентрализованныеОрганизация коммутации·Одна общая шина·Несколько шин + коммутатор10·Коммутатор кольцевого типа·Коммутатор в виде полного графа Коммутатор “звезда”Коммутатор “Гиперкуб”Fat treeКоммутатор решетка11Архитектура с общей памятью···Многовходовая памятьСм. выше.Многопроцессорная ВСТопология типа “Butterfly”124. Формы и характеристики параллелизма. Распараллеливаниепоследовательных программ.
Критерии и параметры сложностипараллелизма.Типы параллелизма1. На уровне битов -- эта форма параллелизма основана на увлечении размера машинногослова2. На уровне инструкций -- некоторые инструкции можно выполнять параллельно. Этопонятие также включает в себя:a.
Конвейер коммандb. Суперскалярность -- архитектура вычислительного ядра, использующая несколькодекодеров команд, которые могут загружать работой множество исполнительных блоков.Планирование исполнения потока команд является динамическим и осуществляется самимвычислительным ядром.3. Параллелизм данных -- одна операция выполняется сразу над всеми элементами массиваданных. Различные фрагменты такого массива обрабатываются на векторном процессоре илина разных процессорах параллельной машины. Распределением данных между процессорамизанимается программа. Векторизация или распараллеливание в этом случае чаще всеговыполняется уже на этапе компиляции — перевода исходного текста программы в машинныекоманды.
Роль программиста в этом случае обычно сводится к заданию настроек векторной илипараллельной оптимизации компилятору, директив параллельной компиляции, использованиюспециализированных языков для параллельных вычислений.4. Параллелизм задач -- Стиль программирования, основанный на параллелизме задач,подразумевает, что вычислительная задача разбивается на несколько относительносамостоятельных подзадач и каждый процессор загружается своей собственной подзадачей.Характеристики паралеллизма●●Ускорение.
C(N)=t(1)/t(N)Эффективность. E(N)=C(N)/N●Закон Амдаля. C(N)=a -- доля последовательных вычисленийФормы параллелизмаЯвный – существуют специальные средства ЯП для отражения параллелизма(распараллеливанием занимается программист)Неявный – параллелизм функциональных или логических программ (распараллеливаниемзанимается сам программный инструмент)Коммутативный – означает, что независимые элементы (операторы, функции, предгикаты и т.п.)могут выполняться в произвольном порядке, не меняя общего результата выполнения программы.Некоммутативный – напротив, предполагает, что только параллельное выполнениенезависимых элементов программы гарантирует правильность получения результата.Ограниченный – означает, что при любом выполнении программы (при любом примененииее к исходным данным) число ее компонентов, которые могут одновременно выполняться непревышает некоторое натуральное число, равное к.Если такого к не существует, то программа имеет неограниченный параллелизм.Строгий параллелизм связан с теми компонентами программы, которые существенны дляформирования результата ее выполнения.13Откладываемый параллелизм часто называют также упреждающим, относя его к темнезависимым компонентам программ, о которых заранее нельзя сказать, результаты выполнениякаких из них будут использоваться в дальнейшемIf p1(x)&p2(x) then f1(x) else f2(x)Можно считать p1, p2, f1, f2 одновременно, причем f1 и f2 с упреждением.Детерминированный – статически заданныйНедетерминированный – динамически порождаемый в процессе выполнения.Синхронный - одновременность выполнения актов строго синхронизуется.Синхронизация по концу выполняется если А2 и А3 должны быть завершены к началу А4Синхронному параллелизму в ЯП соответствует конструкция: А1; parbegin A2;A3; parend; A4Асинхронный.
Начало и конец А2 и А4 полностью не синхронизированные.А2 и А4 – полностью асинхронныСинхронный параллелизм просто реализуется, но его возможности ограничены.Асинхронный параллелизм более мощен, но его реализация сложнее.Пространственный параллелизм основан на независимости различных компонентов программы.Временной параллелизм основан на конвейризации вычислений.Конвейер – самая экономичная схема с точки зрения загрузки ресурсов (каждая единица всегдаработает).
Пространственный параллелизм более объемен.Крупнозернистый – мелкозернистый. Характеризует глубину параллелизма в программе приреализации на конкретной вычислительной системе.Глубина распараллеливания - Глубина распараллеливания формально отражает используемоев параллельном программировании понятие granularity (зернистость). Введем следующиеобозначения пусть d - глубина распараллеливания, а функцию, определяющую коэффициентускорения будем обозначать c(x1…xn, d, k), вводя d в качестве ее параметра. 1/d - степеньраспараллеливания, которая характеризует усредненное количество компонентов параллельнойпрограмм, выполняемых одновременно.Определение. Глубиной распараллеливания d назовем усредненную вычислительную сложностькомпонентов, которые рассматриваются в параллельной программе как самостоятельныепроцессы, идентифицируемые и планируемые при ее выполнении на ВС.Обратную к d величину определим как степень распараллеливания, характеризующуюусредненное количество компонентов параллельной программы, которые могут выполнятьсяодновременно.Ширина максимального яруса определяет наименьшее количество компьютеров ВС, которыйпозволяет выполнять параллельный алгоритм без задержек из-за недостатка ресурсов.Эффективность использования ресурсов – показывает, насколько эффективно используютсяресурсы сети.
Часто используют C(x1…xn, k)/k <= 1.145. Процессные модели. Сети Петри как модель параллельныхпроцессов и ее расширения.Процесс — выполнение пассивных инструкций компьютерной программы на процессореЭВМ. Стандарт ISO 9000:2000 Definitions определяет процесс как совокупность взаимосвязанных ивзаимодействующих действий, преобразующих входящие данные в исходящие.Процесс - дискретное выполнение заранее определенного множества элементарныхдействий. (а->b->...).Время выполнения такого действия может быть измерено с какой то точностью.(Дискретная шкала времени).6.
Язык граф-схемного потокового параллельного программирования.Модель параллельного выполнения программ. Сравнение с MPI.Язык граф-схемного параллельного потокового программирования (ЯГСПП) ориентированна крупноблочное (модульное) потоковое программирование задач. Он также может эффективноприменяться для моделирования распределенных систем, систем массового обслуживания идр., то есть систем, информационные связи между компонентами которых структурированы иуправляются потоками данных, передаваемых по этим связям.Язык позволяет эффективно и единообразно представлять в программах три видапараллелизма:-параллелизм информационно-независимых фрагментов;потоковый параллелизм, обязанный своим происхождением конвейерному принципуобработки данных;параллелизм множества данных (SIMD параллелизм в классификации Флинна).Важными с позиции программирования особенностями ЯГСПП являются возможностивизуального графического представления программы и простого структурирования, отражениядекомпозиционной иерархии при ее построении путем использования отношения «схемаподсхема».Описание языкаЯГСПП формально можно представить в виде пары языков 〈ЯГС, ЯИ〉, где ЯГС – языкпредставления граф-схем, ЯИ –язык интерпретации.
Таким образом, граф-схемная параллельнаяпрограмма (ГСПП) задается ввиде двух компонентов 〈ГС, I〉, где ГС – граф-схема программы наЯГС, отражающая в модульной форме декомпозиционную структуру задачи, и I – интерпретация,сопоставляющая каждому модулю ГС подпрограмму на одном из ЯИ.1.1. О п р е д е л е н и е Г С. Пусть М = {〈mi, ini, outj〉 | i = l, 2, …} – не более чем счетноемножество модулей (базисное множество), где mi – имя модуля, ini и outi – упорядоченныемножестваили кортежи входных точек (входов) и выходных точек (выходов) модуля mi.В общем случае у модуля может быть несколько групп входов. В связи с представлением вГСПП условных конструкций входные и выходные точки модулей разделяются на две группы,образуя два кортежа безусловных и условных входов. Точки кортежа безусловных входовизображаются в виде круглых точек, а точки безусловного кортежа – в виде квадратных точек.