Главная » Просмотр файлов » ПОД (пособие)

ПОД (пособие) (1184372), страница 42

Файл №1184372 ПОД (пособие) (ПОД (пособие) - Ельцин) 42 страницаПОД (пособие) (1184372) страница 422020-08-19СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

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

Для обеспечения эффективногодоступа к удаленным данным требуется производить анализ индексных выражений нетолько внутри одного цикла, но и между разными циклами. К тому же, недостаточно простообнаруживать факт наличия зависимости по данным, а требуется определить точно тотсегмент данных, который должен быть переслан с одного процессора на другой.В третьих, распределение вычислений и данных должно быть произведено согласованно.Несогласованность распределения вычислений и данных приведет, вероятнее всего, к тому,что параллельная программа будет выполняться гораздо медленнее последовательной.Если на системе с общей памятью распараллелить один цикл, занимающий 90 процентоввремени решения задачи, то можно рассчитывать на почти десятикратное ускорениепрограммы (даже если оставшиеся 10 процентов будут выполняться последовательно).

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

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

MPI позволяет создавать эффективные инадежные, переносимые параллельные программы высокого уровня. Эффективность инадежность обеспечиваются такими механизмами как: определение MPI операций непроцедурно, а логически, т.е. внутренние механизмы выполнения операций скрыты отпользователя; использование непрозрачных объектов в MPI (группы, коммуникаторы, типыи т.д.);хорошей реализацией функций передачи данных, адаптирующихся к структуресистемы и обеспечивающих необходимую буферизацию данных.

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

Чтобы более четко представитьсебе этот уровень нужно ответить на вопрос: - В чем одно из важных отличий в написаниипоследовательной и параллельной программ? Здесь имеется ввиду параллельная программадля рассматриваемых MIMD систем. Прежде чем создавать параллельную программу,необходимо знать общую архитектуру (виртуальной) параллельной машины и топологию(виртуальных) межпроцессорных связей, которая существенно используется припрограммировании.

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

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

Для решения своейзадачи, пользователь с помощью команды (в командной строке): mpirun […] -np N, задаетвычислительную систему из N виртуальных компьютеров, соединенных между собойвиртуальными каналами с топологией связи - "полный граф". В дополнение к этому,наличие операторов парных взаимодействий между процессорами в такой среде,достаточно для реализации всего спектра используемых в программах схем системныхвзаимодействий. Но отображение структуры задачи на архитектуру системы с помощьютаких операторов требует некоторых усилий при программировании.

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

Виртуальные топологии обеспечивают оптимальное приближениеархитектуры системы к структурам задач при хорошей переносимости задач.Главные цели создания системы параллельного программирования:Создать интерфейс прикладного программирования для МРР систем;Обеспечить возможность эффективных коммуникаций для коммуникации точка-точка,коллективных операций, группы процессов.Допускать удобное сопряжение с языками 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 задается:- адрес буфера в памяти;- количество посылаемых элементов;- тип данных каждого элемента;- номер процесса-адресата в его группе;- тег сообщения;- коммуникатор.MPI_SEND(IN start, IN count, IN datatype, IN dest, IN tag, IN comm) Типы данных - свои вMPI, но имеется соответствие между ними и типами Fortran и С.В операции receive задается:- адрес буфера в памяти;- количество принимаемых элементов;- тип данных каждого элемента;- номер процесса-отправителя в его группе;- тег сообщения;- коммуникатор;- ссылка на объект-статус, содержащий необходимую информацию о состоянии ирезультате операции.137Имеется возможность указать "любой отправитель" и "любой тег".Имеется три режима коммуникаций - стандартный, режим готовности и синхронный.В стандартном режиме последовательность выдачи операций send и receive произвольна,операция send завершается тогда, когда сообщение изъято из буфера и он уже можетиспользоваться процессом.В режиме готовности операция send может быть выдана только после выдачисоответствующей операции receive, иначе программа считается ошибочной и результат ееработы неопределен.

В синхронном режиме последовательность выдачи операцийпроизвольна, но операция send завершается только после выдачи и начала выполненияоперации receive. Во всех трех режимах операция receive завершается после получениясообщения в заданный пользователем буфер приема.Неблокирующие операции не приостанавливают процесс до своего завершения , авозвращают ссылку на коммуникационный объект, позволяющий опрашивать состояниеоперации или дожидаться ее окончания. Имеются операции проверки поступающихпроцессу сообщений, без чтения их в буфер (например, для определения длины сообщенияи запроса затем памяти под него).Средства описания и создания процессов в языке Фортран-GNS.Тип данных – TASKIDПо семантике языка Fortran GNS все процессы программы получают уникальные имена системные идентификаторы, по которым производится отождествление корреспондентовпри обмене сообщениями между процессами и в терминах которых задается средавыполнения функций редукции. Эти имена вырабатываются функцией порожденияпроцессов - встроенной функцией языка NEWTASK.

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

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

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

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