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

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

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

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

Формально: для каждого (i+1)-го измерения заданной процессорной системы функция setelw_ решает (относительно Ik,init и Ik,last) задачу

MAX (
k=0,...,n-1

Ik,last
LWJ
)  MIN (1) ,
J=Ik,init

где:

n

размер (i+1)-го измерения заданной процессорной системы;

Ik,init ≤ Ik,last;

Ik+1,init = Ik,last + 1;

I0,init = 0,

In-1,last = m 1;

m

число координатных весов загрузки, заданных для (i+1)-го измерения процессорной системы (WeightNumber[i]); m n;

LWJ

J-й координатный вес загрузки, заданный для (i+1)-го измерения процессорной системы (J-й элемент массива, указатель на который задан в LoadWeightAddr[i]).

После нахождения решения задачи (1) (обозначим его Ik,init,even , Ik,last,even; k = 0, ... , n - 1) вычислительный вес координаты k (i+1)-го измерения заданной процессорной системы полагается равным

Ik,last,even Ik,init,even + 1 (k = 0, ... , n - 1).

Координатные веса загрузки должны быть заданы в виде вещественных неотрицательных чисел (double).

Нулевое значение i-го элемента массива LoadWeightAddr означает, что для (i+1)-го измерения заданной процессорной системы будут установлены веса координат процессоров, равные весам, заданым параметрами запуска системы поддержки (для начальной процессорной системы), или равные единице (для процессорной системы, не являющейся начальной).

Значение параметра *AddrNumberPtr не может превосходить размерности заданной процессорной системы. Недостающие до размерности процессорной системы элементы массива LoadWeightAddr будут считаться нулевыми. В частности, равное нулю значение параметра *AddrNumberPtr означает, что веса всех координат всех процессоров будут установлены либо единичными, либо равными весам, заданным в параметрах запуска системы поддержки.

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

4.7Виртуальные многопроцессорные системы (многопроцессорные системы программы пользователя)

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

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

Виртуальная начальная процессорная система описывается в файлах параметров запуска системы поддержки директивой

UserPS = <список размеров измерений, разделённых запятыми>;

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

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

В этом случае:

  • все процессорные подсистемы, создаваемые функциями crtps_ и psview_ (см. п.п. 4.2 и 4.3), являются виртуальными, исходной для которых (на верхнем уровне иерархии) является виртуальная начальная процессорная система;

  • при создании виртуальной процессорной подсистемы создаётся соответствующая ей реальная процессорная подсистема (при инициализации системы поддержки виртуальной начальной процессорной системе соответствует реальная начальная процессорная система);

  • вычислительные веса координат процессоров любой процессорной системы полагаются равными единице (вне зависимости от их значений, заданных в параметрах запуска системы поддержки или при обращении к функциям setpsw_, genbli_, genbld_ и genblk_, см. п. 4.5);

  • веса загрузки процессоров, задаваемые при обращении к функции setelw_ (см. п. 4.6), игнорируются и считаются равными единице;

  • функции getsiz_ и locsiz_ (см. п. 17.2) возвращают размеры виртуальных процессорных систем.

Из изложенного выше следует, что при выполнении программы на виртуальных процессорных системах отображение на них представлений абстрактных машин и, следовательно, распределённых массивов и параллельных циклов возможно только равномерными блоками (см. п. 5.7).

Замечание. Если программа имеет "жёсткую" настройку лишь на число процессоров в начальной процессорной системе (а не на размеры её измерений), то виртуальную начальную процессорную систему рекомендуется описывать одномерной.

5Отображение представления абстрактной машины

5.1Задание отображения представления абстрактн ой машины на многопроцессорную систему (распределение ресурсов)

long distr_ (

AMViewRef
PSRef
long
long
long

*AMViewRefPtr,
*PSRefPtr,
*ParamCountPtr,
AxisArray[],
DistrParamArray[] );

*AMViewRefPtr

ссылка на представление абстрактной машины, ресурсы которой будут распределяться.

*PSRefPtr

ссылка на многопроцессорную систему, определяющую состав распределяемых ресурсов.

*ParamCountPtr

число параметров, заданных в массивах AxisArray и DistrParamArray (см. ниже).

AxisArray

массив, j-й элемент которого содержит номер измерения представления абстрактной машины, используемый в правиле отображения для (j+1)-го измерения многопроцессорной системы.

