Министерство образования Российской Федерации
Московский Государственный технический Университет им. Н.Э. Баумана
Факультет «Аэрокосмический»
Лабораторная работа №2
по теме: «Преобразование последовательного алгоритма в параллельный»
по курсу «Вычислительные системы»
Выполнил
студ. гр. АК5-91 Гукетлев Д.В.
Проверил
к.т.н., доц. Руденко Ю.М.
2011
Цель работы:
Ознакомление с принципами преобразования последовательного алгоритма в параллельный. Составление программы этого преобразования для соответствующего варианта задания.
Ответы на контрольные вопросы:
-
Чем отличается последовательный код от параллельного?
У параллельного кода выделяются параллельные ветви вычислений. Алгоритмы с выделенными параллельными ветвями.
-
Почему символы ввода-вывода данных, а также символы «терминатор» исключены из схемы параллельного алгоритма?
При параллельном выполнении программ окончание алгоритма зависит от составленного плана решения задачи, поэтому символ «терминатор» конца и начала алгоритма надо исключить.
-
Какое правило положено в основу определения зависимости блоков алгоритма по переменным?
Сущность алгоритма преобразования схемы последовательного алгоритма в схему параллельного алгоритма заключается в следующем.
Разобьем последовательный алгоритм на линейные участки, заключенные между логическими операторами. Каждый логический оператор порождает не менее двух линейных участков. Линейный участок, образованный входом в алгоритм логическии оператором, назовем начальным. Начальный участок может содержать несколько операторов. Следующий за начальным участок начинается и заканчивается логическим оператором, т.е. если участок Ui состоит из множества операторов {Lij,ci1,...,cini,Lij+1}, то следующий участок Ui+1 = {Li+1j+1,ci+11,...,ci+1ni+1,Li+1j+2} и т.д., где Lij, Lij+1, Li+1j+1, Li+1j+2 – логические операторы, причем Lij+1 = Li+1j+1 , а ci1,...,cini , ci+11,...,ci+1ni+1 - некоторые операторы. Таким образом, последний логический оператор Lj+1 участка Ui является первым оператором для участка Ui+1. На каждом участке операторы пронумированы: 1, 2, ..., uk. Последние участки - это линейные участки, не имеющие в качестве последнего оператора логических операторов. Пусть в результате такого разбиения образовалось N участков k = 1, ..., N , в каждом из которых оказалось uk операторов.
-
Какие еще зависимости по переменным между блоками алгоритма следует учесть при реализации алгоритма 3.1?
Зависимость параметров логических операторов от результатов работы информационных блоков.
-
Как образуются дополнительные входы в алгоритм?
Дополнительные входы в алгоритм образуются, если блоки, расположенные в начальном линейном участке, в параллельном алгоритме будут располагаться параллельно.
-
Как проводиться разбиение алгоритма на ветви?
Разобьем последовательный алгоритм на линейные участки, заключенные между логическими операторами. Каждый логический оператор порождает не менее двух линейных участков. Линейный участок, образованный входом в алгоритм логическии оператором, назовем начальным. Начальный участок может сожержать несколько оператором. Следующий за начальным участок начинается и заканчивается логическим оператором, т.е. если участок U
i состоит из множества операторов {L
ij,c
i1,...,c
ini,L
ij+1}, то следующий участок U
i+1 = {L
i+1j+1,c
i+11,...,c
i+1ni+1,L
i+1j+2} и т.д., где L
ij, L
ij+1, L
i+1j+1, L
i+1j+2 – логические операторы, причем L
ij+1 =
L
i+1j+1 , а c
i1,...,c
ini , c
i+11,...,c
i+1ni+1 - некоторые операторы. Таким образом, последний логический оператор L
j+1 участка U
i является первым оператором для участка U
i+1. На каждом участке операторы пронумированы: 1, 2, ..., u
k. Последние участки - это линейные участки, не имеющие в качестве последнего оператора логических оператором. Пусть в результате такого разбиения образовалось N участков k = 1, ..., N , в каждом из которых оказалось u
k операторов.
Схема исходного последовательного алгоритма:
Схема преобразованного параллельного алгоритма:
Выводы
В результате проделанной работы мы ознакомились с алгоритмом, позволяющим преобразовывать последовательный алгоритм в параллельный.