УДК 681.3.001.57
Р. А. Бикташев
АНАЛИЗ ВЕРОЯТНОСТНО-ВРЕМЕННЫХ ХАРАКТЕРИСТИК ПОДСИСТЕМЫ «ПРОЦЕССОР-ПАМЯТЬ» МНОГОПРОЦЕССОРНЫХ СИСТЕМ С ИСПОЛЬЗОВАНИЕМ МОДЕЛЕЙ НА ОСНОВЕ СТОХАСТИЧЕСКИХ СЕТЕЙ МАССОВОГО ОБСЛУЖИВАНИЯ
В статье рассматриваются способы организации многопроцессорных систем (МПС) с архитектурами разделяемой памяти типа UMA и №иМА. Предлагаются модели на основе стохастических сетей массового обслуживания для получения вероятностно-временных характеристик таких систем. Приводится алгоритм расчета стохастических сетей, используемый в разработанной визуальной программе для моделирования и исследования характеристик МПС. Представлены модели для микроанализа подсистем «процессор-память» многопроцессорных ВС. Рассмотрен конкретный пример построения моделей для получения сравнительных характеристик двух четырехпроцессорных систем с различными архитектурами памяти.
Введение
Микроанализ производят с целью получения характеристик вычислительной системы на низких уровнях проектирования, т.е. на уровне отдельных устройств или частей системы [1]. В настоящее время накоплен большой исследовательский опыт по аналитическому и имитационному моделированию однопроцессорных и многопроцессорных вычислительных систем. Большинство работ направлено на анализ аппаратных конфликтов, возникающих в общих ресурсах, таких как общая шина, общие блоки памяти. Хотя такого рода конфликты являются значительным фактором для снижения эффективной производительности многопроцессорных систем, но в большинстве случаев они рассматриваются только в виде моделей самостоятельных блоков или устройств, а не во всем комплексе задействованных аппаратных средств, участвующих в моделируемом процессе, что снижает точность моделей. В отдельных работах рассматриваются подробные модели однопроцессорных систем на уровне команд, генерируемых процессором в память, с учетом влияния буферной (кэш) памяти [2]. Однако практически отсутствуют модели многопроцессорных систем, в которых учитывалось бы комплексное влияние на пропускную способность подсистемы «процессор-память» межпроцессорной шины, кэш-памяти и основной памяти.
Известно, что межпроцессорная шина менее производительная, чем локальная. Кроме того, при доступе к шине множества процессоров, необходимо производить процедуру арбитража. Эти обстоятельства снижают реальную пропускную способность межпроцессорной шины и вносят дополнительные задержки в вычислительные процессы.
Кэш, кроме очевидных преимуществ по повышению пропускной способности памяти и разгрузке межпроцессорной шины, создает также условия для снижения эффективной производительности процессоров. Это объясняется необходимостью обеспечения согласованного состояния разделяемых данных в памяти многопроцессорных систем (кэш-когерентности). Кэш-когерентность создает дополнительный трафик на межпроцессорной шине
[3], что приводит к задержкам в реализации вычислительных процессов и, следовательно, к снижению эффективной производительности. Величина трафика зависит от конкретной реализации кэш-памяти: от способа внутренней организации и, особенно, от количества уровней в архитектуре процессорного узла и объема на каждом уровне.
На разработку более точных аналитических моделей многопроцессорных систем, основанных на аппарате стохастических сетей массового обслуживания, учитывающих перечисленные выше факторы, а также методику их построения, и направлена данная работа.
1. Типы анализируемых структур
Существует множество структурных решений многопроцессорных систем, зависящих от способов реализации общей памяти и коммутационной сети. Во-первых, это системы с сосредоточенной (иМА) и распределенной (КИМА) архитектурами памяти. В первом типе структуры вся память размещается вне процессорных узлов, т.е. является удаленной (рис. 1,а). В процессорный же узел включается только кэш одного или нескольких уровней. Время доступа каждого процессора к любой ячейке общей памяти является одинаковым. Во втором типе структуры процессорный узел содержит не только кэш, но и подключенную к локальной шине часть основной памяти (рис. 1,б). Адресное пространство и в первом, и во втором типах архитектуры является единым и делится между процессорными узлами.
а) б)
Рис. 1 МПС с архитектурами памяти типа иМА (а) и КИМА (б)
Другим классификационным признаком является способ организации межпроцессорной связи, которая осуществляется с помощью коммутационных сетей, подразделяющихся на два типа: с временной коммутацией (общая шина) и с пространственной коммутацией (системы с множеством шин, многоступенчатые или перекрестные коммутаторы) [4, 5].
Разработчиков специализированных МПС в первую очередь интересуют количественные характеристики различных способов построения таких систем.
Эти характеристики получают, исходя из заданных значений структурных параметров, в качестве которых при микроанализе выступают: быстро-
действие отдельного процессора Уср; пропускная способность кэш-памяти Ук или время обращения к кэш К пропускная способность основной памяти Ум или время обращения к памяти М пропускная способность коммутационной сети Ув или время передачи слова данных %; вероятность появления кэш-промахов рт; вероятность появления события, связанного с поддержанием кэш-когерентности, Рк; п - число процессоров; число модулей памяти - т; число устройств ВЗУ - к.
2. Представление МПС математической моделью на основе стохастических сетей массового обслуживания
Стохастические сети вполне адекватно отображают процессы функционирования многопроцессорных систем и дают приемлемые результаты для оценки их вероятностно-временных характеристик.
Рассмотрим разомкнутую стохастическую сеть массового обслуживания,
содержащую п систем обслуживания (СМО) 51, 52, ..., 5п. Будем считать, что заявки на обслуживание поступают в сеть из единственного источника 5о. Поглощение обслуженных заявок происходит также в СМО 5о (рис. 2). Заявки из источника с вероятностью Ро1 могут поступать в любую из СМО. Внутри сети заявки перемещаются случайным образом и могут покинуть ее из любой СМО с вероятностью Рда.
Рис. 2 Пример разомкнутой сети с одним источником заявок
Такая постановка не противоречит положениям теории стохастических сетей массового обслуживания [6] и вызвана тем, что в вычислительных системах существует единственный вход, куда поступают задания на выполнение программ: процессор или процессорный блок. В качестве источника заявок могут выступать задания, поступающие от периферийных устройств (терминалов, контроллеров, различного рода датчиков и других источников) или от компьютеров в системах с распределенной обработкой и др.
Стохастическая сеть задается следующими параметрами [7]: числом п
СМО в сети (5о, 51, ..., 5п), где 5о - фиктивная СМО, моделирующая источник заявок с интенсивностью их обслуживания Ао; числом каналов к в каждой СМО сети (к1, к2, ..., кп); интенсивностью потока заявок Ао источника 5о;
интенсивностью потока на входе і-й СМО Аг-; средним временем обслуживания заявок в каждой СМО сети (VI, V2, .., v„); матрицей вероятности передач Р = \piji, где ру - вероятность того, что заявка, покидающая СМО Бі, поступит на обслуживание в СМО Бу. При заданных параметрах определяются характеристики стохастической сети: интенсивность входящего в каждую СМО сети потока Ау; средняя длина очереди заявок в і-й СМО 1г и во всей сети Ь; среднее число заявок, пребывающих в і-й СМО тг и во всей сети М; среднее время ожидания обслуживания заявки і-й СМО юг- и во всей сети W; среднее время пребывания заявки в і-й СМО иг и во всей сети и.
Для автоматизации исследований разработана визуальная программа расчета характеристик разомкнутых стохастических сетей, представляющих модели многопроцессорных систем [8]. Алгоритмы расчетов базируются на теории стохастических сетей массового обслуживания, которая изложена в [6, 7].
Последовательность расчета характеристик разомкнутых стохастических сетей следующая:
1. Определяются интенсивность потоков на входе каждой отдельной СМО стохастической сети с помощью системы уравнений:
і-й СМО; а ві = ХгУг - среднее число занятых каналов.
3. Определяются средние значения характеристик отдельных СМО сети:
- длина очереди:
где pot - вероятность отсутствия заявок в t-й СМО, которая вычисляется по
3. Алгоритм расчета характеристик
П
j=o
где роо = 0.
X V в
2. Определяется загрузка как Рі = —^~ = — (1, где кі - число каналов в
кі кі
формуле
-1
- число заявок, пребывающих в СМО:
- среднее время ожидания заявки в очереди:
к
і = V, ■»!
Х< і ,,,П -в ^
Ч „2 Р0І '
к к С “%
Среднее время пребывания заявки в системе:
V, вк
иі = ®І + V =-------- ----------2 Р0І + V,.
к, к "%
4. Определяются средние значения характеристик сети в целом:
- число заявок, ожидающих обслуживания в сети (число заявок в очередях сети):
І=1
- число заявок, пребывающих в сети (число заявок в очередях сети и на обслуживании):
П
М = ^ ті;
І=1
- время ожидания заявки в очередях сети:
п
Ж = X аІЮІ,
І=1
и время пребывания заявки в сети:
п
и = ^ щщ,
І=1
где аг- = / ^о - коэффициент передачи в І-ю СМО.
4. Концептуальная модель подсистемы «процессор-память»
Модель взаимодействия аппаратных ресурсов при выполнении запросов процессоров в память показана на рисунке 3.
Часть этих запросов обслуживается в кэш; в случае кэш-промаха запрос по коммутационной сети передается в память. Существует два вида запросов: на чтение и на запись. Каждый из них имеет свои особенности, заключающиеся в том, что частота запросов чтения превышает в 4-6 раз частоту запросов записи. Причем время обслуживания запросов чтения основной памятью больше времени обслуживания запросов записи. Однако большинство запросов чтения удовлетворяется в кэш (90-99%); запросы записи либо вовсе не удовлетворяются (если используется алгоритм сквозной записи), либо удовлетворяются частично (если применен алгоритм обратной записи). Кроме того, транзакция записи вызывает изменение строк кэш, что приводит к не-
обходимости выполнения процедуры согласования разделяемых данных (кэш-когерентности) в процессорных узлах и в основной памяти.
Вначале рассмотрим модель взаимодействия аппаратных ресурсов при выполнении транзакции чтения в многопроцессорной системе с коммутационной сетью на основе общей шины, функционирующей в режиме расщепления транзакций [5]. Выполнение транзакции проходит две фазы обслуживания: сначала общей шиной, затем одним из модулей памяти. Перед началом выполнения транзакции процессор запрашивает доступ к шине. Если шина свободна, процессор выставляет на нее адрес слова, после чего освобождает шину. Контроллер памяти самостоятельно читает слово (пакет) данных и передает его запрашивающему процессору. Таким образом, транзакция чтения расщепляется на две операции: 1) выдачу процессором адреса слова в память; 2) передачу памятью слова (пакета длиной в строку кэш) данных в процессор. Пропускная способность шины при этом повышается, поскольку она освобождается на время физического процесса чтения слова (пакета) данных из памяти. Это время может быть использовано другим процессором на выполнение своих запросов. Однако шина обслуживает каждую транзакцию чтения дважды, что вносит дополнительные задержки в выполняемые операции.
Запрос на запись, так же как и запрос на чтение, проходит две фазы обслуживания: шиной и модулем памяти. При выполнении транзакции записи запрашивается доступ к шине и, если она свободна, то процессор выставляет на нее адрес и слово данных, после чего освобождает шину. Эта информация запоминается контролером памяти, который самостоятельно осуществляет процесс физической записи в заданную ячейку.
При занятой шине процессор переходит в режим ожидания до ее освобождения. Если занят запрашиваемый модуль памяти, то запрос становится в очередь (очередь реализуется аппаратурой контроллера памяти). Чем больше процессоров содержит МПС, тем больше очереди к шине и к модулям памяти, следовательно, выше потери производительности из-за конфликтов при доступе к шине.
Будем считать, что пропускная способность общей шины зависит от ширины шины Ь, которая определяется величиной, обратной числу циклов шины, необходимых для передачи одного слова (байта) данных. При Ь = 1 число линий в шине равно числу разрядов в информационной части переда-
Процессоры
Рис. 3 Модель взаимодействия аппаратных ресурсов МПС при выполнении запросов процессоров в память
ваемого сообщения. Пропускная способность общей памяти зависит от способа выдачи данных (в пакетном режиме или одиночными словами) и от числа параллельно работающих модулей.
5. Аналитические модели подсистемы «процессор-память»
Структура модели МПС с архитектурой ИМЛ и ее граф передач показаны на рисунке 4. Источником заявок являются процессоры, генерирующие потоки транзакций чтения, записи в память и потоки для обеспечения кэш-когерентности. В качестве обслуживающих приборов выступают общая шина, общая память и кэш. Поток заявок а/ моделируют транзакции обращения 1-го процессора к глобальной (удаленной) памяти; в/ - транзакции, обеспечивающие кэш-когерентность. Процесс выполнения заявок из потока а/ проходит две фазы обслуживания транзакций записи: общей шиной 3/ и одним из
модулей памяти Sj ( = 2, ..., т + 1). Для транзакций чтения три фазы обслуживания: общей шиной, общей памятью и снова общей шиной. Заявки из поп
тока в = X в/ проходят две фазы обслуживания - общей шиной и кэш. Все
/=1
входящие в СМО потоки считаются простейшими, а времена обслуживания распределенными по экспоненциальному закону.
б)
Рис. 4 Структура модели МПС с архитектурой памяти ИМЛ (а) и граф передач стохастической сети (б)
Интенсивность потока заявок на входе сети определяется суммарным потоком заявок процессоров у/ = а/ + в/. Заявка, поступившая в СМО Б/ и заставшая ее занятой, становится в очередь, которая считается неограниченной (что в значительной степени соответствует многозадачному режиму работы
п
каждого вычислительного узла), причем Xо = ^X/ . Заявка, обслуженная в
і=1
СМО Б/, с вероятностью рц поступает на обслуживание в одну из СМО Бц (Ц = 2, ..., т + 1). Получив полное обслуживание, заявка покидает сеть с вероятностью р/0.
Структура модели МПС с архитектурой КИМА и ее граф состояний показаны на рисунке 5.
іР10 Эг
б)
Рис. 5 Структура модели МПС с архитектурой памяти КИМА (а) и граф передач стохастической сети (б)
В модели действуют следующие потоки: у/ - поток заявок, генерируемый /-м процессором. Суммарный поток, формируемый источником заявок
п
(СМО Бо), составляет Xо = ^X/ (/ = 1, ..., п). Заявки из потока уц = роДО
/=1
(Ц = 1, ..., т) проходят одну фазу обслуживания - модулем памяти Бц. Заявки 30
n
из потока aj = pijyo (j = 1, m) и P = I ft получают такое же обслуживание,
i=1
как и в предыдущей модели.
Предложенные модели были применены для получения сравнительных характеристик четырехпроцессорных систем с общей шиной (ОШ) и архитектурами памяти типа UMA и NUMA. Моделирование производилось с помощью программы расчета стохастических сетей массового обслуживания [9]. Исходные данные были получены для архитектур, в которых использовались процессоры Pentium 4 с тактовой частотой 2000 МГц, модули памяти DDR PC-3200 400 Мгц DDR (время такта - 5 нс) и шина QDR 800 МГц (QDR, время такта - 5 нс, цикл шины - 2,5 нс).
Время обращения к памяти рассчитывалась на основе ее таймингов и статистических данных о шансах возникновения разных режимов доступа. Это время составило 37,5 нс. В примере анализируется, как влияет частота запросов в общую память на ее реальную пропускную способность с учетом того, что часть запросов удовлетворяется в кэш вычислительного узла. Очевидно, что частота запросов в память зависит от архитектуры процессора, включенного в состав мультипроцессора, его тактовой частоты, числа процессоров в системе, объема и кэш-памяти процессорного узла, а также эффективности алгоритма поддержания кэш-когерентности.
За исходную была принята четырехпроцессорная архитектура мультипроцессора, в процессорных узлах которой на всех уровнях содержится 512 Кб кэш. В соответствии со статистикой в кэш объемом 512 Кб попадает 99% запросов, поэтому суммарный поток заявок в память от процессора частотой 2 ГГц принят равным 0,02 запроса/нс. Считается, что запрос памяти происходит в каждом процессорном такте. Поток запросов на обеспечение кэш-когерентности составил 5-10% от всех запросов в память.
При моделировании были проанализированы два варианта работы мультипроцессорной системы с архитектурой NUMA:
1) каждый процессор исполняет собственную ветвь программы, которая в основном помещается в локальной памяти; вероятность обращения к удаленной памяти мала (структура задачи MISD) и находится в диапазоне от
0,001 до 0,01;
2) все процессоры исполняют ветви программы, данные для которых равномерно распределены по всей памяти, вероятность обращения к модулям памяти велика (структура задачи MIMD) и находится в диапазоне от 0,1 до 0,5;
Для системы с организацией UMA оба варианта равнозначны, т.к. в такой системе отсутствуют понятия локальной и удаленной памяти. Для оценки архитектуры была использована латентность подсистемы памяти, измеряемая в наносекундах. В результате моделирования были получены значения, представленные на рисунке 6,а. Во всех трех вариантах узким местом являлась общая шина. Проведены повторные расчеты с использованием расширенной общей шины (рис. 6,б). Из него видно, как сильно уменьшилось время реакции системы при 2-кратном расширении общей шины (b = 2). По результатам расчетов можно сделать выводы и предложить вполне конкретные решения по увеличению производительности МПС.
Суммарный поток заявок от 4 процессоров (з/нс)
а)
б)
Рис. 6 Зависимость латентности подсистемы памяти от частоты потока запросов в память: а) одноканальная общая шина; б) двухканальная общая шина
Заключение
1. В результате проведенных исследований были предложены аналитические модели для микроанализа подсистемы «процессор-память» многопроцессорных систем, основанные на стохастических сетях массового обслуживания, которые, в отличие от существующих, позволяют учесть влияние кэш-памяти на вероятностно-временные характеристики.
2. На основании предложенных моделей разработаны и исследованы стохастические сетевые модели для получения сравнительных характеристик четырехпроцессорных систем с архитектурами памяти UMA и NUMA по критерию латентности памяти.
Список литературы
1. Байцер, Б. Микроанализ производительности вычислительных систем / Б. Бай-цер. - М. : Радио и связь, 1983. - 360 с.
2. Артамонов, Г. Т. Аналитические вероятностные модели функционирования ЭВМ / Г. Т. Артамонов, О. М. Брехов. - М. : Энергия, 1978. - 386 с.
3. Таненбаум, Э. Современные операционные системы / Э. Таненбаум. - СПб. : Питер, 2004. - 1040 с.
4. Бикташев, Р. А. Многопроцессорные системы. Архитектура, топология, анализ производительности : учебное пособие / Р. А. Бикташев, В. С. Князьков. -Пенза : Пенз. гос. ун-т, 2004. - 107 с.
5. Хамахер, К. Организация ЭВМ / К. Хамахер, З. Вранешич, С. Заки. - 5-е изд. -СПб. : Питер BHV, 2003. - 848 с.
6. Клейнрок, Л. Теория массового обслуживания / Л. Клейнрок. - М. : Машиностроение, 1979. - 432 с.
7. Основы теории вычислительных систем / под ред. С. А. Майорова. - М. : Высшая школа, 1978. - 408 с.
8. Бикташев, Р. А. Визуальная система аналитического моделирования стохастических сетей / Р. А. Бикташев, И. О. Кошкин, И. А. Тюрин // Новые информационные технологии и системы : труды Международной НТК. - Пенза : Изд-во ПГУ, 2005. - 2 ч.
9. Бикташев, Р. А. Разработка метода анализа архитектур вычислительных систем с использованием моделирования / Р. А. Бикташев, В. А. Кичкидов, Э. Ю. Алиев, С. В. Резуев // Модернизация системы управления качеством образовательного процесса в высшей школе. - Пенза : Изд-во Пенз. гос. технол. акад., 2007. -С. 102-110.