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

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

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

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

Структура системногоидентификатора определяется реализацией, это имя не имеет внешнего представления.Для манипулирования именами процессов внутри программы в язык 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-блоки) задач локальны в пределах каждой задачи ипрограммных единицах, которые в ней используются. Семантика 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-размерные, при программировании приводятся к параметрам реальнойструктуры решающего поля. Алгоритмы, реализуемые как стандартные процедуры, такжедолжны адаптироваться к структуре выделяемых ресурсов. Настройка структуры (под)программ под параметры вычислительной среды может управляться заданием номеров виртуальных вычислителей.При запуске программы на конкретной вычислительной платформе возможнопотребуется сопроводить программу спецификацией об используемых значениях номероввиртуальных процессоров и схемой их оптимальной дислокации на вычислителяхплатформы, и об именах задач, связанных с этими номерами для последующей загрузкисоответствующих процессов.

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

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

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

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