Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Параллелизм независимых ветвейСодержание книги
Поиск на нашем сайте
Суть параллелизма независимых ветвей состоит в том, что в программе решения большой задачи могут быть выделены программные части, независимые по данным. В параллельных языках запуск параллельных ветвей осуществляется с по- мощью оператора FORK M1, M2,..., ML, где M1, M2,..., ML — имена незави- симых ветвей. Каждая ветвь заканчивается оператором JOIN (R,K), выполнение которого вызывает вычитание единицы из ячейки памяти R. Так как в R пред- варительно записано число, равное количеству ветвей, то при последнем сраба- тывании оператора JOIN (все ветви выполнены) в R оказывается нуль и управ- ление передается на оператор K. Иногда в JOIN описывается подмножество ветвей, при выполнении которого срабатывает этот оператор. Рассмотрим при- мер задачи с параллелизмом ветвей. Пусть задана система уравнений:
Эту систему можно вычислять методом итераций по следующим формулам (n=3):
Функции F 1...F 3 из-за их различной программной реализации должны вы- числяться отдельными программными сегментами, которые можно использо- вать как ветви параллельной программы. Соответствующая параллельная про- грамма имеет вид:
L FORK M1, M2, M3 M1 Z1 = F1 (X1, X2, X3) JOIN (R, K) M2 Z2 = F2 (X1, X2, X3) JOIN (R,K) M3 Z3 = F3 (X1, X2, X3) JOIN (R, K) K IF (ABS(Z1-X1)<ε)AND(ABS(Z2-X2)<ε)AND(ABS(Z3-X3)<ε) THEN вывод результатов; STOP ELSE X1=Z1; X2=Z2; X3=Z3; GO TO L
Если при выполнении оператора JOIN оказалось, что R ≠ 0, то вычисления в данной ветви останавливаются, но могут быть запущены повторно, если условие в операторе K не выполняется. Этот процесс представлен на рис.
Для приведенного примера характерны две особенности: 1. Присутствует синхронизация процессов, для которой используются оператор JOIN и ячейка R. Состояние R = 0 свидетельствует об окон- чании процессов разной длительности. 2. Производится обмен данными (обращение за X i из разных ветвей).
Параллелизм вариантов. Это частный, но широко распространенный на практике случай параллелизма независимых ветвей, когда производится решение одной и той же задачи при разных входных параметрах, причем, все варианты должны быть получены за ограниченное время. Параллелизм вариантов отличается от идеологии крупнозернистого парал лелизма. Отличие состоит в том, что в случае крупнозернистого параллелизма вычисления проводятся внутри одной задачи и требования к скорости обмена между частями задачи достаточно высокие. В параллелизме вариантов распараллеливаются целые задачи, обмен между которыми в принципе отсутствует. Системы распределенных вычислений идеальны для решения таких задач.
Эффективность параллельных вычислений (закон Амдала) Закон Амдала. Одной из главных характеристик параллельных систем яв ляется ускорение R параллельной системы, которое определяется выражением: R = T 1 / Tn, где T 1 − время решения задачи на однопроцессорной системе, а T n − время решения той же задачи на n − процессорной системе. Пусть W = W ск + W пр, где W − общее число операций в задаче, W пр − число операций, которые можно выполнять параллельно, а W cк − число скаляр- ных (нераспараллеливаемых) операций. Обозначим также через t время выполнения одной операции. Тогда получаем известный закон Амдала:
Здесь a = W ск / W − удельный вес скалярных операций. Закон Амдала определяет принципиально важные для параллельных вычислений положения: • Ускорение зависит от потенциального параллелизма задачи (величина а) и параметров аппаратуры (числа процессоров n). • Предельное ускорение определяется свойствами задачи. Пусть, например, a = 0,2 (что является реальным значением), тогда ускорение не может пре- восходить 5 при любом числе процессоров, то есть максимальное ускорение определяется потенциальным параллелизмом задачи. Если система имеет несколько архитектурных уровней с разными формами параллелизма, то качественно общее ускорение в системе будет: R = r1*r2*r3, где ri - ускорение некоторого уровня.
|
||||
Последнее изменение этой страницы: 2016-04-08; просмотров: 253; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.199.182 (0.008 с.) |