Параллельное программирование: Учебное пособие, страница 52

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

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

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

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

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

2.6  Вопросы для самоконтроля

1.  Почему процессы, исполняемые по одной и той же программе, но на разных процессорах, “плывут” во времени относительно друг друга?

2.  Чем отличается параллельное программирование от обычного, распределенного и конкурентного?

3.  Каков механизм запуска операторов используется в параллельно исполняемых процессах?

4.  Какие выводы можно сделать при анализе формальной модели ускорения параллельного алгоритма?

5.  Что представляет собой алгоритм сдваивания и для каких выражений и видов обработки данных его удобно применять?

6.  Как распараллеливаются рекуррентные выражения и циклы?

7.  Что представляет собой граф информационной зависимости задачи и как его можно описать ориентированным графом?

8.  Каков смысл и алгоритм лексикографического упорядочения орграфа задачи? Что при упорядочении произойдет с матрицей смежности?

9.  Какую информацию заключают в себе ранние и поздние сроки окончания выполнения операторов и для чего их можно использовать?

10.  Какие критерии используются в задаче оптимального размещения процессов по процессорам?

11.  Что такое “критическая секция” и как защищают общие данные от одновременного обращения к ним нескольких процессов?

12.  Какие параметры современных многопроцессорных систем позволяют эффективно выполнять параллельную вычислительную обработку?