Для ботаников и лентяев

aa1
aa2
aa3

ВКАС

1. Основные понятия и классификация систем обработки данных (СОД).

2. Логическая организация вычислительного процесса в СОД.

3. Методы оценки производительности в СОД.

4. Режимы обработки данных в СОД.

5. Способы организации параллельной обработки информации.

6. Классификация систем параллельной обработки.

7. Типы структурной организации архитектур МВПК.

8. Потоки заявок и потоки их обслуживания в ВС. Характеристики потоков заявок. Простейший поток. (Основы теории вычислительных систем. Дисциплины обслуживания заявок).

9. Основные характеристики обслуживания заявок в ВС для одномерного потока. Закон сохранения времени ожидания

10. Основные характеристики обслуживания заявок в ВС для многомерного потока.

11. Модели дисциплин обслуживания заявок в ВС. Бесприоритетные дисциплины. (Характеристики без приоритетных дисциплин обслуживания).

12. Модели дисциплин обслуживания заявок в ВС. Обслуживание с относительным приоритетом.

13. Модели дисциплин обслуживания заявок в ВС. Обслуживание с абсолютным приоритетом.

14. Критерии эффективности вычислительных систем (с неограниченным временем пребывания заявок).

15. Задачи выбора оптимального быстродействия и оптимальной дисциплины обслуживания.

16. Матричные Вычислительные Системы (ВС).

17. Ассоциативные ВС.

18. Векторно-конвейерные системы. Особенности архитектуры системы CRAY.

19. Функционально распределённые ВС.

20. Однородные системы и среды.

21. Организация когерентности многоуровневой иерархической памяти ВС и ВК.

22. Механизмы неявной когерентности. Однопроцессорный подход.

23. Механизмы неявной когерентности. Многопроцессорный подход. Сосредоточенная память. (+Типы многопроцессорных систем).

24. Механизмы неявной когерентности. Многопроцессорный подход. Физически распределённая память.

25. Механизм явной реализации когерентности

26. Построение коммуникационных сред (КС). КС на основе масштабируемого когерентного интерфейса (SCI).

27. Структура коммуникационных сред на базе SCI. Физическая реализация каналов.

28. Логическая структура SCI. Организация межмодульного взаимодействия

29. Функциональная организация узла SCI. Приём пакетов

30. Функциональная организация узла SCI. Передача пакетов. Управление потоком.

31. Реализация устройств SCI на элементной базе Dolphin Interconnect Solution.

33. Технология параллельного программирования с использованием MPI. Общая характеристика. Основные приёмы программирования.

33. Технология параллельного программирования с использованием MPI. Типы функций. Функции управления средой MPI.

34. Технология параллельного программирования с использованием MPI. Процедуры передачи сообщений.

35. Анализ супер-ЭВМ программы ASCI.

36. Современные тесты. Оценки производительности современных ВК и С.

37. Современные тесты. Оценки производительности современных ВК и С. Ливерморские циклы, LINPACK, SPEC.

38. Современные тесты для оценки производительности ВК и ВС. Тесты TPC, AIM

19. Функционально распределённые ВС.

Функциональное распределение системы на вычислительные комплексы общего назначения используется для НТ расчетов и моделирования возлагается выполнение большого спектра задач. При этом комплекс должен реализовывать обширный набор функций над различными типами и структурами данных. Высокопроизводительные системы общего назначения создаются на основе многопроцессорных комплексов. Использование в таких системах однотипных процессоров общего назначения не является эффективным, поскольку в каждом процессоре в каждый момент времени используется лишь часть ресурсов, обеспечивающих обработку задач одного типа. Более оптимальным является использование специализированных процессоров и вычислительных узлов, ориентированных на реализацию определенных функций, например, обработки скалярных величин, матричных данных, организацию сложных вычислений и другое. При этом значительно увеличивается коэффициент использования ресурсов и производительность. Это обусловлено тем, что одновременно могут выполняться задачи, требующие разных специализированных ресурсов в комплексе. Вычислительный комплекс построенный на основе разнотипных узлов, специализированных на определенные функции, называется функционально распределенным вычислительным комплексом. ФРВК - функционально распределенный вычичлительны комплекс. УП – управляющий процессор. ОП – обрабатывающий процессор. МП – матричный процессор. ЯП – языковой процессор. ПБД – процесссор баз данных. КП – коммуникационный процессор. ПВВ – процессор ввода-вывода. ОснП – основная память. Обработка каждой задачи распределяется между процессорами при решении задачи возможны этапы различных типов обработок, которые выполняются соответствующими специализированными процессорами в параллельном режиме.

20. Однородные системы и среды. Несколько другой подход к проектированию многокомпьютерных систем базируется на 3-х принципах: 1) параллельность задач и алгоритмов – всякая сложная задача может быть представлена в виде связанных между собой простых задач. При этом может быть предложен параллельный алгоритм, допускающий решение сложных задач. 2) переменность логической структуры – процесс решения сложной задачи может быть представлен структурной моделью, включающей в себя подзадачи и связи между ними. Это означает, что для каждой сложной задачи можно предложить соответствующую структуру из обрабатываемых элементов и связей между ними. 3) конструктивная однородность элементов и связей. Все простые задачи получаются путём деления сложной задачи, поэтому все простые задачи примерно одинаковы по объёму вычислений и связаны между собой одинаковыми схемами обмена. Это означает, что система может быть построена из одинаковых обрабатывающих элементов, связанных между собой одинаковым образом. Может быть предложена однородная среда, состоящая из большого количества процессорных элементов, объединенных таким образом с помощью рабочих и настроечных каналов. В результате получается структура(например, прямоугольная решётка), на основе которой путём реконфигурации связей и режимов работы ПЭ может быть построена структура ВС-мы адекватная структуре параллельного алгоритма. Следует отметить, что в существующих ММВК или МПВК в той или иной степени реализующая все три принципа.

21. Организация когерентности многоуровневой иерархической памяти ВС и ВК.

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

22. Механизмы неявной когерентности. Однопроцессорный подход.

Для поддержки когерентности память однопроцессорной архитектуры использует следующие алгоритмы: 1. алгоритм сквозной записи (write through) 2. алгоритм простого свопинга (simple swapping) – алгоритм обратной записи 3. алгоритм свопинга с флагами (flag swapping) 4. алгоритм регистрового свопинга с флагами (RFS)

23. Механизмы неявной когерентности. Многопроцессорный подход. Сосредоточенная память. (+Типы многопроцессорных систем).

MIMD: 1. симметричные мультипроцессорные SMP 2. кластеры 3. массово – параллельные системы (MPP)

Многопроцессорная система с общим кэшем и общей памятью Каждый ВМ имеет собственную локальную память. Имеется общая разделяемая основная память, все вычислительные модули подсоединены к ОП посредством шины. Все действия с использованием транзакций шины, производимые ВМ и внешними устройствами с копиями строк, как в каждой кэш-памяти, так и в основной памяти доступны для отслеживания всем ВМ. Это является следствием того, что в каждый момент на шине передаёт только один, а воспринимают все подключённые к шине абоненты. По сравнению с предыдущей архитектурой, здесь возникает проблема когерентности кэш-памяти. В такой системе КЭШи могут содержать как разделяемые, так и частные данные (которые используются одним процессором), в то время, как разделяемые данные используются многими процессорами, по существу обеспечивая обмен между ними. Когда кэшируется элемент частных данных, их значения передаются в кэш для сокращения времени доступа. Если кэшируются разделяемые данные, то разделяемое значение может содержаться в нескольких кэшах. Это означает, что появляются копии одних и тех же данных. Таким образом кэширование разделяемых данных вызывает проблему когерентности кэш-памяти.

Организация когерентности памяти многопроцессорной системы с разделяемыми кэшами и общей памятью. Существуют 2 вида протоколов:

1. протоколы на основе справочника. Информация о состоянии блока физической памяти содержится только в одном месте, называемом справочником. Физически справочник может быть распределён по узлам системы.

2. протоколы наблюдения (snooping) Каждый кэш, который содержит копию данных использования блока физической памяти имеет также соответствующую копию служебной информации. Обычно КЭШи расположены на общей разделяемой шине и контроллеры всех КЭШей наблюдают за шиной для определения не содержат ли они копию соответствующего блока. Один заключается в том, чтобы гарантировать, что процессор должен получить исключительно права доступа к элементам данных перед выполнением записи в этот в этот элемент данных. Протокол записи с аннулированием, поскольку при выполнении записи, он аннулирует другие копии. Гарантировать, что во время выполнения записи не существует никаких других копий элементов данных, т.е. все другие кэшированные копии элемента данных аннулированы. Этот тип протокола называется протоколом записи данных с обновлением. Алгоритм поддержания когерентности MESI. Он представляет собой организацию когерентности памяти с кэш-памятью. Он предотвращает лишние передачи между кэш и основной памятью. Если данные кэш-памяти не изменяются, то их незачем пересылать. Согласно алгоритму строка КЭШа может находится в следующем состоянии: М – модифицировано-доступна для чтения и записи только в этом ВМ, потому что модифицирующая команда записей по сравнению со строкой в основной памяти. E – строка монопольно копированная – доступна по чтению и записи в этом ВМ и в основной памяти. S – строка множественно копированная (разделяемая) – доступна по чтению и записи в этом ВМ, основной памяти и кэш-памятях других ВМ, в которых находится её копия. I – строка невозможна к исполнению – недоступна ни по чтению, ни по записи. Состояние строки исп.: 1. Для определения процессором возможности локального без выхода на шину доступа к данным кэш-памяти. 2. Для управления механизмом когерентности WT = 1 – режим сквозной записи. WT = 2 – режим обратной записи. Промах чтения в кэш-памяти заставляет вызывать стр. из основной памяти и сопоставлять ей состояние E или S. Кэш-память заполняется только при промахах чтения. При промахах записи транз-я записи помещается в буфер и посылается основной памяти. При несостоятельной строке в сост-и I команда чтения данного из этой строки вызывается чтением строки из основной памяти, размещение её в кэш-памяти и изменение состояния этой строки на E или S. Состояние S устанавливается при режиме обр. записи, что позволяет модифицировать данные кэш-памяти без немедленной модификации данных в основной памяти, что повышает производительность. До тех пор, пока к данным ВМ не будет доступа других ВМ или ВУ, не будет обр. записи и ВМ не будет использовать шину. В состоянии I команда записи в эту строку изменит только содержание строки основной памяти, но не изменение содержания кэш-памяти. В состоянии S строки чтение данного из этой строки не меняет её состояние. Если установить режим сквозной записи, то после завершения записи состояние строки меняется на E, при режиме обратной записи выполняется опять же сквозная запись, но состояние строки остаётся прежним. Если состояние строки E, то чтение сохраняет состояние, а запись переводит в состояние М. Если строка М, то команды чтения и записи не меняют состояния.

24. Механизмы неявной когерентности. Многопроцессорный подход. Физически распределённая память.

Общий подход к поддержанию когерентности КЭШей в системах с когерентной памятью заключается в следующем: при каждом промахе в КЭШ в любом процессоре инициируется запрос требуемой строки из того блока памяти, в котором эта строка размещена. В дальнейшем этот блок памяти будет по отношению к этой строке называется резидентным. Запрос передаётся в коммутатор и далее в модуль с резидентным для строки блоком памяти, из которой затем необходимая строка через коммутатор пересылается в модуль в котором произошёл промах. При этом в каждом модуле для каждой резидентной строки ведётся список модулей, в кэшах в которого эта строка размещена. Строка, размещённая в КЭШах более чем одного модуля, называется разделяемой. Когерентность КЭШей обеспечивается следующим: при обращении к кэш-памяти в ходе операции записи данных после самой записи процессор приостанавливается до тех пор, пока не выполнит последовательность действий: изменение строки пересылки в кэш модуля, затем, если она была разделена, она пересылается из резидентной памяти во все модули, указанные в списке, разделяющих эту строку. После получения подтверждений, что все копии изменены, резидентный модуль пересылает в процессор разрешение продолжить вычисления.

25. Механизм явной реализации когерентности

Исполняются отдельные наборы команд типа load, store, send, receive для управления адаптерами каналов I/O. Задача программиста – эффективно запр-ть передачу данных, совмещая их по возможности с вычислениями и минимальным объёмом передачи данных. При программировании нужно учитывать, что вновь прибывшая строка данных делает несостоятельную копию этой строки в кэш-памяти => необходимо предусмотреть организацию когерентности вновь прибывшей к уже кэшированной строк.

26. Построение коммуникационных сред (КС). КС на основе масштабируемого когерентного интерфейса (SCI).

Стандарт был принят в 92 г. IBM, SUN, APPLE, HP, SGI/CRAI. Механизм когерентности: SCI предусматривает реализацию когерентности по средствам стандартной организации кэш-памяти, размещённого в узле SCI. Эта кэш-память располагается в интерфейсе между ВМ и узлами и вписывается в механизм когерентности следующим образом: Если в предыдущих уровнях иерархии памяти ВМ обнаруживается отсутствие необходимых данных, то производится поиск этих данных в кэш-памяти узла. При нахождении этих данных, если они состоятельны, их копия перемещается внутрь иерархии памяти ВМ. При нахождении данных в модифицированном состоянии ожидается конец модификации, и затем копия данных помещается внутрь иерархии памяти ВМ. При отсутствии данных вырабатывается сигнал промаха, который активизирует адаптер интерфейса на действия по доставке данных из удалённых блоков памяти в ВМ, а также стандартный протокол управления когерентностью кэш-памятей узлов. Назначение интерфейса. Стандарт SCI обеспечивает построение лёгкой реализации, масштабируемой, эффективной по стоимости для объединения процессоров памятей, либо создания распределённой сети работы станций, либо для организации I/O суперЭВМ и высокопроизводительных серверов. Производительность не меньше: С = 8 Гбит/сек – для сосредоточенных систем С = 1 Гбит/сек – для распределённых систем (для СКИФ – С = 400 Мбит/сек)

27. Структура коммуникационных сред на базе SCI. Физическая реализация каналов.

Каждый узел входные и выходные каналы. Узлы связанные однонаправленными каналами либо с соседним узлом, либо подключённым к коммутатору SCI. Мультипроцессорный сервер: SCI коммутатор линков (4х4) – SCI (4x4) При объединении узлов должно обязательно формироваться цикличная магистраль из узлов, соединёнными между собой входными и выходными каналами. В центр магистрали необходим узел SCRUBBER – управляющий узел. Один из узлов в кольце, называется SCRUBBER, выполняет функции: 1. инициализация узлов 2. управление таймерами 3. уничтожение пакетов, не нашедших адресата 4. уничтожение пакетов, помеченных этим же узлом Однонаправленность передач SCI имеет принципиальный характер, поскольку исключает переключает аппаратуры портов с передачи на приём и обратно. Такое множество парных соединений обеспечивает наибольшую скорость передачи. Физическая реализация каналов SCI. 18 – ДЕ –500 Канал передачи 18 бит параллельно с использованием фифференц. электросигналов с передачей информации по заднему и переднему фронту на частоте 500 МГц. Из 18: 16 – шина; 17 – передача тактовых сигналов; 18 – передача флаг. Бита. 1 – FO – 1250 Оптоволоконный канал с побитной передачей с пропускной способностью – 1,250 Мбит/сек.

28. Логическая структура SCI. Организация межмодульного взаимодействия

Логический обмен между узлами SCI реализовано по средствам транзакций, включает операции чтения и записи, средства синхронизации, средства поддержки когерентности, передачё сообщений и сигналов прерываний. Все транзакции пересылают SCI-пакеты между узлом-источником и узлом-получателем. Фиксированная длина SCI-пакетов – 64 или 256 байт. Переменная длина поля данных – 1 –16 байт. Протоколы передачи пакетов обеспечивают управление передачей, устранение последствий отказов. Форматы транзакций не зависят от топологий. Использование транзакций выглядит в виде: Архитектура SCI. Под SCI понимается 64-х разрядная архитектура с 64-битным адресным пространством. Старшие 16 бит – адрес узла (для маршрутизации пакетов между узлами системы), 48 бит – для адресации внутри памяти узла. SCI ориентируется на поддержку строк размером 64 байта. Другие размеры строк автоматически поддерживаются в многоуровневых кэш-памятях. Форматы пакетов SCI. 16 бит Первый 16-и битовый символ заголовка представляет собой идентификатор узла получателя. Данный символ узел получает первым и на основе его содержания определяет следует ли копировать данный пакет собственно в буфер, либо сразу же его передавать в выходной link (порт). Во 2-м 16-битном символе кодируется режим прохождения пакета, тип транзакции и длина пакета. Поле «команда» содержит ту команду, которую следует выполнить узлу получателю. 3-й 16-битный символ – идентификатор источника. Все пакеты содержащие 6-разрядный порядковый номер позволяют различать пакеты одного отправителя.

29. Функциональная организация узла SCI. Приём пакетов

Узлы SCI должны отсылать сформированные в них пакеты возможно одновременно с приёмом других пакетов, адресованных узлу, а так же пропуском через узел транзитных пакетов. Для транзитных пакетов, прибывших во время передачи узлом собственного пакета предусматривается собственная FIFO-очередь. При дисциплине обслуживания, когда собственный пакет не передаётся до тех пор, пока есть транзит., необходимая длина проходной очереди определяется длиной передаваемых узлами пакетов. Узел SCI принимает поток данных, эти потоки составляются из SCI-пакетов и свободных символов Idle, которые заполняют интервалы между пакетами, либо символы пакетов SCI. Приём пакетов узлом SCI. Появление единичного сигнала на флаговой магистрали отличает начало пакета. Если адрес получателя в пакете совпадает с адресом узла, пакет извлекается в узел. Информация из заголовка используется для дублирования эхо-пакета, который заносится в проходную FIFO-очередь для отправки от получателя к отправителю. Если входная FIFO-очередь узла полна, формируется эхо-пакет с установленным в нём битом занятости. Это извещает отправителя о необходимости передать пакет повторно. В случае неполной входной FIFO-очереди пакет, предназначенный данному узлу направляется в неё, затем пересчитывается ЦИК, при совпадении пакет считается принятым успешно, в противном случае пакет выбрасывается, а ЦИК эхо-пакета изменяется, таким образом чтобы эхо-пакет был отброшен. Если пакет не предназначен узлу, то прибывающий пакет через дешифратор, тут же направляется в проходную очередь. Каждый пересылаемый пакет накаливает информацию для……Управляющая информация помещается в заголовок. На основе него выполняются все функции управления потоками: арбитраж, приоритетность, продвижение данных.

30. Функциональная организация узла SCI. Передача пакетов. Управление потоком.

Передача пакетов узлом SCI. Узел передать пакет, если его проходная очередь пуста. Передача пакетов инициирует перемещение пакетов в его выходную очередь. В процессе передаче пакета и формирования ЦИК, который затем присоединяется к концу. Передача пакетов в выходной линк начинается с выставления на выходных линиях данных битов 1-го символа и установкой высокого значения флага. Значение флага остаётся высоким до конца передачи пакета. Цикл добавляется к концу пакета, когда значение флага становится низким. Узел, отправляя пакет, помечает его номером, который возвращается ему при приёме пакета от узла адресата. Если в течение таймаута не поступает ответный пакет, то выполняется повтор передачи. После выдачи пакета в выходной линк его копия сохраняется в выходной очереди до момента получения эхо-пакета. Узел может послать вплоть до 64 пакетов прежде, чем будет получен ответный эхо-пакет. Заметим, что пакеты могут приходить не в том порядке, в котором были посланы, поэтому необходимы номера пактов для установления исходной последовательности передачи. Управление потоком. Предусмотрен арбитраж, предотвращающий заторы и переполнения. Для предотвращения блокировок всем узлам предоставляется доступ к интерфейсу. Это означает, что все возможные 64k узлов могут начать передачу одновременно. Алгоритм базируется на предоставлении всем равных возможностей и приоритетностей. Алгоритм работает на основе информации заголовка и свободных символов между пакетами. Уровень приоритета пакета определяется командой, содержащейся в заголовке. Узел, который хочет передать пакет с большим приоритетом, чем имеет проходящий через него пакт, вносит соответствующий код в заголовок проходящего через него пакета. Это информирует узел, пославший пакет, о том, что другой узел с большим приоритетом хочет передавать. SCI имеет несколько механизмов для эффективного продвижения пакетов, для предотвращения дедлоков. SCI имеет отдельные очереди для пакетов и эхо-пакетов, а также механизмы запрещающие генерировать новые пакеты по получению эхо-пакета с требованием повторной передачи. Для борьбы с заторами используются специальные классы протоколов. Среди них выделяются протоколы распределения пропускной способности и протоколы распределения очередей. Первые протоколы способны запрещать передачу пакетов от совокупности узлов в случае, если один из узлов не может передать свой пакет. Вторые – для распределения объёмов входной очереди в случае, если несколько узлов посылают пакеты одному узлу.

31. Реализация устройств SCI на элементной базе Dolphin Interconnect Solution.

3 СБИС. 1. Контроллер линков – реализует транспортный протокол интерфейса SCI. 2. CMC/CDC – Cache Directory Controller/ Cache Memory Controller. Для управления когерентностью кэшей и памяти. 3. Multiple Link Controller – используется для обр. дублированных SCI соединений в отказоустойчивых системах. 1-ая СБИС имеет входные и выходные линки и вз-т посредством их с другими контроллерами, реализующими подмножество протокола SCI, называется B-Link (50МГц, 64б шина, 200Мбайт/с). Используя контроллеры линков можно строить унифицированные адаптеры – мосты SCI с разными шинами, которые обеспечивают преобразование команд этих шин в команды шины B-Link для преобразования их затем в транзакции SCI. Кроме этого из нескольких микросхем контроллеров линков может быть построен коммутатор путём объединения этих СБИС с шиной B-Link. Коммутатор перенаправляющий SCI-пакеты между портами, построен с использованием 4-ёх микросхем контроллеров линков, каждая микросхема работает в режиме передачи и пересылки SCI-пакета. Коммутация пакетов осуществляется внутренней шиной B-Link со скоростью до 400Мб/с.

32. Технология параллельного программирования с использованием MPI. Общая характеристика. Основные приёмы программирования.

В настоящее время существуют два основных подхода к распараллеливанию вычислений. Это параллелизм данных и параллелизм задач. В англоязычной литературе соответствующие термины - data parallel и message passing. В основе обоих подходов лежит распределение вычислительной работы по доступным пользователю процессорам параллельного компьютера. При этом приходится решать разнообразные проблемы. Прежде всего, это достаточно равномерная загрузка процессоров, так как если основная вычислительная работа будет ложиться на один из процессоров, мы приходим к случаю обычных последовательных вычислений, и в этом случае никакого выигрыша за счет распараллеливания задачи не будет. Сбалансированная работа процессоров - это первая проблема, которую следует решить при организации параллельных вычислений. Другая и не менее важная проблема - скорость обмена информацией между процессорами. Если вычисления выполняются на высокопроизводительных процессорах, загрузка которых достаточно равномерная, но скорость обмена данными низкая, основная часть времени будет тратиться впустую на ожидание информации, необходимой для дальнейшей работы данного процессора. Рассматриваемые парадигмы программирования различаются методами решения этих двух основных проблем. Разберем более подробно параллелизм данных и параллелизм задач. Параллелизм данных Основная идея подхода, основанного на параллелизме данных, заключается в том, что одна операция выполняется сразу над всеми элементами массива данных. Различные фрагменты такого массива обрабатываются на векторном процессоре или на разных процессорах параллельной машины. Видим, таким образом, что в рамках данного подхода от программиста не требуется больших усилий по векторизации или распараллеливанию вычислений. Даже при программировании сложных вычислительных алгоритмов можно использовать библиотеки подпрограмм, специально разработанных с учетом конкретной архитектуры компьютера и оптимизированных для этой архитектуры. Подход, основанный на параллелизме данных, базируется на использовании при разработке программ базового набора операций: - операции управления данными; - операции над массивами в целом и их фрагментами; - условные операции; - операции приведения; - операции сдвига; - операции сканирования; - операции, связанные с пересылкой данных. Параллелизм задач Стиль программирования, основанный на параллелизме задач подразумевает, что вычислительная задача разбивается на несколько относительно самостоятельных подзадач и каждый процессор загружается своей собственной подзадачей. По сравнению с подходом, основанным на параллелизме данных, данный подход более трудоемкий, с ним связаны следующие проблемы: - повышенная трудоемкость разработки программы и ее отладки; - на программиста ложится вся ответственность за равномерную загрузку процессоров параллельного компьютера; - программисту приходится минимизировать обмен данными между задачами, так как пересылка данных - наиболее "времяёмкий" процесс; - повышенная опасность возникновения тупиковых ситуаций, когда отправленная одной программой посылка с данными не приходит к месту назначения. MPI – это большая библиотека функций для передачи сообщений, которая позволяет пользователю переделать свою последовательную программу в программу, которая будет полностью использовать параллельную архитектуру используемой вычислительной системы. MPI предоставляет программисту единый механизм взаимодействия ветвей внутри параллельного приложения независимо от машинной архитектуры (однопроцессорные/многопроцессорные с общей памятью / раздельной памятью), взаимного расположения ветвей (на одном процессоре / на разных процессорах). Программа, использующая MPI, легче отлаживается и быстрее переносится на другие платформы. Минимально в состав MPI входят библиотека программирования (заголовочные и библиотечные файлы для языков С, С++ и Фортран) и загрузчик приложений. Для MPI необходимо создавать приложения, содержащие код всех вервей сразу. MPI-загрузчиком запускается указываемое количество экземпляров программы. Каждый экземпляр определяет свой порядковый номер в запущенном коллективе, и в зависимости от этого номера и размера коллектива выполняет ту или иную ветвь алгоритма. Такая модель параллелизма называется Single Program/Multiple Data (SPMD) и является частным случаем модели Multiple Instruction/Multiple Data (MIMD). Каждая ветвь имеет пространство данных, полностью изолированное от других ветвей. Обмениваются данными ветви только в виде сообщений MPI. Все ветви запускаются загрузчиком одновременно. Количество ветвей фиксировано – это означает, что в ходе работы порождение новых вервей невозможно. Разные MPI-процессы могут выполняться как на разных процессорах, так и на одном и том же – для MPI-программы это роли не играет, поскольку в обоих случаях механизм обмена данными одинаков. Процессы обмениваются друг с другом данными в виде сообщений. Сообщения проходят под идентификаторами, которые позволяют программе и библиотеке связи отличать их друг от друга. Для совместного проведения тех или иных расчетов процессы внутри приложения объединяются в группы. Каждый процесс может узнать у библиотеки связи свой номер внутри группы, и, в зависимости от номера, приступает к выполнению соответствующей части расчетов. MPI-ветвь запускается и работает как обычный процесс, связанный через MPI с остальными процессами, входящими в приложение. В остальном процессы следует считать изолированными друг от друга – у них разные области кода, стека и данных. Особенностью MPI является введение понятия области связи (communication domains). При запуске приложения все процессы помещаются в создаваемую для приложения общую область связи. При необходимости они могут создавать новые области связи на базе существующих. Все области связи имеют независимую друг от друга нумерацию процессов. Программе пользователя в распоряжение предоставляется коммуникатор – описатель области связи. Многие функции MPI имеют среди входных аргументов коммуникатор, который ограничивает сферу их действия той областью связи, к которой он прикреплен. Для одной области связи может существовать несколько коммуникаторов таким образом, что приложение будет работать с ней как с несколькими разными областями. Так, в исходных текстах примеров для MPI часто используется идентификатор MPI_COMM_WORLD. Это название коммуникатора, создаваемого библиотекой автоматически. Он описывает стартовую область связи, объединяющую все процессы приложения. Далее в материале рассмотрены наиболее употребительные функции MPI. Более подробная информация доступна в источнике: N:\CM\LOOK\VKAS\LAB\MPI-GUIDE.PDF

33. Технология параллельного программирования с использованием MPI. Типы функций. Функции управления средой MPI. Существует несколько категорий функций: • блокирующие; • локальные; • коллективные. Блокирующие – останавливают (блокируют) выполнение процесса до тех пор, пока производимая ими операция не будет выполнена. Неблокирующие функции возвращают управление немедленно, а выполнение операции продолжается в фоновом режиме; за завершением операции надо проследить особо. Неблокирующие функции возвращают квитанции (requests), которые погашаются при завершении. До погашения квитанции с переменными и массивами, которые были аргументами не блокирующей функции, ничего делать нельзя. Локальные функции не инициируют пересылок данных между ветвями. Большинство информационных функций является локальными, т.к. копии системных данных уже хранятся в каждой ветви. Например, рассматриваемые ниже функция передачи MPI_Send и функция синхронизации MPI_Barrier не являются локальными, поскольку производят пересылку. Следует заметить, что, к примеру, функция приема MPI_Recv (парная для MPI_Send) является локальной: она всего лишь пассивно ждет поступления данных, ничего не пытаясь сообщить другим ветвям. Коллективные – должны быть вызваны всеми ветвями–абонентами того коммуникатора, который передается им в качестве аргумента. Несоблюдение для них этого правила приводит к ошибкам на стадии выполнения программы (как правило, к повисанию) [5]. Подпрограммы управления средой MPI Первое, что параллельная программа должна делать в течение времени выполнения, состоит в том, чтобы создать параллельную среду. Это означает, что она резервирует и устанавливает N узлов, на которых программа должна выполниться, и инициализирует MPI среду. Количество узлов (процессов) N входит в программу как системная переменная. Ниже в подразделе приведены наиболее важные из них, используемые практически в любом приложении MPI. MPI_Init(&argc, &argv) Данная функция обеспечивает инициализацию библиотеки. Является одной из первых инструкций в функции main (главной функции приложения). Она получает адреса аргументов, стандартно получаемых самой main от операционной системы и хранящих параметры командной строки. MPI_Finalize() Нормальное закрытие библиотеки. Никакая другая MPI функция не может быть вызвана после этого. Настоятельно рекомендуется не забывать вписывать эту инструкцию перед возвращением из программы, т.е.: • перед вызовом стандартной функции языка С - exit ; • перед каждым после MPI_Init оператором return в функции main; • если функции main назначен тип void, и она не заканчивается оператором return, то MPI_Finalize() следует поставить в конец main. MPI_Abort (comm, error) Вызов MPI_Abort из любой задачи принудительно завершает работу ВСЕХ задач, подсоединенных к заданной области связи. Если указан описатель области связи comm в виде MPI_COMM_WORLD, будет завершено все приложение (все его задачи) целиком, что, по-видимому, и является наиболее правильным решением. Если неизвестно, как охарактеризовать ошибку error в классификации MPI, рекомендуется использовать код ошибки MPI_ERR_OTHER. Следующие две информационных функции сообщают размер группы (т.е. общее количество задач, подсоединенных к ее области связи) и порядковый номер вызывающей задачи. MPI_Comm_size (comm, *size) Число процессов возвращает функция MPI_Comm_size. size – это число всех процессов в пределах некоторой группы названной comm. Обычно comm является предопределенной коммуникатором MPI_COMM_WORLD, который включает все процессы в прикладную программу MPI. MPI_Comm_rank (comm, *rank) Каждый процесс характеризуется собственным целочисленным идентификатором называемым рангом (rank). Ранги непрерывны и начинаются с нуля и заканчиваются size–1. Процесс с нулевым рангом обычно называется ГЛАВНЫМ или MASTER процессом. Функция MPI_Comm_rank возвращает ранг вызываемого процесса. MPI_Wtime() Функция возвращает текущее время (в секундах с двойной точностью). Эта функция полезна, чтобы проверить затраченное время на выполнение процесса.

34. Технология параллельного программирования с использованием MPI. Процедуры передачи сообщений. Связь между задачами возможна через многие MPI подпрограммы. Здесь внимание сосредоточено на трех подпрограммах, которые являются наиболее полезными для разработки параллельных приложений. Функция MPI_Send рассылает данные из буфера buf, количество данных count, тип – datatype. Ниже приведен синтаксис этой функции. MPI_Send (void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) Параметры • buf – адрес буфера с информацией; • count – количество элементов в буфере; • datatype – тип элемента в буфере; • dest – ранг процесса, которому посылаются данные; • tag – таг сообщения; • comm – дескриптор. MPI_Recv (void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) Функция MPI_Reсv получает данные. Параметры • buf – адрес буфера с информацией; • count – максимальное количество элементов в буфере; • datatype – тип элемента в буфере; • tag – таг сообщения; • comm – дескриптор; • status – объект статуса; • source – ранг процесса, который посылает сообщение. Параметр dest (source) определяет процесс, которому должно быть доставлено (из которого отправлено) сообщение и определяется как ранг процесса, который получает (отправляет) сообщение. Каждое сообщение помечается своей уникальной целочисленной отметкой (tag). Параметр tag опознает сообщение и должен соответствовать одной из получаемых задач. Для получателя символ MPI_ANY_TAG может использоваться, чтобы получить любое сообщение независимо от его отметки (tag). Наконец, операция status указывает на источник и отметку полученного сообщения. В Cи этот параметр обозначает указатель на структуру MPI_STATUS (stat. MPI_SOURCE, stat. MPI_TAG). Следует заметить, что параметр count содержит максимальное количество элементов в буфере. Его значение можно определить с помощью MPI_Get_count. Рассмотрим еще одну программу с использованием этих функций. Здесь проверяется, правильно ли рассылаются и получаются сообщения. В этой программе все процессы (кроме нулевого) посылают 3 сообщения нулевому процессу. Нулевой процесс печатает это сообщение как только он его получает (используем MPI_ANY_SOURCE и MPI_ANY_TAG в MPI_Recv). MPI_Bcast ( void *buf, int count, MPI_Datatype datatype, int root, MPI_Comm comm ) Функция MPI_Bcast пересылает информацию с процесса root ко всем остальным. Параметры • buf – адрес буфера с информацией; • count – количество элементов в буфере; • datatype – тип элемента в буфере; • root – ранг root процесса; • comm – дескриптор. Здесь root – это ранг процесса, который рассылает данные.Часто требуется, чтобы один из процессов читал данные с клавиатуры или командной строки, а потом рассылал эту информацию всем остальным процессам. MPI_Reduce ( void *sendbuf, void *recvbuf, int count, MPI_Datatype datatype, MPI_Op op, int root, MPI_Comm comm ) С командой MPI_Reduce узел root собирает данные от всех узлов, включая себя и применяет к ним операцию op. Параметры • sendbuf – адрес буфера с информацией; • count – количество элементов в буфере; • datatype – тип элемента в буфере; • op – операция; • root – ранг главного процесса; • recvbuf – адрес буфера, который будет принимать данные; • comm – дескриптор. sendbuf содержит данные, которые должны быть посланы, a recvbuf получает их. MPI_Gather( void *sbuf, int scount, MPI_Datatype stype, void *rbuf, int rcount, MPI_Datatype rtype, int dest, MPI_Comm comm) Функция MPI_Gather собирает в приемный буфер задачи dest передающие буфера остальных задач • sbuf - адрес начала буфера посылки; • scount - число элементов в посылаемом сообщении; • stype - тип элементов отсылаемого сообщения; • OUT rbuf - адрес начала буфера сборки данных; • rcount - число элементов в принимаемом сообщении; • rtype - тип элементов принимаемого сообщения; • dest - номер процесса, на котором происходит сборка данных; • comm - идентификатор группы. MPI_Barrier(MPI_Comm comm) Является функцией синхронизации – останавливает выполнение вызвавшей ее задачи до тех пор, пока не будет вызвана изо всех остальных задач, подсоединенных к указываемому коммуникатору. Гарантирует, что к выполнению следующей за MPI_Barrier инструкции каждая задача приступит одновременно с остальными. Данная функция является единственной, вызовами которой гарантированно синхронизируется во времени выполнение различных ветвей. Некоторые другие коллективные функции в зависимости от реализации могут обладать, а могут и не обладать свойством одновременно возвращать управление всем ветвям. Однако для них это свойство является побочным и необязательным. Поэтому, если в программе нужна синхронность, необходимо использовать только MPI_Barrier. MPI_Address(void *location, MPI_Aint *address) Получает адрес параметра в памяти (address) . Во многих системах адрес, возвращаемый этой функцией аналогичен оператору & в Си. MPI_Type_Struct Создает структурный тип данных MPI_Type_Commit (MPI_datatype *datatype) Передает тип данных. MPI_Datatype_free (MPI_Datatype *datatype) Освобождает тип данных. MPI_Packint MPI_Pack ( void *inbuf, int incount, MPI_Datatype datatype, void *outbuf, int outcount, int *position, MPI_Comm comm ) Упаковывает тип данных в непрерывную область памяти. Параметры входные: • inbuf – начало буфера; • incount – количество вводимых элементов; • datatype – тип вводимых элементов; • outcount – выходной размер буфера (в байтах); • position – текущая позиция в буфере (в байтах); • comm – коммуникатор для упакованных сообщений; выходные: • outbuf – конец буфера. MPI_Unpackint MPI_Unpack ( void *inbuf, int insize, int *position, void *outbuf, int outcount, MPI_Datatype datatype, MPI_Comm comm ) Распаковывает тип данных. Параметры входные: • inbuf – начало буфера; • insize – размер буфера (в байтах); • position – текущая позиция в буфере (в байтах); • outcount – количество элементов, что должны быть распакованы; • datatype – тип выходных элементов; • comm – коммуникатор для упакованых данных; выходные: • outbuf – конец буфера.

35. Анализ супер-ЭВМ программы ASCI.

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

Option Red – разработано отделом масштабных систем фирмы Intel. В конце 96г. была создана 1-я супер ЭВМ с производительностью ?=1 Tflops, базовый процессор – Pentium Pro, тактовая частота 200 МГц , каждый ВМ содержит по 2 МП 64 Мб ОП, интерфейс PCI и межсетевой интерфейс NI. Используются два типа ВМ:

1) вычислительный

2) коммуникационный (содержит адаптер среды с пакетной межмодульной коммутацией). Все супер ЭВМ состоят из 64 вычислительных стоек по 64 ВМ + 2 коммуникационные стойки по 25 ВМ в каждой. Коммуникационные стойки обеспечивают соединения по технологии Ethernet, FDDI, ATM. VД=2 Тбайт (объем дисковой памяти) Количество МП – 9624, Vоп=500Тб; Пиковая производительность = 1,8 Tflops; Стоимость одной ВМ – 10 тысяч долларов. SGI / Cray Computing. Коммуникационная среда строится на базе мод. концентраторов, связанных между собой каналами CrayLink, пропускной способности c=800 Мбайт/с. Технология CrayLink достигает соотношение tудал. и локального доступа к памяти как 3:1. Основные характеристики: количество МП=4096, Vозу=524 Тб. Производительность ?=4 Tflops. Стоимость одного ВМ – 54 тысячи долларов. Общая стоимость –110,5 млн. долларов. Option Green. 8 кластеров ? 512 однопроцессорных ВМ. Nр=4096; Vозу=524 Гб; ?max=3 Tflops; S=93 млн. $; DEC - 256 симметричных мультипроцессорных узлов. Предполагаемая производительность ?=100 Tflops. Nр=3000. Коммерческий суперкомпьютер CRAY. 1-я версия – в 96 г. Пропускная способность между МП и кэш –7,2 Мб/с. Пропускная способность между кэш и основной памятью –805 Мб/c.

36. Современные тесты. Оценки производительности современных ВК и С.

