автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Информационный анализ программ, ориентированный на процессор с длинным командным словом

кандидата физико-математических наук
Ковтушенко, Александр Петрович
город
Новосибирск
год
1993
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Информационный анализ программ, ориентированный на процессор с длинным командным словом»

Автореферат диссертации по теме "Информационный анализ программ, ориентированный на процессор с длинным командным словом"

РГ6 од

1 -7

РОССИЙСКАЯ АКАДЕМИЯ НАУК Сибирское отделение Институт систем информатики

На правах рукописи

Ковтушенко Александр Петрович

ИНФОРМАЦИОННЫЙ АНАЛИЗ ПРОГРАММ, ОРИЕНТИРОВАННЫЙ НА ПРОЦЕССОР С ДЛИННЫМ КОМАНДНЫМ СЛОВОМ

Специальность 05.13.11 - математическое и программное обеспечение вычислительных машин, комплексов, систем и сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата физико-математических наук

Новосибирск 1993

Работа выполнена в Вычислительном центре Сибирского отделения Российской академии наук.

Научные руководители:

доктор физико-математических наук, профессор Миренков Николай Николаевич,

Официальные оппоненты.'

доктор физико-математических наук, профессор Нуриеи Ринат Мисбахович,

Ведущая организация:

Московский энергетический институт, кафедра Прикладной математики.

Защита состоится 14 января 1994 г. в 14.30. часов на' заседании специализированного совета К 003.93.01 по присуждению ученой степени кандидата наук в Институте Системных Исследований СО РАН по адресу:

630090, г. Новосибирск-90, пр. Ак. Лаврентьева, б С диссертацией можно ознакомится в читальном зале отделения ГПНТБ (630090, г. Новосибирск-90, пр. Ак. Лаврентьева, б).

Автореферат разослан 13 декабря 1993 г.

доктор физико-математических наук Евстигнеев Владимир Анатолиевич.

кандидат физико-математических наук Константинов Владимир Иванович.

Ученый секретарь специализированного совета, К 003.93.01 к.ф.-м.н.

I. ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

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

- широта класса алгоритмов и задач, допускающих адекватное отображение на архитектуру, достижение приемлемой реальной производительности;

- наличие систем программирования, эффективных как в смысле достигаемой на полученном коде реальной производительности, так и в смысле технологичности программирования;

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

Одной из наиболее перспективных разновидностей на основании этих критериев по нашему мнению является в настоящее время архитектура с длинным командным словом (Very Long Instruction Word - VLIW). VL/W-процессор представляет собой совокупность исполнительных устройств, управляемых отдельными полями общего командного слова (длина командного слова достигает 1024 бит). При этом параллельная работа устройств обеспечивается синхронным выполнением командного слова всеми исполнительными устройствами. Планирование вычислений полностью возлагается на программное обеспечение, отсутству-;т аппаратура для опережающего просмотра потока команд л оптимизации на этапе выполнения программы, отсут-

• С

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

Плодотворность идеи VX-ZW-архитектуры тесно связана с успехами в области оптимизации микропрограмм и методов автоматического выделения параллелизма. Статическое планирование кода VLiW-npoueccopa, отсутствие накладных расходов на синхронизацию по потоку данных позволяет использовать мелкозернистый параллелизм. Однако наряду с этим может быть использован крупноблочный параллелизм: совмещение независимых итераций циклов, совмещение независимых модулей программы. Лля увеличения крупноблочного параллелизма могут быть использованы преобразования гнезд циклов, применяемые при векторизации (перестановки вложенных циклов, преобразования пространства итераций). Таким образом, VLIW-архитектура имеет предпосылки для эффективной обработки как кода, поддающегося векторизации, так и не векторизуемого, но содержащего достаточно "мелкозернистого параллелизма" - независимых операторов и операций.

В настоящее время имеется определенный положительный опыт создания систем программирования с автоматическим выявлением параллелизма для VLIW-ЭВМ: транслятор Bulldog и экспериментальная машина ЕЫ-Ь12 в Иель-ском университете, компьютеры семейства Trace фирмы Multiflow Computer, семейство процессоров АР-120/FPS-164 фирмы FPS, машина Cydra-5 фирмы Cydrome, проект системы Эльбрус-3 и др. В целом, достоинства УХ7И/-архитектур достаточно очевидны, но создание* для них эффективных систем программирования требует дополнительных исследований и разработок. Необходимо расширение круга специалистов, которые в совершенстве владеют методами используемых там преобразований и способны развивать эти методы.

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

г

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

- разработать и исследовать алгоритмы выделения информационных зависимостей в .требуемой форме;

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

- реализовать предлагаемые алгоритмы в составе транслятора с Фортрана для спецпроцессора ЕС-2706.

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

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

Сформулированы модели "сильных" зависимостей, по-

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

Практическая значимость результатов заключается в разработке на основе предложенных алгоритмов фазы информационного анализа и оптимизации для транслятора NAP-FORTRAN. Этот оптимизирующий транслятор создан для процессора ЕС-'2706 в рамках проекта "Сибирь" и передай в опытную эксплуатацию. Разделение процедур информационного анализа, оптимизации и процедур упаковки кода, осуществленное в указанном трансляторе, создает возможность переноса транслятора на процессор сходной архитектуры: ¿7С-2706.1, ЕС-2709 или иной процессор с длинным командным словом.

Апробация работы. Основные результаты работы были представлены на международном семинаре " Методы конструирования программ" (Планерское, 21 - 25 сентября 1992), а также на международной конференции "Parallel Computing Teclmologies-93" (Обнинск, 30 августа - 4 сентября) .

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

Структура и объем работы. Диссертационная работа состоит из введения, четырех глав и заключения, изложенных на 116 страницах, содержит 4 рисунка, 60 наименований библиографии и 5 страниц приложения, всего 135 страниц.

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

II. СОДЕРЖАНИЕ РАБОТЫ Первая глава посвящена анализу особенностей УЫШ-архитектуры, определяющих эффективные способы ее программирования. В первом параграфе содержится обзор моделей процессоров, предложенных в рамках УЫ\¥ подхода, а также теоретических работ по упаковывающим трансляторам. Особое внимание при этом уделено различным модификациям программного конвейера - эффективного способа обработки циклов.

II

I

п

Пролог

1-1

II

N

г=1, N-1

Эпилог

I

Рис.1. Схемы исходного цикла и программного конвейера

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

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

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

- используется набор специализированных исполнительных устройств;

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

- выбран простой интерфейс обмена с оперативной памятью.

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

- "сложного" конвейера (рис.2) — новой техники программного конвейера для гнезда циклов;

- точного теста — алгоритма, обеспечивающего незагру-бляющий анализ;

- сокращений ссылок на массивы — оптимизации, основанной на совмещении исполнений ссылок из разных итераций цикла;

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

1,1 1,1

1,1 1,2 1,н нд ¡+1,1 {=1,^,2

1,1 а+2 1,Н ¡,з+1 н,1 ¡+1,з+1 II,II ¡+1,3 ]=1,И-2

1,н н,1 II,II 1+1,N-1

II,II 14-1,N

Рис.2. Сложный коонвейер

II

и

1,1

«Л

1,Н

Ч

11,1

¡+1,3

II,II

¡+1,3

i = l,Ni,2

I

Рис.3. Квантование гнезда

циклов

Вторая глава посвящена формализации информационных зависимостей в простом и сложном программных конвейе рах. Гибкость V¿/Н^-архитектуры позволяет применять разнообразные схемы распараллеливания, требующие различного анализа информационных зависимостей. Моделью зависимостей по данным мы называем описание тех зависимостей, которые необходимо принять во внимание при использовании определенной схемы преобразования.

Одним из наиболее изученных методов распараллеливания и связанного с ним информационного анализа является векторизация, что является основанием для попыток использования этих результатов для ^¿/И^-архитектуры. Во втором параграфе содержится краткий обзор работ по векторизации, обосновывается необходимость иного подхода для VЫ\\г. При анализе используемого при векторизации точного теста Вольфа нами была выявлена в нем ошибка, приводится контрпример иллюстрирующий ее.

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

й : А(/1(п,г2,...,1к),М1),...,/,(!))

где / = ¿1, ¿2,..., ¿л- - индуктивные переменные циклов. Ограничения, накладываемые на взаимное расположение сводятся к двум моделям зависимости.

