Математическая модель и стратегия распределения приложений для интеллектуальной памяти распределенных компьютерных систем

ОБЧИСЛЮВАЛЬНІ СИСТЕМИ

УДК.004.27; 004.25; 004.382.2 Ю.С. ЯКОВЛЕВ, Е.В. ЕЛИСЕЕВА

МАТЕМАТИЧЕСКАЯ МОДЕЛЬ И СТРАТЕГИЯ РАСПРЕДЕЛЕНИЯ ПРИЛОЖЕНИЙ ДЛЯ ИНТЕЛЛЕКТУАЛЬНОЙ ПАМЯТИ РАСПРЕДЕЛЕННЫХ КОМПЬЮТЕРНЫХ СИСТЕМ________________________________________________________________________________________

Abstract: The model of the strategy of allocation of applications for intellectual memory which is grounded on model of the PIM-system containing objects, tags and the properties distinguishing it from computer systems with the classical architecture is offered. The set of the main procedures of the strategy of allocation of the applications, the integrated flowchart of the strategy and the flowchart of the hardware-software environment for support of implementation of this strategy are offered.

Key words: PIM-systems, the allocation of applications.

Анотація: Запропоновано модель стратегії розподілу додатків для інтелектуальної пам'яті, яка заснована на моделі PIM-системи, що містить об'єкти, ознаки та властивості, які відрізняють її від комп'ютерних систем із класичною архітектурою. Запропоновано набір основних процедур стратегії розподілу додатків, укрупнену блок-схему стратегії та блок-схему апаратно-програмного середовища для підтримки реалізації цієї стратегії.

Ключові слова: PIM-системи, розподіл додатків.

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

Ключевые слова: PIM-системы, распределение приложений.

1. Введение

Как отмечено в [1, 2], ведущий процессор (ВП), размещенный вместе с процессорными ядрами (ПЯ) и банками памяти (БП) на кристалле распределенной интеллектуальной памяти, которая часто идентифицируется как PIM-система, реализует функции обработки наиболее сложных операций, плохо поддающихся распараллеливанию. Совсем другие функции возлагаются на ПЯ, основное назначение которых - массовая реализация простых, но зато доминирующих в алгоритме операций (например, сложение, сдвиг и др.) над огромным количеством данных, требующих массового обращения к памяти для чтения и записи как исходных, так и их результатов после обработки. Естественно, что при незначительном наборе функций по управлению простыми вычислительными операциями нет необходимости применять достаточно сложные полнофункциональные операционные системы (ОС). Поэтому целесообразно использовать усеченные ядра ОС (ЯОС), причем такие ядра размещают в соответствующей памяти каждого ПЯ, что придает им определенную независимость.

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

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

© Яковлев Ю.С., Елисеева Е.В., 2009

ISSN 1028-9763. Математичні машини і системи, 2009, № 4

графический интерфейс пользователя, а также выполнять служебные функции [3, 4]. Так, функциями ОС по управлению памятью являются: отслеживание свободной и занятой памяти; выделение памяти процессам и освобождение памяти при завершении процессов; защита памяти; вытеснение процессов из оперативной памяти на диск, когда размеры основной памяти недостаточны для размещения в ней процессов, и возвращение их в оперативную память, когда в ней освобождается место, а также настройка адресов на конкретную область физической памяти.

Анализ существующих способов распределения приложений и организации управления памятью [5-9], используемых для классических компьютерных систем (КС), показал, что они без соответствующей доработки не могут быть использованы для решения аналогичных задач интеллектуальной памяти (Р1М-системы) ввиду особенностей её архитектурно-структурной организации [2, 9-11] хотя бы потому, что, во-первых, в распределенных КС с классической архитектурой разделение приложений осуществляется на небольшое количество фрагментов [4] и, во-вторых, в КС с классической архитектурой (типа кластера) существует одна операционная система, в то время как в Р1М-системе используется несколько. Поэтому требуется другой подход к решению задачи разделения приложений для PIM-систем, который учитывал бы особенности их архитектуры, сохраняя тем самым её преимущества перед КС с классической архитектурой.

Известные методы разделения приложений в PIM-системах [12-14] концентрируются на так называемой итерационно-основанной технологии - технологии трансформации циклов, чтобы выполнить все или некоторые итерации одновременно. При этом не рассматриваются различия возможностей ВП и ПЯ. Другой подход (так называемый операторно-основанный метод) использует в качестве основной единицы анализа оператор в цикле. Такой подход применяется в системе SAGE [12, 13], где исходная программа разбивается на несколько частей (модулей операторов), которые могут выполняться одновременно на ВП и ПЯ. В основе подхода принята упрощенная модель PIM-системы: модель содержит один ВП и один ПЯ (фактически PIM-система, размещенная на одном кристалле, содержит один ВП и множество ПЯ). Кроме того, судя по описаниям, в алгоритме разбиения не учитывается ряд факторов, имеющих важное значение, например, условные и безусловные переходы внутри и вне циклов, что может привести к необоснованному вычислению веса соответствующих модулей и, следовательно, к некорректному разбиению. Также может оказаться, что количество модулей, принадлежащих ПЯ, и в том числе их вес, на порядок и более отличаются соответственно от количества и веса модулей, принадлежащих ВП. Это означает, что ВП большую часть времени будет простаивать. Может быть и обратная картина, когда ПЯ будут простаивать, а ВП перегружен, т.е. наблюдается дисбаланс загрузки процессоров, откорректировать который трудно.

Использование оператора в цикле в качестве основной единицы анализа “оставляет в тени” объединение и планирование операторов, находящихся вне циклов, а это означает, что не все операторы могут быть проанализированы на предмет их параллельного выполнения.

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

ряда 64, 128, 256, 1024 бит и т.д.), одновременно считывая или записывая за один цикл обращения к памяти большое количество таких операндов. Поэтому рассмотренные выше методы распределения приложений по процессорам Р1М-системы, если принять во внимание указанные выше факторы, являются чрезвычайно сложными и трудоемкими. При этом вопросы сходимости алгоритма разбиения являются серьезной проблемой.

Другие подходы к разбиению приложений для Р1М-систем как в зарубежной, так и в отечественной литературе, авторам не известны.

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

2. Модель Р1М-системы для распределения приложений

Структурная интерпретация исходной многоуровневой модели Р1М-системы для распределения приложений приведена на рис. 1.

Обозначения: БПг - г -й банк памяти; КЭШ - память типа КЭШ; ВП - ведущий процессор;

ПЯ - процессорные ядра.

Рис . 1. Структурная интерпретация модели Р1М-системы для распределения приложений

1. Верхний уровень (системный) определяется хост-машиной с соответствующей ОС. На

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

распределяются между всеми кристаллами (чипами Р!М-системы), принимая во внимание баланс загрузки (А ВП) каждого ВП.

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

реализации на ВП и какая часть (Аг(ПЯ*)) - для параллельной обработки на всем наборе ПЯ

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

3. Нижний уровень определяется непосредственно набором ПЯ, размещенным на чипе, количество которых г в наборе может быть больше или меньше количества частей, на которые распределена Аг( щя *), те.

АщЯ*) 3 (а1, а2,...,а] ,•••, ак) , где к > г или к < г .

Основные функции ЯОС на этом уровне - реализовать одновременную высокоскоростную обработку данных выделенной части Аг(щя*) фрагмента приложения при массовом обращении к

памяти, в максимальной степени используя особенности архитектурно-структурной организации Р!М-системы, в том числе широкополосный канал “процессор-память”. При этом каждое ПЯ работает под управлением собственного ядра операционной системы (ЯОСПЯ), которая функционирует независимо от других ЯОСщя в том смысле, что каждая из них принимает

независимые решения о создании и завершении на конкретном ПЯ своих собственных процессов и об управлении своими локальными ресурсами.

3. Модель стратегии распределения приложения

Принимая во внимание рис. 1, модель стратегии распределения приложения можно представить в виде кортежа следующих процедур:

Х =

где Ящм - распределение памяти, Яд - размещение данных по выделенным областям памяти, Ярпл - многоуровневое (согласно рис. 1) разделение приложений на составные части и распределение их по процессорам, Укм - управление коммутацией между процессорами распределенной системы.

Вопросы распределения памяти, размещения данных и управления коммутацией применительно к распределенным компьютерным системам (в том числе для Р!М-систем) были освещены ранее в работах [9, 10, 15, 16] соответственно, поэтому в данной статье мы уделим основное внимание процедуре распределения приложений, т.е. параметру Ярщл выражения (1). Эта процедура является наиболее сложной и наиболее ответственной для организации

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

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

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

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

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

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

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

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

КРПЛ =

где Мрпл - построение математической модели процедуры распределения приложений и описание её компонентов, Rf - выделение признаков (функций), отличающих PIM-систему от КС с

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

Принимая во внимание (1) и (2), математическую модель разделения приложений для распределения их частей по процессорам можно представить следующим образом:

ЕРПЛ = {

где Ррпл - целевая функция распределения приложения (например, повышение производительности, масштабирование параллелизма, эффективное использование ресурсов), т.е. для всех значений параметров арпл приложения Арпл существует способ разделения приложения Rpпл , являющийся составной частью стратегии распределения приложений X, такой, что реализация этого способа f (Rрпл), представленного через параметры множества Wрпл, отражающие признаки (функции), отличающие PIM-системы от классических КС, приводит к выполнению заданной целевой функции Ррпл разделения приложения при ограничениях %орг на параметры PIM-системы.

4. Описание компонентов модели

Выделение признаков (функций), отличающих PIM-систему от КС с классической архитектурой (процедура Rf ), при соответствующей целевой функции распределения Ррпл. В связи с тем, что эти параметры (признаки) рассматриваются по отношению к соответствующим параметрам КС с классической архитектурой, они определяются нечеткими значениями типа “в пределах“, “больше”, “больше или равно“ и др., характерными для нечетких множеств, причем некоторые из параметров могут быть определены переменными типа “повышение”, “расширение”, “упрощение” и др., что также характерно для нечетких множеств. Поэтому мы считаем целесообразным для выполнения процедуры RF использовать таблицы параметров разработанной ранее авторами

модели PIM-системы [17], основанной на использовании теории нечетких множеств и теории гранулирования.

Если при распределении приложения ставится функция цели Ррпл - повышение производительности системы (этот параметр в [17] обозначен ß), то для обеспечения высокой

производительности PIM-система должна иметь набор средств и способов, обеспечивающих соответствующие параметры (признаки, функции), отличающие её от КС с классической архитектурой (табл. 1).

Соответствующая гранула при этом будет иметь вид

G

где Sj e S, wq e W , ch e C , pr g P , af e A , при этом S - структурно-архитектурный срез модели PIM-системы [17], W - срез программного обеспечения, C - срез управления процессами внутри

чипа, Р - пользовательский срез, А - алгоритмический срез, ], ц, И, г, г, к определяют номера

элементов множеств, а их количество определяет мощности т}-, тц, тИ, тг , т1, тк.

Если же ставится в качестве функции цели Ррщл - масштабирование параллелизма (этот

параметр в [17] обозначен Ь), то Р!М-система должна иметь соответствующий набор средств и способов, отличающих её от КС с классической архитектурой.

Таблица 1. Набор средств и способов, обеспечивающих сверхвысокую производительность,

отличающих PIM-систему от КС с классической архитектурой

Обознач. парамет- ров Средства и способы, обеспечивающие признаки (функции), отличающие Р!М-систему от КС с классической архитектурой

S1 Широкая полоса пропускания по каналу процессор-память

s4 В качестве ВП в составе Р!М-чипа используются как серийные, так и специализированные процессоры

s5 В качестве средств коммутации внутри чипа используются скоростные коммутаторы (селекторы выбора), а между чипами - высокоскоростная межчиповая сеть

wl Модифицированная операционная система (ОС1), например, модифицированная 11п1х, Ыпих и т.п.

w6 Программные средства для поддержки работы межчиповой коммутационной сети - МЧКП (ПО/МЧКП) и иерархической системы памяти (ПО/ПАМ) в различных режимах

w10 Набор системных сервисных программ - ПО разбиения алгоритма на гранулы трех уровней: системного, узлового и блочного

cl Управление процессами Р!М-системы основано на концепции потоковой обработки информации и управляемого сообщением вычисления

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

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

P8 Р!М интегрируются в очень больших количествах, обеспечивая большую возможность параллелизма и распределенных вычислений, чем их традиционные кластерные копии

Pll Эффективность коммуникации делает системы Р!М лучшими для мелкомодульного распределенного вычисления, чем их традиционные кластерные копии

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

a3 Наличие часто повторяющихся участков алгоритма, реализация которых требует максимальных ресурсов памяти и производительности

a5 Высокая степень параллелизма алгоритма решаемой задачи с помощью ресурсов одного кристалла

a6 Масштабирование параллелизма за счет наращивания Р!М-чипов

При этом гранула будет иметь вид

Г

Аналогично могут быть получены гранулы для других значений функций цели.

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

Г

В соответствии с этим Р!М-система (по сравнению с КС с классической архитектурой) должна иметь (табл. 1):

- широкую полосу пропускания по каналу процессор-память, существенно большую по сравнению с классическими КС (параметр 5!);

- потоковую обработку информации и управляемое сообщением вычисление (параметр

с1);

- интеграцию Р!М в очень больших количествах, обеспечивая большую возможность параллелизма и распределенных вычислений, чем их традиционные кластерные копии (параметр

р8);

- более мелкомодульное распределенное вычисление, чем в традиционных кластерных копиях, и эффективную коммуникацию (параметр р11 );

- возможность разделения реализуемого алгоритма на три уровня: системный, узловой и блочный (параметр а1);

- наличие часто повторяющихся участков алгоритма, реализация которых требует максимальных ресурсов памяти и производительности (параметр а3);

- масштабирование параллелизма за счет наращивания до нескольких тысяч Р!М-чипов (параметр а6).

Выбор способа распараллеливания вычислительных алгоритмов (процедура ВрПЛ).

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

Для большого класса задач вычисления сводятся к выполнению однотипной обработки большого набора данных. К такому классу задач относятся, например, матричные вычисления, численные методы решения уравнений в частных производных и др. В этом случае говорят, что существует параллелизм по данным, и выделение подзадач сводится к разделению имеющихся данных [15, 16, 18]. Для другой части задач вычисления могут состоять в выполнении разных операций над одним и тем же набором данных. В этом случае говорят о существовании функционального параллелизма.

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

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

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

Ускорение, получаемое при использовании параллельного алгоритма для р процессоров, по сравнению с последовательным вариантом выполнения вычислений, определяется [15, 16]:

Зр(и) = Ж«)/Тр(и),

т.е. как отношение времени решения задач на скалярной ЭВМ к времени выполнения параллельного алгоритма (величина и используется для параметризации вычислительной сложности решаемой задачи и может пониматься, например, как количество входных данных задачи).

Эффективность использования параллельным алгоритмом процессоров при решении задачи определяется соотношением

Ер (и) = Т (и) / рТр (и) = 5р (и) / р .

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

Зр (и) = р и Ер (и) = 1.

В [15, 16, 18] приведены выражения для оценки параметров ускорения и эффективности применения различных способов распараллеливания для некоторых типов распространенных приложений. Используя эту информацию, можно определить эффективность использования соответствующего способа распараллеливания алгоритма и соответственно ускорение вычислений по сравнению с последовательным вариантом вычислений, что в конечном итоге позволяет выполнить балансировку загрузки процессоров. При этом объем вычислений для каждого используемого процессора должен быть примерно одинаков, а распределение подзадач между процессорами должно быть выполнено таким образом, чтобы количество информационных связей (коммуникационных взаимодействий) между подзадачами было минимальным.

Формирование таблиц соответствия набора операций приложения и набора команд процессоров PIM-системы (процедура ЯТс). Как было отмечено во введении, каждый чип Р!М-

системы (в наиболее распространенном варианте архитектуры) содержит один ВП и множество ПЯ (рис. 1), при этом функциональные возможности ПЯ, как правило, существенно ниже

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

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

В связи с этим, если решать задачу распределения приложений по процессорам, то для Р!М-систем, в отличие от кластерных систем, где наборы команд всех процессоров практически можно рассматривать универсальными, разделение приложений на части и распределение этих частей по процессорам необходимо выполнять при условии соответствия набора операций выделенной части приложения (Ноп ) ПрЛ* набору команд Нк (ПЯ) или Нк (ВП) при

отображении их через набор операций Нк (ПЯ):= Ноп (ПЯ) или Нк (ВП):= Ноп (ВП), к которому эта часть приложения намечается для реализации, т.е.

ноп (ПЯ) £ (ноп ) ПРЛ *, ноп (ВП) £ (ноп ) ПРЛ*.

При этом мощности т множеств этих наборов должны соответствовать условиям

т

а частота встречаемости / набора операций приложения, соответствующих набору операций ПЯ, должна быть наибольшей по сравнению с частотой встречаемости других операций, принадлежащих ВП и хост-машине:

/ПЯ >> /ВП >> /хост , /ПЯ = /макс .

Результаты анализа приложения представляются в виде таблицы, содержащей коды операций, которые сравниваются с кодами операций ПЯ и ВП. Результаты сравнения затем представляются в виде таблицы соответствия, по которой проверяется выполнение условия (7), а также в виде таблицы частот встречаемости операций, по которой проверяется выполнение условий (8). Это позволяет предварительно оценить возможность распределения приложения по процессорам Р!М-системы. В [19] авторами изложены основные положения концепции и принципы построения форматов и набора команд гипотетической Р!М-системы, которые могут быть использованы при выполнении такого анализа.

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

5. Основные положения стратегии разделения приложений для интеллектуальной памяти распределенных компьютерных систем

Основные положения стратегии разделения приложений исходят из сущностей предлагаемых выше моделей и их компонентов и сформулированы следующим образом:

1) Отображение аппаратно-программного базиса построения конфигурации Р1М-системы (при отсутствии прототипа), для которой формируется стратегия, алгоритм разделения и размещение приложения по процессорам осуществляются с помощью набора объектов, признаков, свойств и процедур, отличающих Р1М-систему от КС с классической архитектурой, которые определяются функционально-структурной гранулой, полученной на основе математической модели Р1М-системы при заданной целевой функции её архитектурно-структурной организации.

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

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

На нижнем (блочном уровне) модель распределения представляется в виде “линейка однородных ПЯ”.

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

4) Дальнейшее разделение приложения и наполнение операторами выделенных в результате исходного разделения основных модулей Мосн выполняется по принципу операторной зависимости (связности) по данным.

5) Формирование составных (Мсост) модулей из модулей Мосн малой величины, а также объединение некоторых основных модулей Мосн с соседними операторами, не входящими в выделенные циклы, выполняется по принципу операторной зависимости (связности) по данным.

6) Принятие решения об объединении конкретных модулей, а также модулей с операторами, не входящими в выделенные циклы, и их распределение по процессорам осуществляется по принципам оценки “параметрического веса” модуля, который определяется временем выполнения модуля на конкретном процессоре. Например, если модуль реализуется на ВП быстрее, чем на ПЯ, то его “параметрический вес” ниже, и в дальнейшем он может быть приписан для реализации на ВП. “Параметрический вес” (родственность) модуля оценивается при использовании модели статических параметров.

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

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

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

10) Оценка загрузки каждого процессора Р!М-системы и установление баланса загрузки между всеми процессорами выполняется путем сравнения “параметрических весов” и перераспределения модулей и операторов к модулям, используя принцип связности по данным.

11) Целесообразно оценить возможность использования на любом уровне разделения приложения известных способов распараллеливания задач (например, способами распараллеливания при умножении матриц, операций на графе и др.) и определение эффективности применения этих способов по соответствующим аналитическим выражениям (например, согласно [15, 16, 18]).

На основе приведенных положений можно представить укрупненную схему стратегии распределения приложений (рис. 2). При этом на верхнем (системном) уровне алгоритм

приложения А разделяется на фрагменты А з (А1, А2,..., АiАы) , каждый из которых приписывается для реализации на соответствующем чипе.

На среднем (узловом) уровне каждый фрагмент, например, А1, согласно модели

распределения на данном уровне, разделяется на часть фрагмента А^вп) , которая

приписывается для реализации на соответствующем ВП, и на часть фрагмента А^пя*), которая

приписывается для реализации на эквивалентном ПЯ *, объединяющем память всех ПЯ,

находящихся на данном чипе.

И, наконец, на нижнем (блочном) уровне часть фрагмента приложения А^пя*), согласно

модели распределения на этом уровне, разделяется на более мелкие части А(пя*) з (й1,«2,...,ау,...,ак), которые распределяются для реализации по всем ПЯ ,

размещенным на данном чипе.

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

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

Прототип Р1М-системы или её модель

і Распределение]

памяти

X

Анализ параметров Р!М-системы

Выбор способов распараллеливания задач

л

Дробление/

укрупнение

фрагментов

приложения

Оценка ресурсов Р!М-системы для приложения

Наполнение фрагментов А, модулями разделения и распределение их по чипам

Анализ баланса загрузки чипов

Приложение

ЗГ

Анализ приложения

Выделение циклов и связности операторов по данным

Построение модели распределения для верхнего уровня

Исходное разделение приложения на

фрагменты А1

! Размещение

данных

Оценка параметрического веса модулей, входящих в

Аь А2,...,А^.^АМ , и операторов вне циклов

Переход на 2-й (узловой) уровень разделения

1-й уровень разделения

Ограничения на систему команд ПЯ

Выделение соответствия системы команд ПЯ набору операций фрагмента приложения

Анализ

параметров

фрагмента

Выделение циклов ' и связности операторов по данным

Построение модели распределения для 2-го уровня "

Перераспределение моду-  лей между ВП и ПЯ

Исходное разделение фрагментов приложения на

части А1

Анализ баланса загрузки ВП и ПЯ *

Оценка параметрического веса ‘ модулей, входящих

в Л(ВП), Л(ПЯ*) , и операторов вне циклов

Наполнение А1( ВП), А1( ПЯ *) модулями разделения и распределение их по ВП и ПЯ *

Переход на 3-й (блочный) уровень разделения

2-й уровень разделения

Ограничения на | емкость банков ! памяти ПЯ

Оценка

количества

ПЯ

Анализ параметров части фрагмента приложения

А1

Построение модели распределения для 3-го уровня

£

ра

Выделение циклов и связности операторов по данным

Исходное разделение

4(ПЯ*) 3 (аЬ а2 =

} ’

размещен!

ие на линейке чипа

Оценка параметрического веса частей

а1, а2,..., а у,..., ак и операторов вне циклов

Перераспределение модулей между ПЯ

Наполнение частей а фрагментов приложения модулями разделения и распределение их по ПЯ чипа

Анализ баланса загрузки каждого ПЯ линейки чипа

3-й уровень разделения

Распределение приложения закончено Рис. 2. Вариант блок-схемы многоуровневой стратегии разделения приложений для Р!М-системы

и

¡Прототип PIM-системы или её \ і___________модель___________ '

.Приложение_

БРМ

БАС

БФК

БАР

БАП

БВЦ

БРД

“СІ

БПВ

БВС

БАЗ

БФМ

БНМ

БРП

Обозначения:

БФК - блок формирования конфигурации и определения параметров Р1М-системы.

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

БВЦ - блок выделения циклов из приложения.

БАР - блок анализа ресурсов, необходимых для распределения приложений на каждом уровне.

БАС - блок анализа способов распараллеливания задач на многопроцессорной системе с функциями выбора и определения эффективности способа применительно к конкретному алгоритму реализации приложения. БПВ - блок расчета параметрических весов модулей и операторов с функциями их сравнения.

БФМ - блок формирования моделей распределения приложений по уровням.

БРП - блок исходного разделения приложения в соответствии с моделями распределения на каждом уровне. БНМ - блок наполнения основных и составных модулей, выделенных на этапе исходного разделения приложения. БАЗ - блок анализа и корректировки баланса загрузки процессоров Р1М-системы.

БРМ - блок распределения памяти.

БРД - блок распределения данных.

БВС - блок выделения соответствия системы команд процессоров набору операций приложения.

Рис. 3. Укрупненная блок-схема аппаратно-программной среды реализации стратегии разделения приложений для Р1М-систем

6. Выводы

В сложных компьютерных системах типа “процессор-в-памяти” (Р1М-системы), содержащих огромное количество процессорных элементов (ядер), большое значение для получения высокой производительности приобретают оптимальное разделение приложений и размещение полученных частей по процессорам. Специфика архитектурно-структурной организации Р1М-систем наложила свои отпечатки на процедуру распределения приложений, которая, вследствие этого, является многоуровневой. В соответствии с этим предложенная в статье модель стратегии и процедуры распределения приложений основываются на разработанной ранее многоуровневой модели Р1М-системы, которая по своей сущности содержит признаки (свойства), отличающие Р1М-систему от КС с классической архитектурой [17]. Применение такой модели распределения приложений при заданной целевой функции распределения с помощью процедуры формирования соответствующей гранулы, используя теорию нечетких множеств и теорию гранулирования, позволяет получить конфигурацию Р1М-системы, которая может быть исходной для распределения приложений.

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

имеющихся программных средств (например, функции выявления циклов в приложении и их маркировка). Однако основной набор блоков отражает специфику архитектуры PIM-системы, и реализация их основных функций просматривается в приведенном наборе процедур стратегии распределения.

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

поддерживающей реализацию этих процедур.

СПИСОК ЛИТЕРАТУРЫ

1. Архитектурно-структурная организация компьютерных средств класса “Процессор-в-памяти” / А.В. Палагин, Ю.С. Яковлев, Б.М. Тихонов и др. // Математичні машини і системи. - 2005. - № 3.- С. 3 - 16.

2. Елисеева Е.В., Яковлев Ю.С. О концепции построения программной среды PIM-систем // Управляющие системы и машины. - 2008. - № 4. - С. 58 - 67.

3. Олифер В.Г., Олифер Н.А. Сетевые операционные системы: Учебник для ВУЗов. - СПб.: ПИТЕР, 2003. -544 с.

4. Зарудный Д.И. Управление распределенными ресурсами в ОС UNIX. - М.: Московский государственный институт электроники и математики, 2005.- 50 с.

5. Rezaei М. Intelligent memory manager: towards improving the Locality behavior of allocation-intensive applications // Dept. of Computer Science and Engineering University of North Texas. - 2004. -

- http://ranger.uta.edu/~rezaei/research/dissertation.pdf.

6. Пат. 5.701.503, G06F 012/00. Method and apparatus for transferring information between a processor and a memory system: United States Patent. Singh; Gurbir; Wang; Wen-Hann; Rhodehamel; W. Michael; Bauer; М. John; Sarangdhar; V. Nitin; Опубл. 23.12.97. - 24 с.

7. Пат. 5.117.350, G06F 012/06; G06F 015/16. Memory address mechanism in a distributed memory architecture. United States Patent. Parrish; С. Osey; Jr. Peiffer; Е. Robert; Thomas; Н. James; Jr. Hilpert; J. Edwin; Опубл. 26.05.92.

8. Управление распределенными ресурсами. -

http://doc.trecom.tomsk.su/citforum.ru/win/operating_systems/sos/glava_11.shtml.

9. Яковлев Ю.С., Тихонов Б.М. О распределении памяти в компьютерных системах // Управляющие системы и машины. - 2006. - № 5. - С. 40 - 47.

10. Яковлев Ю.С., Тихонов Б.М. Об оптимизации размещения данных в PIM-системе // Математичні машини і системи. - 2006. - № 3. - С. 24 - 35.

11. Яковлев Ю.С., Елисеева Е.В. Основные задачи и методы реализации функций управления памятью в PIM-системах // Математичні машини і системи. - 2008. - № 2. - С. 47 - 62.

12. Parallelizing А. Framework for Intelligent Memory Architectures; Tsung-Chuan Huang, Slo-Li Chu // Proc. of The Seventh Workshop on Compiler Techniques for High-Performance Computing (CTHPC 2001). - Hsinchu, Taiwan, 2001. - Ar. 15-16. - P. 96 - 10. - http://parallel.iis.sinica.edu.tw/cthpc/7th/03CTHPC2001-Hardcopy.PDF.

13. Exploiting Application Parallelism for Processor-in-Memory Architecture; Slo-Li Chu, Tsung-Chuan Huang // Proc. of 2003 National Computer Symposium. - Taichung, Taiwan, 2003. - Dec 18-19. - P. 2293 - 2303. -http://dspace.lib.fcu.edu.tw/bitstream/2377/564/1/0T_1022003305.pdf.

14. Solihin Ya. Improving memory performance using intelligent memory. THESIS of Doctor of Philosophy in Computer Science in the Graduate College of the University of Illinois at Urbana-Champaign, 2002. -http//portal.acm.org/citation.cfm?id=936938&coll=&dl=&CFID=15151515&CFT0KEN=6184618

15. Гергель В.П., Стронгин Р.Г. Основы параллельных вычислений для многопроцессорных вычислительных систем: Учебное пособие. - 2-е изд., доп. - Нижний Новгород: Издательство Нижегородского госуниверситета, 2003. - 82 с.

16. Гергель В.П. Теория и практика параллельных вычислений: Учеб. пособие. - М.: Интернет-университет информационных технологий, 2007. - 423 с.

17. Елисеева Е.В., Яковлев Ю.С. Математическая модель функциональной среды PIM-системы на основе теории нечетких множеств и теории гранулирования // Математичні машини і системи. - 2009. - №1.- С.40-54.

18. Ефимов С.С. Обзор методов распараллеливания алгоритмов решения некоторых задач вычислительной дискретной математики // Математические структуры и моделирование. - 2007. - Вып. 17.- С. 72 - 93. -http://www.parallel.ru/tech/tech_dev/par_libs.html.

19. Елисеева Е.В., Яковлев Ю.С. Концепция и принципы построения форматов и набора команд гипотетической PIM-системы // Комп'ютерні засоби, мережі та системи: Зб. наук. праць. - 2008. - № 7. - С. 39 -47.

Стаття надійшла до редакції 26.07.2009