Основу для сравнения различных типов ВК между собой дают стандартные методики измерения производительности. Единицей измерения производительности в большинстве случаев является параметр времени. Считается, что система, выполняющая тот же объём работы за меньшее время, является более производительной. Как было сказано ранее, оценка реальной производительности является нетривиальной задачей. Предположим, что в программе есть доля операций, которые можно выполнить последовательно и она равна 0?? f??1. При этом доля понимается не по статическому числу операций исходной программы, а по числу операций строк выполнения. Крайние случаи в значениях f соответствуют параллельной программы (f=0) и полностью последовательной программе (f=1). Для того, чтобы оценить, какое ускорение S может быть получено в системе из Р обр. элементов, можно воспользоваться законом Амдала: S = ; Например, если 9/10 программы выполняется параллельно, а 1/10 – последовательно, то ускорение больше, чем в 10 раз получить, в принципе невозможно, вне зависимости от качества реализации параллельного алгоритма и числа исп. процессоров. Рассмотрим основные способы оценивания времени выполнения программы. Наиболее простой способ называется Астрономическим временем, временем ответа (elapsed time), время выполнения. Это задержка выполнения задачи, включает в себя буквально всё : работу процессора, обращение к дискам, памяти, ввод/вывод и накладные врем. расходы ОС. Для измерения времени работы процессора на данной программе используется специальный параметр CPU time. Очевидно, что время ответа, видимое пользователю, является полным временем включения CPU time. CPU time может делится непосредственно на : -время выполнения программы(польз.время) -время, затраченное ОС на выполнение заданий, затребованных программой(сист.время) В ряде случаев системное время процессора игнорируется из-за возможных неточностей измерения, из-за проблем, связанных со сравнением производителей систем с разными ОС. В большинстве современных процессоров скорость протекания процессов взаимодействия внутренних функциональных устройств определяется не естественными задержками в этих устройствах, а задаётся единой системой синхронизации. Сигналы синхронизации вырабатываются генератором тактовых ипульсов, работающим с постоянной скоростью. Дискретное время соб-я наз. тактами синхронизации Clock tiсks. Обычно, говорят о периоде синхронизации, который определяется либо своей длительностью (10 нс), либо частотой (100МГц). Таким образом CPU time для нек.программы может быть выражено двумя спосабами:

1) Количество тактов синхронизации для данной программы умножить на длительность такта;

2) Количество тактов синхронизации делить на частоту. Важной системной характеристикой является параметр CPI. -clock cycles per second. Производительность зависит от 3 параметров:

1) Такт синхронизации

2) Среднее количество тактов на одну команду

3) Количество вып.команд MIPS – параметр является единицей измерения производительности процессора (млн.опер.в сек.). Имеется несколько различных операций интерпретации MIPS. В общем случае MIPS – скорость операций в единицу времени. Для любой задачи программы MIPS =N/T, однако использование такого определения MIPS наталкивается на следующие проблемы:

1) MIPS зависит от набора команд процессора, это затрудняет сравнение систем имеющих разные системы команд.

2) MIPS может меняться по отношению к производительности в другую. Примером посл.случая является рейтинг MIPS для узла, содержащего сопроцессор с плавающей точкой, поскольку на каждую команду с плавающей точкой требуется большее количество тактов синхронизации, чем на целочисленную команду, то программа использует сопроцессор, выпол. за большее время, но имеют больший рейтинг MIPS. Другое определение MIPS – сравнение с комп. VAX-11/780(фирма DEC). Этот комп. Был принят в качестве эталона для сравнения производительности. Считается, что его производительность 1 MIPS. Для этого используется синтетический тест Dhrystone. Представляет из себя смесь из 53% операторов присваивания, 32% - управления, 15% - вызов функций. Общее число операторов –100. Ед.измерения . Быстродействие эталонной машины составляет 1757Dhrstone/c = 1 MIPS. Третье определение MIPS связано с архитектурой RS/6000 (IBM). Ед.измер. RS/6000 MIPS. Тест получил распространение, т.к. ряд производителей и пользователей предпочитают сравнивать производительность своих систем с производительностью комплексов IBM. =1,6. MFLOPS используется для измерения производительности систем при решении научно-технических задач, где велика доля операций с плавающей точкой. нормализованные операции.

37. Современные тесты. Оценки производительности современных ВК и С. Ливерморские циклы, LINPACK, SPEC.

Набор программ, написанных на Фортране, взятых из реальных систем. Используется два набора – 12 и 24 циклов. Предст.собой типовые наборы типовых числовых задач. Среди ливерморских циклов коэффициент векторизуемости колеблется от 0 до 100%. В данном наборе тестов встречаются последовательные, сеточные, конвейерные, волновые выч.алгоритмы. LINPACK – набор программ для решения систем линейных алгебраических уравнений. В основе алгоритма лежит метод декомпозиции исходной матрицы размером 100x100 элементов, в последнем варианте 1000x1000. Сначала представл. в виде произведения двух матриц, над которыми затем выполняется алгоритм решения. Подпрограммы LINPACK структурированы, в стандартном варианте LINPACK выделил внутренний уровень базовых подпрограмм, каждая из которых выполняет элемент операции над векторами BLAS(Basic Lineor Algelne Subprograms). В BLAS входит : SAXPY – умножение вектора на скалярное сложение векторов; SDOT – скалярное произведение векторов; Операции выполняются с плавающей точкой, результаты в Mflops. SPEC (Standart Perfomanse Evalution Corparation) Это бесприбыльная корпарац.учрежд., произв. компл. обор-е, главными видами которых являются : 1. Разработка и публикация наборов тестов, предназначенных для измерения производительности; 2. Обеспечение централизованного источника инф. Для результатирующего тестирования. Имеется 2 набора тестов ориентированных на интенсивность и эффективность кода компилятора объекно ориент на UNIX SPEC int 92 произв. Процедура обработки целых чисел (в прогр.)все написано на С теория целей и т.д. SPEC tp 92 произв прац с плав точкой сости из 14 программ: моделирование методом папы-карло, Хилла и т.д. 12 фортран 2 – С Твып Р Т эт. маш (Vax II/780) коэф SPEC публикует результаты прогона каждого теста, а также оценки: SPEC int 92 – ср. геометр 6 рез-в инд тестов. SPEC fp 92 – ср. геом. 14 рез-в инд. Тестов. Составл оценки SPEC int 92 и SPEC tp 92 хорошо характеризует произв. Проц. Сист. Памяти при р-ме в многозадачном режиме и совершенно не подходит для оценки многопроц. и однопроц. систем работающих в многозадачном режиме. Для этого нужна оценка пропускной способности системы или её емкости показ. Кол-во заданий кот система может выполнить в течении заданного интервала t. Для этого была разраб оценка. Spec pate – int 92 Fp 92 Для измерения был выбран метод однородной нагрузки заключ. В одновременном выполнении нескольких копий одной задачи. Результаты тестов показ как много задач конкретного типа могут выполнены в указанное время. Данные тесты хорошо отражают пропускную способность однопроцессор. И многопроцессор. Конфиг.с максимальным кол-вом пользоват. В качестве тестовых программ выбраны те же. SPEC int 92 SPEC fp 92 При прогоне тестового примера делаются независимые измерения по каждому отд. Тесту. Все копии отдельных программ запускаютсяодновременно и фиксированно время завершения последней из всех запушенных программ.

38. Современные тесты для оценки производительности ВК и ВС. Тесты TPC, AIM

TPC-A TPC-B TPC-P (Transaction Processing Performance Consul) тесты ТРС разработаны с целью обеспечения объективного сравнение различных систем обработки транзакций для автоматизации комерч. Деятельности. ТРС – А 1989 г. предназначен для оценки произв. Систем раб в среде интенс. Обновл баз данных. Такая среда характериз: 1. Множ терминами сессий в режиме ON LINE 2. Знач. V I/O 3. Умеренное время работы системы и приложений. 4. целостность транзакций при выполнении теста эмулируется тип. Выч. Среда банка.включая сервер БД терминалы и линии связи Тест используется одиночные простые транзакции ТРС –А опред. Пропускн способн. Систем. Измеряемую как приращение в секунду средн изм-я tpsА кот с-ма выполн. При р-те с множ терминалов. Спеццификация ТРС-А не опр. Кол-во термин. Устр-в ВС При этом его результаты опр. Либо локально либо решеон пропуск спо-сть специфи-я теста ТРС-А требует что бы компании полностью раскр.детали р-ты. Теста и свою конф-ю системы а так же её ст-мость. Это позвол. оПред. Нормализ ст-ть с-мы. ТРС в инт. тест БД Был разраб в Августе 90 г. харак-ся: Значит V диск I/O Умеренное t работы системы и приложений Целостность транзакций (tps B) Сущ различия с tpc –A поэтому эти тесты между собой сравнивать нельзя. TPC – C Моделир. прикладную задачу обработки заказов. При этом моделир дост-ся с-ма управл учётом товаров, расп-ем товаров и услуг. Осущ тестирование терминалов, линий связи процессора, диск I/O и БД. ТРС –С требует что бы выполнялись 5 транзакций: 1. Новый заказ ввод с пом. Сл. Экр формы. 2. Простое обновление БД связ с платежом. 3. -//- с поставкой 4. Справка о состоянии заказов 5. Справка по учёту товаров Среди них 43% должны сост платежи транзакции связ со спраками о сост-и заказов поставок и учёта должны сост. По 4% затем измер. V по новым заказам обрабат совместно со смесью др. транзакций выполн. В фоновом режиме БД ТРС-С основ на модели оптового поставщика с удал районами и тов. Складами БД содерж 9 таблиц: - тов склады - заказ - район - порядок заказа - новый заказ - статья счёта - складские заказы - история обычно публик 2 результата: tpm – c ниж скорость выполнениея транзакций (кол-во транзакций в мин) $/tpm-c нормализ стоимость системы стоимость системы включает все А и ПО исп. В тексте + стоимость обслуживания в течении 5 лет Будущие тесты ТРС: ТРС – D предназначен для оценки пр-ти систем принятия решений. Для оценки систем массштаба предприятия разр. тест TPC-E В наст время ТРС разраб тест пакеты для оценки БД и систем клиент – сервер . AIM Technology В качестве ОС исп OS/2 UNIX Компания разр спец ПО позвол адаптивно созд треб нагрузки. Benchmark Generator Load Mixes – нагруз смесей приклад задач Генератор тест пакетов предст прогр систему кот обесп одноврем выполнение множества прим содерж большое число опред тестов кот потребл опред ресурся системы и тем самым акцентир внимание на опр компонентых из кот склад её общ пр-ть. При кажд запуске ген-ра могут выполнятся все отд цели все доступн тесты в любом порядке при любом количестве проходов. При этом можно создать практически любюу рабочую нагрузку. Кажд нагр смесь предст собой формулу кот опр компоненты треб нагрузки Эта ф-ла задаётся в терминах разл доступ тестов кот должны выполн одновр для модел-я раб нагрузки. Генератор тест пакетов во вр. Своей работы массштабирует нагрузку по систему. Первоначально он выполнил и хронометрировал 1 копию нагр. смеси, затем одновременно выполнил 3 копии и т.д. По мере увеличения нагрузки на основе оценки производительности системы выбираются различные условия увеличения нагрузки. Это позволяет с достаточной достоверностью дать заключение о возможной работе системы при данной нагрузке или изменении нагрузки. Все смеси AIM делят на стандартные и заказные. Заказные – для моделирования особенностей среды конечного пользователя или пост-ка оборудования. В настоящее время существует 8 стандартных смесей, которые представляют собой обычную среду прикладных задач: 1. Универсальная смесь для рабочих станций: General WorkStation Mix – моделирует работу рабочей станции в среде разработки ПО. 2. Смесь для механических САПР: Mechanical CAP Mix – моделирует рабочую станцию, используемую для трехмерного моделирования и среды автоматизации прокт-я в механике. 3. Смесь для геоинформационных систем: GIS Mix – моделирует рабочую станцию, используемую для обработки изображений в приложениях геоинформационных систем. 4. Смесь универсальных деловых приложений: General Busines – моделирует стандартные приложения (электронная почта, электронные таблицы и т.д.). 5. Многопользовательская смесь: Shared Multiusers Mix – моделирует многопользовательскую систему, обеспечивающую обработку приложений для множества пользователей. 6. Смесь вычислительного сервера: Compute Server Mix – моделирует систему с большим объемом вычислений (маршрутизация, гидростатическое моделирование, вычислительная химия, взламывание кодов и т.д.) 7. Смесь файлового сервера: File Server Mix – моделирует запросы, поступающие в систему, используемую в качестве централизированного файлового сервера. 8. Смесь СУБД: RBMS Mix – моделирует систему, выполняющую приложения управления БД. Для сравнительной оценки в AIM используются критерии: 1. Рейтинг пиковой производительности – единый стандарт, определяющий наивысший уровень производительности операций с плавающей точкой относительно производительности машины Vax 2.780. 2. Максимальная пользовательская нагрузка. 3. Индекс производительности утилит – определяет количество пользовательских нагрузок, которые данная система выполняет в течении 1 часа. Используется специальный пакет Mile Stone. Тестируется набор многократно выполняемой выбранной утилиты Unix в качестве основных и фоновых заданий. 4. Максимальная пропускная способность системы – определяет пиковую производительность, измеряемую в количествах выполненных задач в минуту.

1...2

bbb
bb1
bb2
bb3
1

На главную

1
1

вверх

2
Используются технологии uCoz