DistrParamArray

массив, j-й элемент которого содержит параметр правила отображения для (j+1)-го измерения многопроцессорной системы (целое неотрицательное число).

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

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

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

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

Число параметров, задаваемое в массивах AxisArray и DistrParamArray, должно быть равно *ParamCountPtr, которое не может превосходить размерности многопроцессорной системы, но может быть меньше её. В последнем случае недостающие до размерности многопроцессорной системы правила отображения будут считаться размножениями (2-е из рассмотренных ниже правил отображения).

Распределение ресурсов абстрактной машины достигается реализацией функционального соответствия

{представление абстрактной машины}  {многопроцессорная система} ,

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

F((I1, ... ,Ii, ... ,In)) =

F1(I1, ... ,Ii, ... ,In) 
. . . . . . . . . . . . . . .
Fj(I1, ... ,Ii, ... ,In) 
. . . . . . . . . . . . . . .
Fm(I1, ... ,Ii, ... ,In)
,

Здесь:

символ декартова произведения множеств;

n

размерность представления абстрактной машины;

m

размерность многопроцессорной системы;

Ii

индексная переменная i-го измерения представления абстрактной машины;

Fj

многозначная функция, принимающая значения во множестве значений индексной переменной j-го измерения многопроцессорной системы.

Ресурс, выделенный дочерней абстрактной машине, определённой индексным вектором (i1, ... ,in),  это совокупность процессоров, определённая множеством F((i1, ... ,in)) (т.е. множеством-образом, элементами которого являются векторы индексного пространства многопроцессорной системы). Отображение представления абстрактной машины на (точнее, в) многопроцессорную систему  это выделение ресурсов (посредством задания функции F) каждому из элементов этого представления.

Функции F1, ... ,Fm называются координатными правилами отображения. Система поддержки обеспечивает следующие правила отображения, в совокупности обеспечивающие блочное распределение представления абстрактной машины по многопроцессорной системе.

  1. Fj(I1, ... ,In) = { [Ik/BLSIZEk] } , где:

k = f(j) = AxisArray[j-1]

номер измерения представления абстрактной машины (1 ≤ k ≤ n, f(j1) f(j2) при j1 ≠ j2);

BLSIZEk

целое неотрицательное число (размер блока для k-го измерения представления абстрактной машины).

В этом случае образом элемента (i1, ... ,in) индексного пространства представления абстрактной машины является множество, содержащее один элемент  [Ik/BLSIZEk], принадлежащий множеству значений индексной переменной j-го измерения многопроцессорной системы.

Значение BLSIZEk определяется следующим образом. Пусть:

AMSIZEk

размер k-го измерения представления абстрактной машины;

PSSIZE j

размер j-го измерения многопроцессорной системы.

Тогда:

BLSIZEk = {

min(DistrParamArray[j-1], AMSIZEk)

при DistrParamArray[j-1] ≠ 0;

(AMSIZEk-1) / PSSIZEj] + 1

при DistrParamArray[j-1] = 0.

Отметим, что максимально допустимое значение Ik есть

min( (PSSIZEj * BLSIZEk  1) , AMSIZEk  1 ).

Поэтому для полного охвата правилом отображения k-го измерения представления абстрактной машины требуется выполнение неравенства

AMSIZEk PSSIZEj * BLSIZEk ,

что достигается при
или при

DistrParamArray[j-1] ≥ AMSIZEk / PSSIZEj
DistrParamArray[j-1] = 0
.

  1. Fj(I1, ... ,In) = {q  Mj: 0 ≤ q ≤ PSSIZEj-1} , где:

Mj

множество значений индексной переменной j-го измерения многопроцессорной системы.

В этом случае образом любого элемента (i1, ... ,in) индексного пространства представления абстрактной машины является все множество значений индексной переменной j-го измерения многопроцессорной системы (в подобных случаях принято использовать символ "*" , т. е. "любой из допустимых").

  1. Fj(I1, ... ,In) = { Const } , где 0 ≤ Const ≤ PSSIZEj-1 .

В этом случае образом любого элемента (i1, ... ,in) индексного пространства представления абстрактной машины является множество, содержащее один элемент  Const, принадлежащий множеству значений индексной переменной j-го измерения многопроцессорной системы.

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

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

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