2.А Между ссылками на массив £1 и 5г существует циклически независимая связь, если существует такой целочисленный набор (х\, хп,... ,хк), что 0 < XI < N1, 0 < Х2 < N2,..., О < хк < УУЬ /,(*) = 01(Л'), ..., /к{Х) = дк{Х).

2.Б Между ссылками на массив и 5о существу-

ет циклически зависимая связь с диапазоном зависимости Б, если не существует таких целочисленных наборов (хч,*2, ....я*) и (уиУ2,---,Ук), что 0 < XI = У1 < N1, 0 < ж2 = у2 < N2, ..., 0 < = ук. 1 < Nk-ь 0 < хк < ук < ЛЬ,хк-Ук< N2, ЫХ) = 91(Х), ..., МХ) = дк(X).

Данные модели задают ограничение на допустимое размещение ссылки 5з относительно ссылки 51 в программном конвейере — область допустимого расположения выделена штриховкой

Ь-О шаг Ь-О+1 шаг Ь-1 шаг Ь шаг

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

- зависимостей, препятствующих распараллеливанию:

- зависимостей на фиксированном множестве итераций, допускающих оптимизацию;

- контекстных условий, допускающих оптимизацию.

Выбор модели сильной зависимости связан со схемой

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

В дальнейшем рассмотрении мы ограничиваемся случа-

ем линейных индексных выражений:

к к /т(/) = °о + а,г, дт(1) = Ь0 + (2-2)

/=1 (=1

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

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

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

БНЖ.а. Циклически независимая связь в простом конвейере возможна, если справедливо неравенство:

к к - (а, - Ь,)~ Ы, < Ь0 - а0 < - £ (а, - 6,)+ЛГ,.

(=1 / = 1

БНЖ.б. Циклически зависимая связь с дйапазоном Б в простом конвейере возможна, если существует <1, 1 < (1 < Ик,

удовлетворяющее неравенствам: к

~ Л (а' ~ - ¿тт(аь,6к) < Ьо - ао

/ = 1

к

< - х(ак,Ьк). (3.1)

I = 1

Для того, чтобы определить минимальное (I, удовлетворяющее данным неравенствам, следует разрешить приведенные неравенства относительно с1. В зависимости от знака коэффициентов, при (I тест предусматривает случаи:

• ак > 0 , Ьк > 0 ;

• ак < 0 , Ьк < 0 ;

• { ак < О , Ьк > 0 } или { ак < О , Ьк > 0 }.

Аналогично формируется тест для сложного конвейера на основе неравенств Бенерджи.

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

- переупорядочивание переменных и неравенств;

- решение системы диофантовых уравнений в параметрическом виде;

- подстановка параметрических решений в неравенства;

- решение системы целочисленных неравенств.

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

Во втором параграфе содержится описание первого действия алгоритма - решения системы диофантовых уравнений. Применяемый нами алгоритм является обобщением

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

Утверждение Если множество допустимых рацио-

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

И!']!*,] =[*]. > о,

где I — единичная матрица, в множестве {х(} может быть выделено непустое подмножество ограниченных переменных.

Утверждение <}.2. Система неравенств Дж < 6, имеющая неограниченное множество допустимых рациональных решений, не имеет целочисленных решений тогда и только тогда, когда система

имеет непустое подмножество {ж-} ограниченных, переменных и подсистема из соответствующих им неравенств А'х' < Ь' не имеет целочисленных решений.

Рассматривается система неравенств особого вида:

01,1^1 < Ь ь

(НЛх1 + ... + 'Ч^Х] <

«1+1,1 + • • • + < ¿»+1,

Яг+ЗД^! + ■ • ■ + «¿ + 2,7 + аг+2,; + 1X] + 1 < +

(1)

«тД-Г! + • • •

+

б) строки упорядочены таким образом, что для переменных {х-} справедливо: {¿'¿|1 < г < к) - ограничены, 1 < г < 1п} - неограничены.

Для этой системы доказывается утверждение

Утверждение У,.3. В системе неравенств (4.7) все переменные X] , для которых существует о,-; ф 0,1 < г < к, ограничены.

Алгоритм решения системы (4.7) состоит из двух частей:

1. Задачи целочисленного программирования Л'х' < Ь' для неравенств 1 < / < к с ограниченными переменными х'{ .

2. Если существует целочисленное решение, то решение задачи целочисленного программирования для полной системы ('2) .

Утверждение Приведенный алгоритм гарантирует

отсутствие зацикливания.

В четвертом параграфе по приведенной выше' схеме строится точный тест для простого программного конвейера; в пЛтом - для сложного.

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

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

Проверка контекстных условий оптимизаций на основе сильных зависимостей требует в общем случае проверки отношения зависимости со всеми ссылками, находящимися в теле цикла. Данная.проверка осуществляется нами инкре-ментным образом в процессе построения Графа Зависимостей Массива. (ГЗМ).

ГЗМ представляет собой структуру (S,£), где S — множество ссылок на массив, £ — множество ребер зависимости. Вершины графа имеют атрибут S.Access со значениями (read; rdwri\ write) — вид ссылки hev массив ( чтение; чтение и запись; запись). Ребра вида Е = (Si,¿>2) графа имеют атрибуты: E.Threshold диапазон зависимости, причем Threshold = О для циклически независимых связей S16S2 , Threshold > О для циклически зависимых связей S16S2 E.Dpnd со значениями (strong, weak) - тип зависимости (сильная, слабая).

Сложность алгоритмов упаковки и качество получаемого кода зависит от количества ребер и вершин ГЗ. Количество вершин (количество ссылок на массив) может быть уменьшено при помощи сильных зависимостей. Ребра задают частичный порядок исполнений ссылок. Доказано следующее свойство ГЗМ

Утверждение 4-6. ГЗ имеет минимальное, относительно 'задаваемого им частичного порядка исполнений ссылок, количество ребер тогда и только тогда, когда не существует такого ребра Е = (So,S„), что вершины So и Sn связывает путь So, Si,..., S„, причем для ребер Ек = (Sk-i,Sk) справедливо Y12= 1 Ei.Threshold < E.Threshold.

Предлагаемый нами алгоритм формирования ГЗМ задает порядок применения тестов на основании локальной информации: после тестирования пары ссылок следующие пары ссылок формируются из соседних в ГЗМ вершин. Данный

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

Утверждение Контекстные условия выполняются для ребра Е — (Si.Sa) при условии,'что в ГЗМ не существует ребра Е' = (Sr.So) такого, что Е'.Threshold < E.Threshokl.

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

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ.

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

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

3. предложена внутренняя форма представления результатов анализа - граф зависимостей массива (ГЗМ). Сформулировано условие полноты ГЗМ, позволяющее определить необходимое (минимальное) для сохранения частичного порядка множество ребер; предложен алгоритм формирования ГЗМ, определяющий порядок применения'тестов зависимостей к парам ссылок, а также ограничивающий количетво тестируемых пар на основании условия полноты;

4. предложены тест сильных зависимостей и встроенный в алгоритм формирования ГЗМ контроль контекстных условий, выявляющие сильные зависимости, которые позволяют выполнять сокращение ссылок на массив при формировании простого конвейера.

В заключение автор выражает глубокую благодарность научным руководителям - доктору ф.-м. наук, профессору Н.Н.Миренкову за постановку задачи и помощь в работе и доктору ф.-м. наук Е.А.Евстигнееву за оказанную поддержку и внимание к работе. Автор также искренне благодарен А.В.Шалимову за ценные замечания и сотрудничество в практической реализации, а также своим друзьям М.У.Курмаеву, А.М.Кондратову, Ю.М.Минаеву и А.К.Борисову (а/о Хоббит), без моральной и материальной поддержки которых завершить данную работу было бы существенно сложнее.

СПИСОК РАБОТ ПО ТЕМЕ ЛИССЕРТАПИИ

1. Ковтушенко А.П. Информационные зависимости в программном конвейере, вносимые ссылками на массив. В сб.: "Теоретическое и экспериментальное програлширование." - Новосибирск, 1992,- 10 с.

2. Ковтушенко А.П. Модель зависимости по данным в программном конвейере. Препринт 984, ВЦ СО АН РАН, Новосибирск, 1992.- 43 с.

3. Ковтушенко А.П. Тесты зависимостей по данным в программном конвейере. Препринт 998, ВЦ СО АН РАН, Новосибирск, 1993.- 55 с.

4. Kovtushenko A. Array Reference Disambiguation for VLIW. In Proceedings of PaCT-D3, 1993.- p.10.

5. Ковтушенко А.П. Зависимости по данным в простом и сложном программном конвейере. Кибернетика и СА, 1993.10 с.