Опубликован: 01.10.2013 | Доступ: свободный | Студентов: 255 / 19 | Длительность: 24:58:00
ISBN: 978-5-9963-0223-9
Специальности: Разработчик аппаратуры
Лекция 2:

Методы оценки вычислительных характеристик задач предметной области и поддерживающих их аппаратных платформ

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >
Аннотация: В лекции проанализированы апробированные на практике методы оценки вычислительных характеристик задач предметной области, которые служат базой разработки (Б)ВС, ориентированных на решение "критических" задач.
Ключевые слова: ВС, предметной области, поток инструкций, очередь, затраты, расходы, цикла, распараллеливание вычислений, устойчивость, время задержки, MOPS, операционный, ресурс, кэш, ОЗУ, время выполнения, кеш, прерывание, тестовая программа, пространство, фаза тестирования, пропускная способность, покупатель, мощность, стоимость, отказоустойчивость, масштабируемость, расширяемость, черный ящик, компьютер, работ, execution time, response time, elapsed time, cpu time, время ожидания, минимум, автоматизированная система управлением технологическим процессом, CPI-C, clock cycle, PER, Instruction, параметр, производительность, функциональная организация, MIPS, second, рейтинг, метрика, VAX, DEC, IBM, FLOPS, point, производные, MFLOPS, TFLOPS, программа, dhrystone, FORTRAN, LLNL, LINPACK, argonne national lab, умножение, сложение, скалярное произведение, Basic, linear algebra, subprogram, матрица, размерность, HPC, highly, parallel computer, анализ, класс решаемых, performance evaluation, вещественная арифметика, specint95, specfp95, среднегеометрическая, сравнительные оценки, transaction processing, TPC-E, tps, TPM, AIMS, benchmark suite, шаг вычислений, транзитивное замыкание, ОКМД, устойчивость алгоритма, погрешности вычислений, Абсолютной погрешностью, фиксированная запятая, арифметические преобразования, денормализация, многопроцессорные вычислительные системы

1.1. Методика оценки требуемой пропускной способности вычислительных систем, ориентированных на решение "критических" задач предметной области

Реальная ценность вычислительных систем (ВС), ориентированных на решение "критических" задач предметной области, определяется качеством оценки требуемой пропускной способности по потокам инструкций и данных. При этом разработчику ВС известны следующие исходные данные, характеризующие предметную область:

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

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

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

При таком подходе к проектированию или выбору (Б)ВС:

  • главной целью является поддержание темпа реального времени, диктуемого предметной областью;
  • главным ограничением является частота F_{c} или время цикла \tau_c = 1/F_c исполнения инструкции, достижимые в рамках освоенных или осваиваемых технологий производства аппаратуры;
  • варьируемыми параметрами при поиске компромисса в соотношении цены и качества являются "сложность" алгоритмов и вытекающие из нее точность и объемы преобразуемой информации.

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

Основная трудность оценки "длины" программы L_p связана с нали-чием в вычислительном алгоритме операторов условных переходов типа if которые ставят ее в прямую зависимость от содержимого обрабатываемых потоков данных, которые в данном случае необходимо рассматривать как случайные. Для (Б)ВС вносимая операторами if "случайность" и вытекающая из нее неопределенность в длине программы ослабляется тем обстоятельством, что в высокоответственные применения оператор условных переходов должен мажорироваться оператором for, который, с одной стороны, призван лимитировать максимально допустимую по темпу реального времени продолжительность исполнения каждого цикла программы, а с другой стороны, должен повысить ее устойчивость к информационным сбоям, разрывая "бесконечные" циклы, чреватые потерей управления опасными технотронными комп лексами двойного назначения.

Зная "длину" программы L_p, можно выбрать тип архитектуры, "иде-альной" в том смысле, что при этом были учтены только алгоритмические затраты, а системные издержки считались нулевыми. Для этого достаточно воспользоваться соотношениями (1.5)-(1.7) раздела 1.5 курса "Задачи и модели вычислительных наноструктур" и проверить неравенства: L < \max L(ОКОД) = \Delta T_0 /\tau_c, L < \max L(ОКМД) = T_{k} / \tau_c или L < \max L(МКМД) = T _{0}/\tau_c , где \Delta T_{k} - дискрет времени, диктуемый теоремой Котельникова, T_{k} = \Delta T_{k} * N - цикл формирования циклически обрабатываемой выборки данных из N операндов, а T _{0} - допустимое время задержки в (Б)ВС. Если ни одно из этих неравенств не выполняется, то необходимо переходить на уровень распараллеливания отдельных ассемблерных инструкций, то есть к архитектурам с микрокомандным уровнем доступа, гарантирующим максимально возможное функциональное насыщенное каждого такта работы (Б)ВС. Как показывает практика, выйти за рамки "идеальной" архитектуры разработчику в дальнейшем не удается, и ему остается только разрабатывать комплекс мер, направленных на минимизацию системных аппаратно-временных издержек.

Данная методика апробирована при создании спецпроцессоров обработки сигналов и изображений, как на основе заказных СБИС, так и на основе систолических и бит-матричных СБИС [70, 138-144]. Указанные аппаратные платформы поддерживают предметную область, для которой характерны [70]:

  1. Обработка точек изображения, которая представляет собой преобразование полутонового изображения, выравнивание гистограмм, переквантование, отображение яркости и т. п.
  2. Фильтрация сигналов и изображений, которая может осуществляться сравнением с эталоном, оконными методами, сверткой и/или корреляцией, линейной фазовой, медианной, винеровской, калманов-ской, адаптивной и т. п. фильтрацией.
  3. Матричная алгебра, которая включает сингулярное (однозначное) разложение, геометрическое вращение, оценки максимальной энтропии или правдоподобия, вычисление псевдообращения и восстановление изображения, стохастическое оценивание параметров и т. п.
  4. Преобразования сигналов и изображений, к которым в первую очередь относят преобразования Фурье, Хаара, Хафа, Адамара, Карунена - Лоэва и т. п.
  5. Сортировка, которую можно выполнить методом "слияния", "пузырька", и т. п.

Признав, что циклы for являются неотъемлемой составляющей таких (Б)ВС, решаемые ими задачи можно разбить на классы с характерной зависимостью количества арифметико-логических операций от количества операндов N в циклически обрабатываемых потоках данных (табл. 1.1 [70]).

Численные значения табл. 1.1 соответствуют параметрам "критических" задач, актуальных на конец 80-х годов прошлого столетия. Тем не менее уже тогда требовались (Б)ВС с производительностью порядка 10^{12}-10^{15} ассемблерных операций в секунду. Если принять во внимание, что цикл исполнения ЦПОС - и RISC -инструкций был уже постоянен и в тот период времени не превышал 1 ГГЦ, становится ясно, что суммарный коэффициент распараллеливания вычислений должен был находиться на уровне 10^{4}-10^{6} и был достижим только в архитектурах МКМД-типа с микрокомандным уровнем доступа.

Таблица 1.1. Требуемая производительность алгоритмов цифровой обработки сигналов и изображений
Тип алгоритма Необходимая производительность
Линейные, типа O(N): 10^{2} -10^{5} MOPS
Пространственная фильтрация
Свертка
Обнаружение контуров
Второго порядка, типа O(N^2): 10^{3} 10^{7} MOPS
Сортировки
Медианная фильтрация
Классификация ближайшего соседа
Третьего порядка, типа O(N^3): 10^{4}-10^{8} MOPS
Векторно-матричная алгебра
Спектральные вычисления
Адаптивная фильтрация

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

Но циклограмма жестко регламентирует только порядок (пере)запу-ска задач, время решения которых может флуктуировать в достаточно больших пределах (1,5-3 раза и более) из-за наличия циклов по условию. Объясняется это тем, что с помощью мажорирующих циклов for удается ограничить только максимально допустимое время выполнения этого цикла, а реальные временные затраты могут оказаться значительно меньше, если сработает оператор if. В результате трудно рассчитать как время обработки одного планового "прерывания", которое зависит от фазы выполнения прерванной задачи, так и количество таких "прерываний". Основным источником такой неопределенности являются паразитные перезагрузки памяти на участках кеш - ОЗУ - внешние ЗУ, что вынуждает брать в кавычки термин "прерывание".

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

Чтобы компенсировать возникающие в реальных условиях временные простои, разработчики (Б)ВС стараются запускать в образующихся "паузах" тестовые программы, варьируя качеством их решения (глубиной и полнотой диагностики) в зависимости от наличного ресурса времени. Но такие меры, как правило, малоэффективны, так как именно программы диагностики тяготеют к массовому использованию операторов if, с помощью которых минимизируется пространство перебора тестов за счет информации, полученной на предыдущих фазах тестирования. В итоге требуемую пропускную способность по потокам инструкций и данных приходится определять исходя из самых худших условий запуска каждой последующей фазы вычислений, что приводит к 2-3-кратному превышению вычислительных затрат над затребованными алгоритмическими затратами.

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

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

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

При оценке качества вычислительной техники все используемые показатели рекомендуется разбивать на 2 группы [106]: требования и атрибуты, первые из которых представляют собой спецификацию того, что должна делать система, а вторые включают характеристики для предпочтительного выбора при прочих равных условиях. Требования задают необходимые условия, которым должна удовлетворять система, и они выражаются совокупностью как измеряемых, так и качественных показателей: пропускная способность, массо-габариты, потребляемая мощность, стоимость, отказоустойчивость, интеллектуальный уровень программной поддержки и т. п. К атрибутам, как правило, относят субъективные показатели, которые делают проект инвестиционно привлекательным, а созданное изделие - конкурентоспособным. К архитектурным атрибутам обычно относят: гибкость (масштабируемость), расширяемость и комплексируемость, которые в совокупности характеризуют открытость системы.

При оценке пропускной способности по потокам инструкций и данных необходимо знать один или несколько показателей, характеризующих [106]:

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

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

В табл. 1.2 приведены эмпирические данные качества применения каждого метода оценки производительности по состоянию на 1985 год [106]. Здесь 1 означает, что метод использовался, но оказался неадекватным, 2 - метод оказался недостаточно полезным, 3 - метод дал хорошие результаты и прочерк - метод не применялся. За прошедшие годы база апробации методов оценки расширилась, сами методики углубились и удешевились за счет создания специализированных инструментальных платформ их реализации.

Таблица 1.2. Показатели применимости метода оценки производительности (Б)ВС
Метод оценки Оценка при выборе системы Расчет при разработке Измерение для реконфигурации
Новая аппаратура Новые программы Создаваемая аппаратура Создаваемые программы Реконфигурация аппаратуры Реконфигурация программ
Длительность цикла 1 - 1 - - -
Смесь команд 1 - 1 - - -
Представительные программы 2 1 2 1 - 1
Аналитические модели 2 1 2 1 2 -
Испытательные программы 3 3 2 2 2
Синтетические программы 3 3 2 2 2 2
Моделирование 3 3 3 3 3 3
Прямое измерение 2 2 2 2 3 3

Тем не менее, данные табл. 1.2 позволяют сделать следующие выводы, которые справедливы и для современных условий:

  • наиболее экономичную и достаточно достоверную оценку пропускной способности (Б)ВС по потокам инструкций и данных можно получить на основе комплексного использования различных методов и в первую очередь с помощью испытательных и синтетических программ, а к моделированию и измерениям имеет смысл прибегать при очень ответственных применениях информационных технологий, когда ошибка проекта грозит катастрофическими последствиями, по сравнению с которыми цена разработки отходит на второй план;
  • каждая представительная программа, включаемая в состав синтетической, должна быть "прозрачной" для априорной аналитической оценки требуемого операционного, коммутационного и управляющего ресурса, а также ресурса памяти;
  • "веса" представительных программ в синтетической смеси должны отражать специфику предметной области, а они должны допускать планомерное использование циклов if и мажорирование циклами for после включения в синтетическую смесь.
< Лекция 1 || Лекция 2: 123456 || Лекция 3 >
Евгений Акимов
Евгений Акимов

Добрый день!

 

Скажите, пожалуйста,планируется ли продолжение курсов по нанотехнологиям?

Спасибо,

Евгений