Главная » Просмотр файлов » СКИПОДы 2007 полная версия

СКИПОДы 2007 полная версия (1127795), страница 42

Файл №1127795 СКИПОДы 2007 полная версия (СКИПОДы 2007 полная версия) 42 страницаСКИПОДы 2007 полная версия (1127795) страница 422019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

Но отображение структуры задачи на архитектуру системы с помощьютаких операторов требует некоторых усилий при программировании. Параллельнаяпрограмма в этом случае будет громоздкой, плохо отлаживаемой, с неэффективнымотображением структуры алгоритма на структуру системы. Наличие в системе такихсредств как: виртуальные топологии, коллективные взаимодействия, создаваемые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. Структура системногоидентификатора определяется реализацией, это имя не имеет внешнего представления.Для манипулирования именами процессов внутри программы в язык Fortran GNS вводитсяновый для Фортрана тип данных - тип TASKID. Значения этого типа представляют собойимена процессов, которые вырабатываются функцией порождения процессов.При статической модели параллелизма системные идентификаторы процессоввырабатываются системой запуска программы и могут быть получены пользователемвстроенными функциями.Добавляется константа .NOTASKID., которая представляет собой "нулевое" значение дляобъектов этого типа.

Данные типа TASKID должны быть описаны в операторе TASKID,синтаксис которого аналогичен синтаксису операторов объявления типа в Фортране 77.Данные этого типа могут использоваться в операторах EQUIVALENCE, но при этом могутбыть эквивалентными только данным типа TASKID. Допускается использование TASKID вкачестве описателя типа подпрограммы-функции.Использование переменных данного типа в операторах СOMMON оговаривается винструкциях по использованию языка на конкретных установках, в них же приводятсяразмеры имени процесса для расчетов длин общих блоков. В реализации на базе ФортранМВК [3] допускается использование данных типа TASKID в общих блоках, их длина - однослово (как у данных типа INTEGER).Для данных типа TASKID определены следующие операции: операции .EQ. , .NE.

иприсваивание (когда операнды операций,левая и правая части операторов присваиванияимеют тип TASKID).Данные типа TASKID используются в операторах передачи/приема сообщений SEND и RECEIVE для задания абонентов - получателя или отправителя . Такие данныемогут также передаваться в качестве параметров процедурам и функциям, а также могутбыть переданы другим процессам с помощью операторов передачи сообщений.138Значения типа TASKID не могут использоваться в списках ввода-вывода, так как неимеют внешнего представления.Начальная инициализация переменных этого типа также, как и других переменныхФортрана, не предусматривается, поэтому использование данных до присваивания имзначений некорректно.

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

Такая запись может ускорить выполнение программы, таккак такие массовые операции могут выполняться параллельно.Для задания массовых операций над частью массива - подмассива можно присвоитьподмассиву имя оператором EQUIVALENCE, динамическое формирование структурподмассивов можно производить операторами языка Фортран МВК. Например:TASKID T1(100),T2(100),TMDIMENSION TM(100,2)EQUIVALENCE (TM(1,1),T1(1)),(TM(1,2),T2(1))При статической модели параллелизма инициализация данных этого типа производитсяфункциями преобразования номеров виртуальных процессоров в имена задач.3. Задачи и процессыВ языке вводится дополнительный вид программных единиц - программные единицызадачи.

Программа может содержать (помимо традиционных для Фортрана программныхединиц) одну или более программных единиц-задач.Главная программная единица (main program) определяет главный и единственный начальной процесс программы.Эта единица может иметь заголовок:PROGRAM n, где n - имя программы.По Фортрану, заголовок программы может отсутствовать.Имя программы (MAIN при его отсутствии) идентифицирует главную программнуюединицу программы, ссылки на него невозможны. (Конкретные реализации могутразрешать использование этого имени в операторах передачи сообщений в качествеадресата.)При запуске начального процесса ему присваивается другое имя - системныйидентификатор, по которому на него могут ссылаться другие процессы программы припередаче сообщений или при выполнении функций редукции.

Это имя может бытьполучено любым процессом при помощи встроенной функцией MASTER без параметров.Результат функции имеет тип TASKID.Программная единица-задача являются описанием задачи. Вычислительные процессысоздаются по описанию задачи динамически и во время создания им присваиваютсяуникальные имена - системные идентификаторы. По одному описанию задачи может бытьобразовано произвольное число процессов данного класса.Первым оператором программной единицы-задачи является оператор заголовка,имеющий вид: TASK PROGRAM n, где n - имя программной единицы-задачи.В остальном, структура программной единицы-задачи не отличается от структурыглавной программной единицы Фортрана 77. В частности, последним оператором, какобычно, является оператор END.Задачи не могут иметь общей памяти с другими задачами, в частности, с главной,поэтому общие блоки (COMMON-блоки) задач локальны в пределах каждой задачи ипрограммных единицах, которые в ней используются.

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

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

Список файлов ответов (шпаргалок)

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