ПРИНЦИПЫ ПЕРЕХОДА ОТ ПОСЛЕДОВАТЕЛЬНОГО АЛГОРИТМА К ПАРАЛЛЕЛЬНОМУ. АЛГОРИТМ ПРЕОБРАЗОВАНИЯ ПОСЛЕДОВАТЕЛЬНОГО АЛГОРИТМА В ПАРАЛЛЕЛЬНЫЙ.
Параллельный алгоритм – это описание процесса обработки информации, ориентированного на реализацию с помощью вычислительных систем. Представление параллельного алгоритма на языке программирования, доступном данной ВС, называется параллельной программой. Существует 3 способа распараллеливания сложных задач: 1. Локальное. При локальном распараллеливании в выполняемой программе выделяются участки машинных команд, которые могут выполняться параллельно. 2. Глобальное. Глобальное распараллеливание происходит на уровне программных модулей. 3. Смешанное распараллеливание – наиболее эффективное, совмещает 1 и 2. Приведение схем алгоритмов к виду, удобному для организации параллельных вычислений. При создании параллельных программ будем использовать схемы программ в соответствии с ГОСТ 19.003-80 ЕСПД, ГОСТ 19.701-90 ЕСПД, хотя следует отметить, что создание параллельных процессов в решаемых задачах и отображение их в таких схемах — достаточно трудоемкая работа. В связи с этим предложена следующая процедура создания параллельных схем алгоритмов или программ. Вначале создается схема алгоритма, как это делалось для традиционных вычислительных средств без учета параллельных вычислений. Будем называть такие алгоритмы последовательными. Затем с помощью алгоритма преобразования последовательного алгоритма в параллельный на основе анализа зависимости участков процесса по обрабатываемым переменным выделяются параллельные ветви вычислений. Алгоритмы с выделенными параллельными ветвями и есть параллельные алгоритмы. Введем несколько ограничений на изображение схем алгоритмов с параллельными ветвями: 1. При параллельном выполнении программ окончание алгоритма зависит от составленного плана решения задачи, поэтому символ «терминатор» конца алгоритма надо исключить. 2. Не ограничивая общности рассуждений, можно считать, что при изображении параллельных алгоритмов можно ограничиться логическим символом с двумя выходами: FALSE и TRUE. 3. Традиционное изображение вводимой информации в указанных ГОСТах более или менее приемлемо для ВС с общей памятью и совсем не приемлемо для ВС с разделяемой памятью, так как в этих ГОСТах вводится достаточно искусственная зависимость программных модулей по данным. Эта зависимость существенно сужает возможности распараллеливания решаемой задачи. При рассмотрении ВС с разделяемой памятью ввод-вывод информации включается в процесс обмена информацией между процессорами и таким образом учитывается в планировании вычислительного процесса. Поэтому при рассмотрении ВС с общим полем памяти считается, что вся исходная информация введена в поле общей памяти и на схеме не показывается. Аналогично решаем проблему вывода. Выводимая информация также находится в поле общей памяти. Отсутствие символа вывода (например, параллелограмма) можно объяснить тем, что преобразование и вывод информации не включают в план решения параллельных задач. В связи с этим при преобразовании исходного алгоритма в параллельный опускают символы ввода-вывода информации. Сущность алгоритма преобразования схемы последовательного алгоритма в схему параллельного алгоритма заключается в следующем: Разобьем последовательный алгоритм на линейные участки, заключенные между логическими операторами. Каждый логический оператор порождает не менее двух линейных участков. Линейный участок, образованный входом в алгоритм и логическим оператором, назовем начальным. Начальный участок может содержать только один оператор. Следующий за начальным участок начинается и заканчивается логическим оператором, т. е. если участок Ui, состоит из множества операторов , то следующий участок и т. д., где — логические операторы, причем , а — некоторые операторы (не логические). Таким образом, последний логический оператор участка Ui, является первым оператором для участка Ui+1. На каждом участке операторы перенумерованы: 1,2, …, Uk. Последние участки — это линейные участки, не имеющие в качестве последнего оператора логический оператор. Пусть в результате такого разбиения образовалось N участков k = 1,..., N, в каждом из которых оказалось Uk операторов. Назовем связи, входящие в вычислительный или логический блоки, входными; выходящие из этих блоков — выходными. Будем полагать, что в каждый блок может входить и выходить несколько связей. В анализируемом алгоритме для упрощения анализа зависимости рассматриваемого программного модуля от предыдущих принята следующая схема: анализируемый алгоритм представляет собойпоследовательность программных модулей (процедур и/или функций). Обмен данными между ними происходит только через параметры, указанные в списке при вызове модулей. Результаты работы модули передаются через параметры, формируемые как <имя параметра> ::=<префикс> <имя модуля>. Очевидно, что предлагаемое упрощение не является принципиальным и в случае необходимости легко можно учесть зависимости программных модулей по данным, осуществляемые с помощью понятий глобальных переменных различных уровней.
Популярное: Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (606)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |