rtsIDr (1158449), страница 12

Файл №1158449 rtsIDr (Раздаточные материалы) 12 страницаrtsIDr (1158449) страница 122019-09-18СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

*RedRefPtr

ссылка на редукционную переменную.

*LocIndTypePtr

код типа индексных переменных.

Функция сообщает системе поддержки тип индексных переменных, значения которых определяют координаты локальных максимумов или минимумов редукционных переменных, составляющих массив, заданный при обращении к функции crtred_ (crtrdf_) параметром RedArrayPtr (RedArrayAddrPtr) (см. п. 11.1). Значения этих индексных переменных содержатся в каждом элементе массива с информацией локализации, задаваемого при обращении к функциям crtred_ и crtrdf_ указателем LocArrayPtr.

Параметр *LocIndTypePtr может принимать значения:

0 – индексные переменные типа long,

1integer,

2short,

3char.

Редукционная переменная, заданная ссылкой *RedRefPtr, должна быть создана в текущей подзадаче и не может быть уже включена в какую-либо редукционную группу.

Возвращается нулевое значение.

Сразу после создания редукционной переменной функцией crtred_ (crtrdf_) тип индексных переменных, значения которых задают координаты локального максимума или минимума, считается равным integer (значение типа по умолчанию).

11.3Создание редукционной группы

RedGroupRef crtrg_ (

long
long

*StaticSignPtr,
*DelRedSignPtr );

*StaticSignPtr

признак создания статической редукционной группы.

*DelRedSignPtr

признак уничтожения всех редукционных переменных, входящих в группу, при её уничтожении.

Функция crtrg_ создает пустую редукционную группу (не содержащую ни одной редукционной переменной) и возвращает ссылку на неё.

Задаваемый ненулевым значением *StaticSignPtr признак статической редукционной группы означает создание группы, не уничтожаемой при выходе из программного блока (см.п.8). Такая редукционная группа может быть уничтожена только явно, с помощью рассмотренной ниже функции delrg_ .

Ненулевое значение *DelRedSignPtr задает такой режим уничтожения редукционной группы, при котором все входящие в неё (на момент уничтожения) редукционные переменные будут также уничтожены. При явном уничтожении группы уничтожение входящих в неё переменных будет также явным, при неявном  неявным.

11.4Включение редукционной переменной в редукционную группу

long insred_ (

RedGroupRef
RedRef
PSSpaceRef
long

*RedGroupRefPtr,
*RedRefPtr, *PSSpaceRefPtr, *RenewSignPtr );

*RedGroupRefPtr

ссылка на редукционную группу.

*RedRefPtr

ссылка на редукционную переменную.

*PSSpaceRefPtr

ссылка на спецификатор процессорной системы и процессорного пространства редукционной переменной.

*RenewSignPtr

признак обновления сохранённого значения редукционной переменной при повторном включении её в группу.

Включение редукционной переменной в группу означает регистрацию её как участника групповой редукционной операции и запоминание её значения для выполнения редукции.

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

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

В качестве спецификаторов процессорного пространства могут быть заданы следующие объекты:

  1. Процессорная система.

Заданная параметром PSSpaceRefPtr процессорная система становится процессорной системой и процессорным пространством редукционной переменной. Все её элементы должны входить в состав текущей процессорной системы.

  1. Распределённый массив.

Распределённый массив, определённый ссылкой *PSSpaceRefPtr, должен быть отображён в процессорную систему, которая рассматривается системой поддержки в качестве процессорной системы и процессорного пространства редукционной переменной. Каждый элемент этой процессорной системы обязан принадлежать текущей процессорной системе.

  1. Параллельный цикл.

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

  1. Представление абстрактной машины.

Если представление абстрактной машины отображено функцией distr_ (redis_, mdistr_, mredis_) , то процессорная система, в которую осуществлено это отображение, принимается за процессорную систему и процессорное пространство редукционной переменной. В случае, когда представление не отображено функцией distr_ (redis_, mdistr_, mredis_), но хотя бы одна его абстрактная машина отображена функцией mappl_, процессорной системой редукционной переменной считается текущая процессорная система, а процессорным пространством – совокупность центральных процессоров подзадач, созданных при отображении элементов представления (редукция по завершившей выполнение группе параллельных подзадач, см. п. 10).

Представление абстрактной машины или его элементы могут быть отображены в текущую процесорную систему или в её непосредственные или косвенные подсистемы.

При нулевом значении ссылки *PSSpaceRefPtr или при равном NULL значении указателя PSSpaceRefPtr процессорной системой редукционной переменной и её процессорным пространством полагается текущая процессорная система.

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

Функция возвращает нулевое значение.

11.5Запоминание значений редукционных переменных

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

long saverv_ (RedRef *RedRefPtr);

*RedRefPtr  ссылка на редукционную переменную.

Функция saverv_ обновляет сохранённое значение заданной редукционной переменной для последующего использования его при выполнения групповой редукционной операции.

Редукционная переменная, заданная ссылкой *RedRefPtr, должна быть создана в текущей подзадаче, а её редукционная группа не должна быть запущена функцией strtrd_ (см. п. 11.6).

Возвращается нулевое значение.

long saverg_ (RedGroupRef *RedGroupRefPtr);

*RedGroupRefPtr  ссылка на редукционную группу.

Функция saverg_ запоминает значения всех переменных заданной редукционной группы. Редукционная группа, заданная ссылкой *RedGroupRefPtr, должна быть создана в текущей подзадаче, а также не может быть пустой или запущенной с помощью функции strtrd_ (см. п. 11.6).

Возвращается нулевое значение.

11.6Запуск редукционной группы

long strtrd_ (RedGroupRef *RedGroupRefPtr);

*RedGroupRefPtr  ссылка на редукционную группу.

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

Запускаемая редукционная группа должна быть создана в текущей подзадаче и не может быть уже запущенной с помощью функции strtrd_. Повторный запуск редукционной группы возможен лишь после завершения предыдущего запуска функцией waitrd_ (см. п. 11.7). Нельзя запустить пустую редукционную группу.

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

  1. Операция сложения (rf_SUM).

Из текущего значения редукционной переменной вычитается её значение, сохранённое при включении переменной в группу или обновлённое с помощью функций saverv_ или saverg_.

  1. Операция умножения (rf_MULT).

Текущее значение редукционной переменной делится на её значение, сохранённое при включении переменной в группу или обновлённое с помощью функций saverv_ или saverg_ (нулевой делитель заменяется на единичный).

  1. Операции поразрядного сложения по модулю 2 и поразрядного сложения по модулю 2 с последующим инвертированием всех разрядов (rf_XOR и rf_EQU).

Текущее значение редукционной переменной поразрядно слкадывается по модулю 2 (или поразрядно складывается по модулю 2 с последующим инвертированием разрядов) с её значением, сохранённым при включении переменной в группу или обновлённым с помощью функций saverv_ или saverg_.

Функция возращает нулевое значение.

11.7Ожидание завершения редукции

long waitrd_ (RedGroupRef *RedGroupRefPtr);

*RedGroupRefPtr  ссылка на редукционную группу.

Функция waitrd_ выполняет ожидание завершения всех редукционных операций заданной группы и открывает доступ к входящим в неё редукционным переменным.

Редукционная группа, заданная ссылкой *RedGroupRefPtr, должна быть создана в текущей подзадаче. Ожидание завершения редукционных операций группы, не запущенной ранее с помошью функции strtrd_, не допускается.

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

Возвращается нулевое значение.

11.8Уничтожение редукционной группы

long delrg_ (RedGroupRef *RedGroupRefPtr);

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

Список файлов учебной работы

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