Главная » Просмотр файлов » В.А. Фисун - Параллельная обработка данных (2005)

В.А. Фисун - Параллельная обработка данных (2005) (1127758), страница 7

Файл №1127758 В.А. Фисун - Параллельная обработка данных (2005) (В.А. Фисун - Параллельная обработка данных (2005)) 7 страницаВ.А. Фисун - Параллельная обработка данных (2005) (1127758) страница 72019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 7)

Такие участки должны бытьвыполнены в режиме "взаимного исключения", т.е. в каждый момент времени не болеечем один процесс может быть занят выполнением своего, критического относительнонекоторого ресурса, участка. Проблема критического участка - программированиеработы критических участков в режиме взаимного исключения решается с помощьюсемафоров. Общий семафор - это целочисленная переменная, над которой разрешенытолько две неделимые операции P и V.

Аргументом у этих операций являетсясемафор. Определять семантику этих операций можно только для семафоров положительных чисел, или включать и отрицательный диапазон. Операции могутбыть определены так:24P(S) - декремент и анализ семафораS := S-1IF (S < 0) THEN <блокировка текущего процесса>ENDIFV(S) - инкремент семафораS := S+1IF S <= 0 THEN <запустить блокированный процесс>ENDIFP и V операции неделимы: в каждый момент только один процесс можетвыполнять Р или V операцию над данным семафором.Если семафор используется как счетчик ресурсов, то:S >= 1 - есть некоторое количество (S) доступных ресурсов,S = 0 - нет доступного ресурса,S < 0 - один или несколько (S) процессов находятся в очереди к ресурсу.Вводится, также, операция инициализации семафора (присвоение начальногозначения).Общий семафор - избыточный, т.к.

его можно реализовать через двоичныесемафоры, которые принимают только два значения 0,1.Семафоры позволяют:- синхронизировать работу процессов,- управлять распределением ресурсом (использованием положительногодиапазона значений семафора как счетчика ресурсов) ,- организовывать очередь блокированных процессов (отрицательные значениясемафора показывают число блокированных процессов).В системах программирования вводится специальный тип данных, определяющийструктуру семафора, например, SEMAPHOR,SIGNAL,GETA.Использование семафоровbegin integer S; S:=1;parbegintask1: begindo while (true)P(S);<критический участок 1>;V(S);<обычный участок>;enddoend;task2: begindo while (true)P(S);25<критический участок 2>;V(S);<обычный участок>;enddoendparendend26.

Назначение системы МPIГлавные цели создания системы параллельного программирования:Создать интерфейс прикладного программирования для МРР систем;Обеспечить возможность эффективных коммуникаций для коммуникацииточка-точка, коллективных операций, группы процессов.Допускать удобное сопряжение с языками C, Fortran 77, Fortran 90 и C++;Простой способ создания процессов для модели SPMD (одна программаиспользуется для обработки разных данных на разных процессорах);Основные понятия языкаГруппа - упорядоченное (от 0 до ранга группы) множествоидентификаторов процессов Группы служат для указания адресата при посылкесообщений (процесс-адресат специфицируется своим номером в группе),определяют исполнителей коллективных операций. Являются мощнымсредством функционального распараллеливания - позволяют разделить группупроцессов на несколько подгрупп, каждая из которых должна выполнять своюпараллельную процедуру.

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

могутрассматриваться как пара - группа и контекст. Кроме того, они служат и дляцелей оптимизации, храня необходимые для этого дополнительные объекты.Имеются предопределенные коммуникаторы (точнее, создаваемые приинициализации MPI-системы): * MPI_COMM_ALL - все процессы и операциинад группами (локальные, без обмена сообщениями), например, Дай размергруппы. MPI_GROUP_SIZE(IN group, OUT size) Дай номер в группеобратившегося процесса. MPI_GROUP_RANK(IN group, OUT rank)Основные операции - send, receiveОперации могут быть блокирующими и неблокирующими.В операции send задается:26- адрес буфера в памяти;- количество посылаемых элементов;- тип данных каждого элемента;- номер процесса-адресата в его группе;- тег сообщения;- коммуникатор.MPI_SEND(IN start, IN count, IN datatype, IN dest, IN tag, IN comm) Типыданных - свои в MPI, но имеется соответствие между ними и типами Fortranи С.В операции receive задается:- адрес буфера в памяти;- количество принимаемых элементов;- тип данных каждого элемента;- номер процесса-отправителя в его группе;- тег сообщения;- коммуникатор;- ссылка на объект-статус, содержащий необходимую информацию осостоянии и результате операции.Имеется возможность указать "любой отправитель" и "любой тег".Имеется три режима коммуникаций - стандартный, режим готовности исинхронный.В стандартном режиме последовательность выдачи операций send и receiveпроизвольна, операция send завершается тогда, когда сообщение изъято избуфера и он уже может использоваться процессом.В режиме готовности операция send может быть выдана только послевыдачи соответствующей операции receive, иначе программа считаетсяошибочной и результат ее работы неопределен.

