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

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

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

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

Семантика COMMON-блоков впределах одной задачи - традиционная.1393.1. Создание процессов.Для создания процессов в динамической модели параллелизма используетсястандартная функция NEWTASK. Обращение к этой функции производится операторамиприсваивания вида:it = NEWTASK (n, ia) , гдеn - имя программной единицы-задачи;ia - константа, имя переменной, элемента массива или массива целого типа; значенияэтого параметра определяют виртуальные номера вычислителей, на которыхсоздаются порождаемые процессы.it - имя переменной, элемента массива или массива типа TASKID, куда заносятся имена(системные идентификаторы) порожденных процессов.Функция NEWTASK создает по описанию задачи с именем n вычислительныепроцессы, количество которых определяется числом виртуальных номеров вычислителей.Это число равно количеству элементов массива параметра ia или равно одному дляскалярного параметра.Результатом выполнения функции NEWTASK является имя процесса или массив имен(системных идентификаторов) созданных процессов.

Эти имена присваиваютсяпеременным it.Если n не совпадает с именем программной единицы-задачи, по которой образовантекущий процесс, то оно должно быть описано. По аналогии с оператором EXTERNAL, дляописания имен внешних задач вводится оператор спецификации TASK EXTERNAL,имеющий вид:TASK EXTERNAL n [, ni ]... гдеn, ni - имена программных единиц-задач.Имена, указанные в списке этого оператора, разрешается использовать в качествефактических параметров процедур (в том числе в качестве параметров функций NNAME иNEWTASK) и в качестве адресатов в операторе SEND. Если в качестве таковых параметровиспользуется имя текущей единицы - задачи, то оно также должно быть описано каквнешнее. Таким образом, передать сообщение процессу можно, идентифицируя его именемпрограммной единицы-задачи, по которой он был образован (по имени класса), или посистемному имени. Оператор TASK EXTERNAL должен быть размещен в программезадаче до первого исполняемого оператора.

Имена (системные идентификаторы) процессовне имеют внешнего представления, они скрыты от пользователя, их можно присваиватьпеременным типа TASKID. Процесс может определить собственное имя, имя процесса,породившего его, и имя главного процесса программы с помощью стандартныхфункций MYTASKID, РАRENT и МАSTER. Определение имен процессов по номерамвиртуальных процессоров приведено в п.

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

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

7.).Примеры использования функций порождения процессовОператоры порождения будут иметь окружение программы-задачи С.TASK PROGRAM CTASK EXTERNAL A,B,READ,PRINTTASKID TI, TM(100),TM2(100,2)INTEGER K,KM(100),KM2(100,2).............ENDИнициализация процессов: 1 TI = NEWTASK(A,K)2 TM=WweWTASK(A,KM)3 TM2=WweWTASK(A,KM2)DO 4 I=1,1004 TМ(I) = NEWTASK(A,KМ(I))DO 5 I=1,100TМ2(I,1) = NEWTASK(A,KМ2(I,1))5 TМ2(I,2) = NEWTASK(B,KМ2(I,2))Операторы с метками 2 и 4 (3 и 5) производят одинаковые действия, но инициализация вформе 2 (3) предпочтительнее, так как эта запись позволяет производить инициализациюпроцессов параллельно.Отсутствие в Фортране 77 аппарата вырезок из массивов не позволяет иметь такуюзапись для алгоритмов:DO 6 I=1,99,2TМ(I) = NEWTASK(A,KМ(I))6TМ(I+1) = NEWTASK(В,KМ(I+1))илиTМ(1) = NEWTASK(READ,KМ(1))TМ(100) = NEWTASK(PRINT,KМ(100))DO 7 I=2,997TМ(I) = NEWTASK(В,KМ(I))В результате выполнения операторов: TI = NEWTASK(PRINT,1)8 TI =NEWTASK(READ,2))на виртуальном процессоре с номером 1 будет образован и запущен процесс PRINT,внутреннее имя которого потеряно и недоступно программе из-за выполнения оператора8.Доступ к нему для передачи сообщений возможен только по программному имени,заказать от него прием сообщений невозможно.

C процессом на втором процессоревозможен обмен сообщениями в обе стороны.В языке определена только одна синтаксическая конструкция использования функцииNEWTASK - в операторе присваивания. Тем не менее входные языки могут разрешатьиспользование этой функции и в других контекстах, там, где употребляются переменныетипа TASKID. Например, оператор:SEND (NEWTASK(PRINT,MI)) RES породив процесс печати, передает ему данные черезRES.Виртуальные номера процессоров.Кодировка виртуальных номеров процессоров произвольная, также как задание номераметок программы. Эти номера могут быть переданы процессу, который порождает другие,через каналы ввода, операторами передачи сообщений, а также сгенерированы программно.Одинаковые номера процессоров могут быть использованы для оптимальногораспределения ресурсов путем выравнивания времени работы процессов.

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

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

Завершение программы и завершение процессов Выполнение программы наязыке Fortran GNS завершается в следующих случаях:а) при завершении выполнения главного процесса (процедурой STOP или выходомчерез END главной программной единицы);б) при "авосте" в главном процессе;в) при выполнении в каком-либо процессе программы стандартных процедур ABORTи FINISH.г) при выполнении в каком-либо процессе программы оператора FINISH.Из определения следует, что для завершения программы не требуется ожиданияестественного (или авостного) завершения всех инициированных процессов программы, вчастности, завершения всех обменов сообщениями между ними и выборки поступившихсообщений из почтовых ящиков. Вопрос о буферах ввода-вывода при "авосте" в главномпроцессе решается соглашениями ОС.Выполнение одного процесса завершается в следующих случаях:а) если выполняется одно из указанных выше условий, приводящих к завершениювсей программы;б) при выполнении оператора STOP в данном процессе;в) при выполнении оператора END в задаче, по которой образован процесс;RETURN,END в функциях и процедурах имеет традиционный смысл.г) в случае "авоста" в данном процессе.Таким образом любой процесс может завершить выполнение всей программывыполнением стандартных процедур ABORT, FINISH; завершение процесса другимиспособами не прекращает выполнение программы.

В частности, при выполнении оператораEND в задаче, процесс завершается, ссылка на него сохраняется. Проблема почтовыхящиков завершенных процессов решаются при реализации языка.При статической модели параллелизма работа программы завершается выполнением водном из процессов ABORT или FINISH.В языке нет средств для определения статуса процесса, поэтому, проблемыиспользования процессора,освободившегося по завершению выполняемого на немпроцесса, связаны с наличием динамической загрузки процессов и должны решатьсяпрограммированием синхронизирующих механизмов.142Средства передачи и приема сообщений в языке Фортран-GNS.Передача сообщенийОбмен информацией между процессами осуществляется с помощью передачисообщений.

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

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

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

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

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

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