Диплом, курсовая, контрольная работа
Помощь в написании студенческих работ

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

ДиссертацияПомощь в написанииУзнать стоимостьмоей работы

Цель исследования. Конечной целью настоящей работы являлась разработка технологии повышения производительности промышленных компиляторов для новых архитектур с явно выраженным параллелизмом на уровне команды и ее реализация в виде комплекса средств, обеспечивающих поддержку данного процесса. В соответствии с этой целью были определены следующие задачи: исследовать специфику проблемы повышения… Читать ещё >

Содержание

  • 1. Технология повышения производительности компиляторов
    • 1. 1. Тестовая база
    • 1. 2. Анализ производительности
      • 1. 2. 1. Требования к поиску неоптимальностей и системе приоритетов
      • 1. 2. 2. Причины неоптимальностей
      • 1. 2. 3. Подходы к выявлению неоптимальностей
      • 1. 2. 4. Структурная модель анализа
      • 1. 2. 5. Классификация предложений и порядок поиска неоптимальностей
      • 1. 2. 6. Анализ производительности на отдельной задаче
      • 1. 2. 7. Оценки и предсказания
        • 1. 2. 7. 1. Оценка эффекта от реализации выработанных предложений
        • 1. 2. 7. 2. Предсказание пиковой производительности на задаче
      • 1. 2. 8. Система приоритетов предложений
    • 1. 3. Контроль деградаций
      • 1. 3. 1. Общая постановка задачи (модель)
      • 1. 3. 2. Виды деградаций
      • 1. 3. 3. Подходы к контролю деградаций
      • 1. 3. 4. Частота замеров показателей производительности
    • 1. 4. Реализация технологии повышения производительности
      • 1. 4. 1. Реализация процесса анализа производительности
      • 1. 4. 2. Реализация процесса контроля деградаций
    • 1. 5. Результаты
    • 1. 6. Выводы
  • 2. Система контроля деградаций
    • 2. 1. Метрические характеристики производительности
    • 2. 2. Метрики деградаций
    • 2. 3. Требования к выбору значений порога деградации
    • 2. 4. Методы оценки эффекта модификаций на производительность
      • 2. 4. 1. Оперативная оценка общего времени выполнения
      • 2. 4. 2. Альтернативные подходы к обеспечению оперативности методов оценки
        • 2. 4. 2. 1. Метод оценки по времени выполнения наиболее значимых фрагментов
        • 2. 4. 2. 2. Метод оценки по фактам применения оптимизаций
    • 2. 5. Реализация системы контроля деградаций
      • 2. 5. 1. Основные положения методики контроля (проектные решения)
      • 2. 5. 2. Стратегия контроля
      • 2. 5. 3. Реализация методов оперативной оценки
      • 2. 5. 4. Структура системы контроля деградаций
    • 2. 6. Результаты
    • 2. 7. Выводы
  • 3. Исследования оптимизационных возможностей компиляторов
    • 3. 1. Требования к тестовому комплекту
    • 3. 2. Подходы к тестированию оптимизаций
    • 3. 3. Особенности реализации системы тестирования ОСТеТ
      • 3. 3. 1. Специфика окружения
      • 3. 3. 2. Метод тестирования и критерий полноты
      • 3. 3. 3. Спецификация метода тестирования
      • 3. 3. 4. Пример проектирования спецификации для оптимизации Loop
  • Fusion
    • 3. 3. 5. Принципы построения тестов
    • 3. 3. 6. Структура тестов
    • 3. 4. Результаты
    • 3. 5. Выводы

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

Актуальность темы

При промышленной разработке систем информационных технологий к эффективности1 конечного продукта традиционно предъявляются высокие требования. Не исключением являются и компиляторы. Как отмечается в [RHD98], эффективность компиляторов имеет две составляющие. Одна из них характеризует этап компиляции и затрагивает такие его аспекты как, например, скорость компиляции и объем выделяемой в процессе компиляции динамической памяти. Другая же относится к качеству генерируемого компилятором кода и определяется временем его выполнения и/или его размером. Такое разделение выбрано неслучайно — время компиляции и затрачиваемая при этом память важны для разработчиков приложений, в то время как быстродействие и компактность кода представляют интерес с точки зрения их конечного пользователя.

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

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

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

1 Одно из определений понятия эффективности можно найти, например, в [ББКЛММ81]: программный продукт обладает свойством эффективности, если он выполняет требуемые функции без излишних затрат ресурсов, где ресурсы понимаются в широком смысле.

2 Здесь и далее производительность компилятора понимается с позиции быстродействия создаваемого им кода. дефектов в реализованных ранее компонентах. Для эффективного развития компилятора в этом направлении наряду с деятельностью по устранению дефектов и реализации новых преобразований необходимо проведение комплекса мероприятий аналитического характера по выявлению неоптимальностей в целевом коде транслируемых с использованием этого компилятора программ.

Кроме того, как показывает практика [RHD98], [БВГНТ04], при разработке компилятора приемлемого уровня быстродействия целевого кода можно добиться лишь в результате непрерывного контроля текущего состояния производительности. Действительно, любые модификации исходного кода компилятора, будь то исправление ошибок или расширение функциональности, являются потенциальными источниками деградации достигнутых показателей быстродействия.

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

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

Проблема разработки высокопроизводительных оптимизирующих компиляторов становится еще более актуальной в свете современных тенденций развития вычислительной техники. Традиционные суперскаляры, реализующие динамический подход к распараллеливанию вычислений, практически достигли предельного уровня аппаратной сложности и не могут масштабироваться до бесконечности для поддержания темпов роста производительности, к которым привыкло современное общество [LeVa03]. Одним из путей к преодолению данного ограничения является перенос основных интеллектуальных функций аппаратуры на уровень программного обеспечения. Этот подход лежит в основе так называемых архитектур с явно выраженным параллелизмом на уровне команд (Explicitly Parallel Instruction Computing, EPIC).

Производительность архитектур с явно выраженным параллелизмом (далее, для краткости, EPIC-архитектур) сильно зависит от возможностей компилятора оптимальным образом распределять аппаратные ресурсы статически [ACMS98]. Учитывая тот факт, что величина значения тактовой частоты и параллелизм уровня команд являются антагонистичными свойствами [АНКВОО], коммерческий успех архитектуры в целом определяется качеством оптимизационных возможностей компилятора, что наглядно демонстрируется на примере архитектуры Itanium / Itanium 2. Действительно, на начальном этапе отсутствие приемлемого компилятора являлось серьезным сдерживающим фактором продвижения данной архитектуры на рынок.

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

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

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

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

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

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

Методы исследования заимствованы из областей системного программирования, проектирования, технологии компиляции, аттестационного тестирования, системного анализа, математической статистики, теории алгоритмов. Эффективность предложенных решений оценивалась в рамках процесса разработки оптимизирующего компилятора для архитектуры «Эльбрус 2000». Показателем эффективности являлась динамика изменения показателей производительности компилятора на задачах из пакета SPEC [SPEC].

Научная новизна.

Научная новизна работы может быть представлена следующими тезисами:

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

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

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

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

Сформулированы требования к комплекту для исследования оптимизаций и разработана методика тестирования оптимизаций в рамках следования критерию полного тестирования на уровне покрытия контекстов применимости.

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

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

Практическая ценность результатов диссертации состоит в том, что все предложенные в работе методы и технологии были использованы для обеспечения поддержки процесса повышения производительности оптимизирующего компилятора для архитектуры «Эльбрус 2000» [Diefendorf99], [Кузьминский99], [BabayanOO], разработанной в ЗАО МЦСТ. В частности, на основе исследований, выполненных по теме диссертации, были достигнуты следующие практические результаты:

Разработана автоматизированная система оперативного контроля деградаций.

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

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

Спроектирован и реализован тестовый комплект, предназначенный для исследования оптимизаций.

Множество тестовых примеров, построенное для осуществления оперативного контроля, было также использовано в качестве основы для проведения базовых настроек компилятора для архитектуры «Эльбрус 2000» при его портировании на архитектуру Itanium 2 [ItaniumRM].

Результаты работы.

В процессе работы были получены следующие результаты:

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

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

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

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

Сформулированы требования к контролю вносимых изменений и предложены методы их достижения.

Сформулированы требования к комплекту для исследования оптимизаций, и разработана методология его построения.

Осуществлено практическое воплощение предложенных идей в виде комплекса программных средств и технологий.

Публикации.

По теме диссертации опубликовано 10 печатных работ:

1. Ю. В. Баскаков, В. Ю. Волконский, А. В. Грабежной, М.И. Нейман-заде, Е. Ю. Чернова. Методика анализа производительности компиляторов для архитектур с явной параллельностью // Компьютеры в учебном процессе, N11, с. 23−38, 2005.

2. Ю. В. Баскаков. Об организации контроля деградаций показателей производительности компилятора на этапе разработки // Высокопроизводительные вычислительные системы и микропроцессоры, сборник научных трудов ИМВС РАН, N8, с. 25−33, 2005.

3. Е. Ю. Архангельская, Ю. В. Баскаков, Н. Н. Серебряная, Л. Г. Тарасенко. Принципы построения тестов для исследования оптимизационных возможностей компиляторов для архитектур с явной параллельностью // Высокопроизводительные вычислительные системы и микропроцессоры, сборник научных трудов ИМВС РАН, N8, с. 9−24, 2005.

4. Ю. В. Баскаков, В. Ю. Волконский, А. В. Грабежной. Оценка влияния модификаций компилятора на быстродействие целевого кода // Информационные технологии и вычислительные системы, N3, с. 111−119, 2005.

5. Ю. В. Баскаков. Об одном подходе к организации оперативного контроля деградаций показателей производительности компилятора на множестве приложений // 1-я Международная научно-практическая конференция «Современные информационные технологии и ИТ-образование», Москва, 2005. Сборник трудов, с. 355−364.

6. Е. Ю. Архангельская, Ю. В. Баскаков, А. В. Грабежной, Н. Н. Серебряная, Л. Г. Тарасенко. ОСТеТ: система для исследования оптимизационных возможностей компиляторов // Высокопроизводительные вычислительные системы и микропроцессоры, сборник научных трудов ИМВС РАН, N7, с. 3−11, 2004.

7. Ю. В. Баскаков, В. Ю. Волконский, А. В. Грабежной, М.И. Нейман-заде, Л. Г. Тарасенко. Поддержка процесса повышения производительности компиляторов // Информационные технологии и вычислительные системы, N3, с. 78−92, 2004.

8. Ю. В. Баскаков, А. В. Грабежной, А. А. Лаврешников, Р. Ю. Рогов, Л. Г. Тарасенко, Е. Ю. Чернова. Вопросы организации системы обеспечения качества оптимизирующих компиляторов // Высокопроизводительные вычислительные системы и микропроцессоры, сборник научных трудов ИМВС РАН, N6, с. 77−85, 2004.

9. Ю. В. Баскаков. Поддержка процесса повышения производительности // IX Санкт-Петербургская международная конференция «Региональная информатика — 2004», Санкт-Петербург, 2004.

10. Ю. В. Баскаков Об одном методе оперативного контроля эффективности целевого кода при разработке оптимизирующего компилятора // Научно-техническая конференция «Развитие и внедрение в системах РКО перспективной вычислительной техники и новых вычислительных технологий», Москва, 2003.

Апробация.

Результаты, полученные в работе, изложены в ряде печатных публикаций, докладывались на научных конференциях и семинарах, в частности: на научно-технической конференции «Развитие и внедрение в системах РКО перспективной вычислительной техники и новых вычислительных технологий», Москва, 2003; на IX Санкт-Петербургской международной конференции «Региональная информатика — 2004», Санкт-Петербург, 2004; на 1-ой Международной научно-практической конференции «Современные информационные технологии и ИТ-образование», Москва, 2005 гна научно-технических семинарах ЗАО МЦСТ и ИМВС РАН.

Структура и объем работы.

Диссертация состоит из введения, трех глав, заключения и одного приложения. Список источников насчитывает 69 наименований. Объем диссертации составляет 149 страниц текста. Диссертация содержит 7 таблиц и 43 рисунка.

3.5 Выводы.

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

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

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

Кроме того, на примере архитектуры «Эльбрус 2000» проведено исследование возможностей по выявлению дефектов оптимизаций в случае использования двухрежимного подхода в контексте EPIC-архитектур. Для каждого класса оптимизаций подробно рассмотрены разработанные автором принципы построения тестов, обеспечивающие наблюдаемое проявление эффекта от применения заданного преобразования. Также предложена структура тестов и разработана политика их взаимодействия с тестовым окружением. Для поддержки реализации преобразований, результат работы которых зависит от профильной информации, разработан механизм достижения заданного распределения вероятностей прохождения путей программы.

Построенная в соответствии с разработанной автором методологией, система ОСТеТ, включающая тесты для 22 оптимизаций общим числом 1928 штук, была успешно применена не только для исследования оптимизационных возможностей компилятора для архитектуры «Эльбрус 2000», но и для тестирования промышленного компилятора фирмы Intel для архитектуры Itanium 2. В последнем случае было выявлено 898 фактов несрабатывания оптимизаций в благоприятных контекстах.

Что касается результатов использования системы ОСТеТ в рамках процесса повышения производительности компилятора для архитектуры «Эльбрус 2000», то было выявлено и устранено 192 различных случая неприменения оптимизаций в благоприятных контекстах, а также 105 случаев нарушения работоспособности программ. При этом, был обнаружен ряд ошибок взаимодействия оптимизаций. Для текущего состояния компилятора системой ОСТеТ зафиксировано 527 фактов несрабатывания оптимизаций.

Заключение

.

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

— существование множества альтернативных направлений для дальнейшего развития;

— большое число вырабатываемых предложений по усилению оптимизационных возможностей компилятора;

— высокая интенсивность внесения изменений в архив проекта;

— высокий риск возникновения деградацийведение работ при отсутствии готового процессора.

В ходе решения поставленных задач были достигнуты следующие научные результаты:

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

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

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

— Разработана методика выработки предложений по дальнейшему развитию компилятора, сочетающая в себе анализ производительности на.

Показать весь текст

Список литературы

  1. АНКВОО. V. Agarwal, М. Hrishikesh, S. Keckler, D. Burger. Clock Rate versus IPC: The End of the Road for Conventional Microarchitectures. ACM, pp. 248−259, 2000
  2. AKPW83. J.R. Allen, K. Kennedy, C. Porterfield, J. Warren. Conversion of Control Dependence to Data Dependence. In Proceedings of the 10th Annual ACM Symposium on the Principles of Programming Languages, pp. 177−189, 1983
  3. BabayanOO. B. Babayan. E2K Technology and Implementation, in Proceedings of the 6th International Euro-Par Conference, Lecture Notes in Computer Science, Springer, vol. 1900, pp. 18−21, August 2000
  4. BGS94. D. Bacon, S. Graham, O. Sharp. Compiler Transformations for High-Performance Computing. ACM Computing Surveys, 26 (4), pp. 345−420, 1994
  5. BFG85. M. Bassman, G. Fisher, A. Gargaro. An Approach for Evaluating the Performance Efficiency of ADA Compilers, 1985
  6. Beizer83. B. Beizer. Software System Testing and Quality Assurance. N.Y., Van Nostrand Reinhold, 1983
  7. BCM94. D. Bernstein, D. Cohen, D. Maydan. Dynamic Memory Disambiguation for Array References. In Proceedings of the 27th Annual International Symposium on Microarchitecture, pp. 105−111, 1994.
  8. CaKe94. S. Carr, K. Kennedy. Improving the Ratio of Memory Operations to Floating-Point Operations in Loops. ACM Transactions on Programming Languages and Systems, 16 (6), pp. 1768−1810, 1994
  9. Cascaval99. C. Cascaval, L. DeRose, D. Padua, D. Reed. Compile-time Based Performance Prediction. Lecture Notes in Computer Science, Springer Verlag, 1999
  10. CascavalOO. C. Cascaval. Compile-time Performance Prediction of Scientific Programs. PhD Thesis, University of Illinois at Urbana-Champaign, 2000
  11. СаРаОЗ. С. Cascaval, D. Padua. Estimating Cache Misses and Locality Using Stack Distances. In Proceedings of ICS'03, pp. 150−159, 2003
  12. Diefendorf99. K. Diefendorf. The Russians Are Coming: Supercomputer Maker Elbrus Seeks to Join x86/IA-64 Melee. Microprocessor report, vol. 2, no. 2, pp. 7−11, 1999
  13. Eigenmann93. R. Eigenmann. Toward a Methodology of Optimizing Programs for High-Performance Computing. In Proceedings of the 7th International Conference on Supercomputing, pp. 27−36, 1993
  14. FlWa86. P. Fleming, J. Wallace. How not to Lie with Statistics: the Correct Way to Summarize Benchmark Results. Communications of the ACM, vol. 29, no.3, pp. 218−221, March 1986
  15. GKK82. S. Graham, P. Kessler, M. McKusick. gprof: A Call Graph Execution Profiler. In SIGPLAN Symposium on Compiler Construction, pp. 120−126, June 1982
  16. HHR95. R. Hank, W. Hwu, B. Rau. Region-Based Compilation: An Introduction and Motivation. In Proceedings of the 28th Annual International Symposium on Microarchitecture, Micro-28, pp. 158 168, December 1995
  17. НеРаОЗ. J. Hennessy, D. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann Publishers, San Francisco, Third Edition, 2003
  18. JCNWLZ02. R. Ju, S. Chan, T.-F. Ngai, C. Wu, Yu. Lu, J. Zhang. Open Research Compiler (ORC) 2.0 and Tuning Performance on Itanium. Micro-35 Tutorial, 2002
  19. KlLi02. AJ KleinOsowski, D. Lilja. MinneSPEC: A New SPEC Benchmark Workload for Simulation-Based Computer Architecture Research. Computer Architecture Letters, vol.1, May 2002
  20. KRS92. J. Knoop, O. Ruthing, B. Steffen. Lazy Code Motion. ACM
  21. SIGPLAN Notices, 27(7), pp.224−234, 1992
  22. AmOO. S. Larsen, S. Amarasinghe. Exploiting Superword Parallelism with Multimedia Instruction Set. PLDI 2000, Vancouver, British Columbia, Canada
  23. Va03. M. Len, I. Vaitsman. VLIW: Old Architectures of the New Generation, http://www.digit-life.com
  24. St98. E. Limpert, W. Stahel. Life is Log-normal! Science and Art, Life and Statistics. ETH Zurich, 1998
  25. W99. Y.-T. Li, S. Malik, A. Wolfe. Performance Estimation of Embedded Software with Instruction Cache Modeling. Design Automation of Electronic Systems, vol. 4, no. 3, pp. 257−279, 1999
  26. Mashey04. J. Mashey. War of the Benchmark Means: Time for a Truce. ACM SIGARCH Computer Architecture News, vol. 32, no. 4, pp. 1−14, September 2004
  27. MCT96. K. McKinley, S. Carr, C. Tseng. Improving Data Locality with Loop Transformations. ACM Transactions on Programming Languages and Systems, vol. 18, no. 4, pp. 424−453, 1996
  28. McMahon88. F. McMahon. The Livermore Fortran Kernels Test of the Numerical Performance Range. Performance Evaluation of Supercomputers, pp. 143−185, Elsevier Science Publishers B.V., 1988
  29. MGST70. R. Mattson, J. Gecsei, D. Slutz, I. Traiger. Evaluation Techniques for Storage Hierarchies. IBM Systems Journal, 9(2), 1970
  30. Muchnick97. S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers, 1997
  31. MuWh95. F. Mueller, D. Whalley. Avoiding Conditional Branches by Code Replication. In Proceedings of the 1995 ACM SIGPLAN conference on Programming language design and implementation, 30(6), pp 5666
  32. RHD98. H. Rotithor, K. Harris, M. Davis. Measurement and Analysis of С and С++ Performance. Digital Technical Journal, vol. 10, no. 1, pp. 32−47,1998
  33. Sias05. J. Sias. A Systematic Approach to Delivering Instruction-Level Parallelism in EPIC Systems. PhD Thesis, University of Illinois at Urbana-Champaign, 2005
  34. TVVA03. S. Triantafyllis, M. Vachharajani, N. Vachharajani, D. August.
  35. Compiler Optimization-Space Exploration. In Proceedings of the International Symposium on Code Generation and Optimization: Feedback-directed and Runtime Optimization CGO'03, pp. 204−215, 2003
  36. VoMa93. V. Volkonsky, D. Maslennikov. Compiler Method and Apparatus for Elimination of Redundant Speculative Computations from Innermost Loops. US Patent, US 6 301 706 Bl, Oct.9, 2001
  37. АБГСТ04. Е. Ю. Архангельская, Ю. В. Баскаков, A.B. Грабежной, Н.Н.
  38. , Л.Г. Тарасенко. ОСТеТ: система для исследования оптимизационных возможностей компиляторов. Высокопроизводительные вычислительные системы и микропроцессоры, сборник научных трудов ИМВС РАН, N7, с. 3−11, 2004
  39. АСУ01. А. Ахо, Р. Сети, Дж. Ульман. Компиляторы принципы, технологии, инструменты. — М.: Издательский дом «Вильяме», 2001
  40. БГЛТРЧ04. Ю. В. Баскаков, А. В. Грабежной, А. А. Лаврешников, Р.Ю.
  41. , Л.Г. Тарасенко, Е.Ю. Чернова. Вопросы организациисистемы обеспечения качества оптимизирующих компиляторов. Высокопроизводительные вычислительные системы и микропроцессоры, сборник научных трудов ИМВС РАН, N6, с. 77−85, 2004
  42. БВГНТ04. Ю. В. Баскаков, В. Ю. Волконский, А. В. Грабежной, М.И.
  43. Нейман-заде, Л. Г. Тарасенко. Поддержка процесса повышения производительности компиляторов. Информационные технологии и вычислительные системы, N3, с.78−92, 2004
  44. ББКЛММ81. Б. Боэм, Дж. Браун, X. Каспар и др. Характеристики качества программного обеспечения. М.: Мир, 1981
  45. ДрНо05. А. Ю. Дроздов, С. В. Новиков. Алгоритм формирования гиперблоков, 2005 (в печати)
  46. ДрРо04. А. Ю. Дроздов, Е. В. Ровинский. Технология использования векторных операций для получения оптимального кода. Компьютеры в учебном процессе, N9, 2004
  47. ДрСт04. А. Ю. Дроздов, А. М. Степаненков. Технология оптимизации цикловых участков процедур в компиляторах для архитектур с явно выраженной параллельностью. Информационные технологии и вычислительные системы, N3, с.52−62, 2004
  48. КанерОО. С. Канер и др. Тестирование программного обеспечения. К.: ТИД «DiaSoft», 2000
  49. Кауфман84. В. Ш. Кауфман. Стандартизация и контроль трансляторов.
  50. Различные аспекты системного программирования. М.: Изд-во Моск. ун-та, с.47−85, 1984
  51. Кузьминский99. М. Кузьминский. Отечественные микропроцессоры: Elbrus Е2К. Открытые системы, N05−06, с. 8−13, 1999
  52. Кулаков84. А. Ф. Кулаков. Оценка качества программ ЭВМ. К.: Техшка, 1984
  53. Лаврешников02. А. А. Лаврешников. Пакет для оперативной оценки производительности оптимизирующих компиляторов. Высокопроизводительные вычислительные системы и микропроцессоры, сборник научных трудов ИМВС РАН, 2002
  54. Майерс80. Г. Майерс. Надежность программного обеспечения М.: Мир, 1980
  55. Майерс82. Г. Майерс. Искусство тестирования программ. М.: Финансы и статистика, 1982
  56. Сухомлин97. В. А. Сухомлин. Система программирования тройного стандарта (ЗС++). IV Международная конференция «Развитие и применение открытых систем». Сборник докладов, с. 37−47, Нижний Новгород, 1997
  57. ФофановОО. В. А. Фофанов. Внешнее тестирование интерфейсных библиотек (на примере интерфейса ASIS). Диссертационная работа. Москва, 2000
  58. Хамби76. Э. Хамби. Программирование таблиц решений. М.: Мир, 1976
  59. ARCTIC. The Laboratory for Advanced Research in Computing Technology and Compilers, University of Minnesota -http ://w w w. arctic .umn.edu
  60. Bench. Orost J., The Bench++ Benchmark Suitehttp://www.research.att.com/~orost/bench plus pi us/paper, html
  61. Blitz. Blitz++ library http://www.oonumerics.org/blitz/
  62. CVS. The Concurrent Versions System http://www.cvshome.org/
  63. DEC. Digital Equipment Corporation http://www.dec.com
  64. Fortran. ANSI X3.9−1978 FORTRAN 77
  65. GPROF. GNU gprof http://ftp.gnu.Org/gnu/Manuals/gprof-2.9.l
  66. PACT. The IMPACT Research Grouphttp://www.crhc. uiuc .edu/IMP ACT/1.tel. Intel, Inc http://www.intel.com1.aniumRM. Intel Itanium 2 Processor Reference Manual, Document Number: 251 110−001, May 2004
  67. Nullstone. Nullstone Corporation http://www.nullstone.com
  68. POSIX. ISO/IEC JTC1/SC22 DIS 13 210: 1996, Information Technology -Requirements and Guidelines for Test Methods Specifications and
  69. Test Method Implementation for Measuring Conformance to POSIX Standard.
  70. SPEC. Standard Performance Evaluation Corporation http://www.spec.org Sun] Sun Microsystems, Inc — http://www.sun.com
Заполнить форму текущей работой