В синхронном режимепоследовательностьвыдачи операций произвольна, но операция sendзавершается только после выдачи и начала выполнения операции receive. Вовсех трех режимах операция receive завершается после получения сообщения взаданный пользователем буфер приема.Неблокирующие операции не приостанавливают процесс до своегозавершения , а возвращают ссылку на коммуникационный объект, позволяющийопрашивать состояние операции или дожидаться ее окончания. Имеютсяоперации проверки поступающих процессу сообщений, без чтения их в буфер(например, для определения длины сообщения и запроса затем памяти под него).27.

Распараллеливание последовательных программ. ( Метод гиперплоскостей)Метод гиперплоскостей применим только к многомерным циклам. Впространстве итераций ищется прямая (плоскость), на которой возможнопараллельное асинхронное выполнение тела цикла, причем в отличие от метода27координат, эта прямая (плоскость) может иметь наклон по отношению к осямкоординат. Цикл вида:DO I = 2,NDO J = 2,MA(I,J) = ( A(I-1,J) + A(I,J-1) ) * 0.5методом координат не векторизуется. Действительно, при фиксированномзначении переменной I(I = i) значение, вычисленное в точке (i,j)пространства итераций, зависит от результата вычислений в предыдущейточке (i,j-1), так что параллельное выполнение тела цикла по переменной Jневозможно. Аналогично нельзя проводить параллельные вычисления попеременной I.Однако можно заметить, что результат будет также правильным, есливычисления проводить в следующем порядке:на 1-м шаге - в точке (2,2),на 2-м шаге - в точках (3,2) и (2,3),на 3-м шаге - в точках (4,2), (3,3) и (2,4),на 4-м шаге - в точках (5,2), (4,3), (3,4) и (2,5) и т.д.Вычисления в указанных точках для каждого шага, начиная со второго, можнопроводить параллельно и асинхронно.

Перечисленные кортежи точек лежат напараллельных прямых вида I+J=K, а именно: на первом шаге - на прямой I+J=4, навтором - I+J=5, на третьем шаге - I+J=6 и т.д., на последнем ((N-2)+(M-2)+1) - омшаге - на прямой I+J=M+N.Для приведенного примера множество точек, в которых возможно параллельноевыполнение, является однопараметрическим (прямая) и определяется из решенияуравнения I+J=K. Цикл (5) может быть преобразован к виду: DO 5 K = 4,M+NTн = MMAX(2,K-N)Tк = MMIN(M,K-2)DO 5 T = Tн,Tк : PARI=TJ=K-T5 A(I,J) = ( A(I-1,J) + A(I,J-1) ) * 0.5Функция MMAX(X,Y) выбирает ближайшее целое, большее или равное максимуму изчисел X и Y, а функция MMIN(X,Y) - ближайшее целое, меньшее или равное минимумуиз X и Y.Внутренний цикл по переменной T может выполняться параллельно для всехзначений T.

Границы изменения переменной цикла T меняются при переходе с однойпрямой (гиперплоскости) на другую, поэтому их необходимо перевычислять вовнешнем цикле. Число итераций внутреннего цикла, то есть потенциальная длинавекторной операции, меняется с изменением28. Ограничения на распараллеливание циклов.28Распараллеливание циклов возможно, если все итерации цикла независимы. Телоцикла не должны содержать:- операторов перехода- операторов ввода-выводаИндексные выражения не должны иметь индекс в индексе А(В(С))29. Алгоритмы преобразования программ методом координатМетод координат:- позволяет определить возможность выполнения цикла в синхронномрежиме(для архитектуры SIMD);- содержит алгоритмы преобразования тела цикла к синхронному виду.Например, по Лэмпорту, цикл:DO 24 I=2,MDO 24 J=2,N21 A(I,J) = B(I,J)+C(I)22 C(I) = B(I-1,J)23 B(I,J) = A(I+1,J) ** 224 CONTINUEпреобразуется в цикл:DO 24 J=2,NDO 24 SIM FOR ALL I i:2<=i<=M C SIM - SI Multeneusly(одновременно)TEMP(I) = A(I+1,J)21 A(I,J) = B(I,J)+C(I)23 B(I,J) = TEMP(I) ** 222 C(I) = B(I-1,J)24 CONTINUEПримеры векторизацииИсходные тела циклов Преобразованные тела цикловA(I) = B(I)C(I) = A(I+1)C(I) = A(I+1)A(I) = B(I)A(I) = B(I)C(I) = A(I) + A(I+1)D(I) = A(I)A(I) = B(I)C(I) = A(I) + D(I+1)30.

Характеристики

Тип файла
PDF-файл
Размер
411,36 Kb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее