Главная » Просмотр файлов » Ответы 190 страниц

Ответы 190 страниц (1184228), страница 31

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

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

END

Инициализация процессов: 1 TI = NEWTASK(A,K)

2 TM=WweWTASK(A,KM)

3 TM2=WweWTASK(A,KM2)

DO 4 I=1,100

4 TМ(I) = NEWTASK(A,KМ(I))

DO 5 I=1,100

TМ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,2

TМ(I) = NEWTASK(A,KМ(I))

6 TМ(I+1) = NEWTASK(В,KМ(I+1))

или

TМ(1) = NEWTASK(READ,KМ(1))

TМ(100) = NEWTASK(PRINT,KМ(100))

DO 7 I=2,99

7 TМ(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.

Виртуальные номера процессоров.

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

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

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

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

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

3.2. Завершение программы и завершение процессов Выполнение программы на языке Fortran GNS завершается в следующих случаях:

а) при завершении выполнения главного процесса (процеду­рой STOP или выходом через END главной программной единицы);

б) при "авосте" в главном процессе;

в) при выполнении в каком-либо процессе программы стан­дартных процедур ABORT и FINISH.

г) при выполнении в каком-либо процессе программы оператора FINISH.

Из определения следует, что для завершения программы не требует­ся ожидания естественного (или авостного) завершения всех инициирован­ных процессов программы, в частности, завершения всех обменов сообще­ниями между ними и выборки поступивших сообщений из почтовых ящиков. Вопрос о буферах ввода-вывода при "авосте" в главном процессе решается соглашениями ОС.

Выполнение одного процесса завершается в следующих слу­чаях:

а) если выполняется одно из указанных выше условий, при­водящих к завершению всей программы;

б) при выполнении оператора STOP в данном процессе;

в) при выполнении оператора END в задаче, по которой об­разован процесс; RETURN,END в функциях и процедурах имеет традиционный смысл.

г) в случае "авоста" в данном процессе.

Таким образом любой процесс может завершить выполнение всей прог­раммы выполнением стандартных процедур ABORT, FINISH; завершение про­цесса другими способами не прекращает выполнение программы. В частнос­ти, при выполнении оператора END в задаче, процесс завершается, ссылка на него сохраняется. Проблема почтовых ящиков завершенных процессов решаются при реализации языка.

При статической модели параллелизма работа программы завершается выполнением в одном из процессов ABORT или FINISH.

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

Средства передачи и приема сообщений в языке Фортран-GNS.

Передача сообщений

Обмен информацией между процессами осуществляется с помощью пе­редачи сообщений. Для этого используются операторы:

SEND - послать сообщение и RECEIVE - принять сообщение.

4.1. Способы передачи сообщений

Предусмотрено три способа передачи сообщений: синхронный, асинх­ронный и передача без ожидания.

а. Синхронный способ

При синхронном способе передачи сообщений посылающий и принимаю­щий процессы приостанавливают выполнение своих программ и переходят в состояние ожидания до тех пор, пока не выполнятся оба синхронных опе­ратора SEND и RECEIVE.

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

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

б. Асинхронный способ

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

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

Выполнение асинхронного оператора RECEIVE и продолжение работы процесса - получателя производиться только после поступления сообще­ния. Если сообщение пришло к получателю до выполнения у него оператора RECEIVE, то сообщение помещается в почтовый ящик процесса без прерыва­ния его выполнения.Сообщения с одинаковым значением тега от одного и того же отправителя помещаются в почтовом ящике в том же порядке, как они посылались и в таком же порядке они будут выбраны операторами RE­CEIVE.

Сообщения, передаваемые асинхронным способом, идентифицируются именами отправителя и тегами (положительными значениями целого типа). Имя отправителя можно опускать в процессе - получателе, т.е. можно за­казывать ожидание сообщений этого типа (с заданным тегом) от произ­вольного процесса. В этом случае отправителя можно идентифицировать при получения сообщения при помощи параметра SENDER в операторе RECEI­VE.

Стандартные функции TESTMSG, TESTTAG, PROBE позволяют анализиро­вать наличие сообщений, значения тегов и имен отправителей асинхронных сообщений в почтовом ящике процесса и ,соответственно, управлять по­рядком выбора поступивших сообщений.

Для организации селекции и установки режимов ожидания заданных асинхронных сообщений можно использовать также конструкции выбора (см. раздел 5.).

в. Передача без ожидания

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

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

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

В каждым операторе обмена этого типа один из его параметров - ло­гическая переменная FLAG служит для фиксации факта передачи сообщения. Значение этой логической переменной-флага связывается с фактом выпол­нения передачи данных, заданной оператором обмена для того процесса, в котором определена эта переменная. Система интерпретации присваивает флагу в процессе отправителе значение .TRUE. в момент снятия копии с данных отправителя для передачи, и флагу в процессе-получателе после присвоения этих значений переменным получателя. До выполнения операто­ра передачи / приема сообщения значение логической переменной - флага, связанной с этим оператором не определено.

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

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

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

Замечание:

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

Протоколы передачи и приема сообщений в языке Фортран-GNS.

Операторы передачи сообщений

Операторы SEND и RECEIVE имеют вид:

1.0

SEND (sm [,ss]...) [список] RECEIVE (rm [,rs]...) [список]

1.5 где

sm или rm - спецификация сообщения - определяет адресата

(процесс или процессы, которым посылается

сообщение) или отправителя и способ синхрони­зации;

список - список передаваемых данных имеет такой же вид, как списки в операторах ввода/вывода Фортрана 77, т.е. элементом списка может быть констан­та,имя переменной, переменная с индексом, имя массива или неявный цикл;

ss или rs - дополнительная спецификация.

Вид спецификации сообщения sm и rm зависит от способа синхрони­зации.

а) Синхронный способ: sm есть [TASKID =] адресат,

где адресат есть adr или ALL, а

adr - ссылка на функцию, имя переменной, элемента массива или имя массива типа TASKID или имя программной единицы-задачи.

Если adr - имя программной единицы-задачи, то сообщение посылается всем процессам программы, образованным по образцу указанной программной единицы (исключая посылающую).процедуры.

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

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

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

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