Дипломная работа: Система автоматизации распараллеливания гибридный анализ

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

2. Время работы. Нам необходимо запустить программу на каждом тесте, а их может быть довольно много.

3.5 Гибридный анализ . Принцип организации

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

В результате работы статического анализатора мы получаем два вида информации:

1. Информация о наличии зависимостей по данным

2. Информация о предполагаемых зависимостях по данным

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

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

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

Отсюда, получаем алгоритм гибридного анализа зависимостей по данным:

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

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

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

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

4 Исследование и построение решения задачи

4.1 Представление базы данных САПФОР

База данных САПФОР основана на реляционной модели и представлена более чем двадцатью таблицами, связанными между собой.

Таблицы содержат информацию о некоторых сущностях, введенных для описания программы, результатов анализа, параметров и результатов распараллеливания. К основным сущностям относятся: файлы, программные единицы, циклы, переменные, имена и описания COMMON-блоков, выражения, операторы, вызовы подпрограмм, обращения к элементам массивов и т.д. Зачастую, информация о некоторой сущности разбита между таблицами базы данных. Например, чтобы собрать информацию о переменной var, скажем, программную единицу, в которой объявлена переменная, тип, размерность и атрибуты переменной, необходимо ознакомится с содержимым трех таблиц базы данных. Этот факт достаточно неудобен для организации дополнения базы данных новыми элементами, сравнения двух одинаковых элементов разных баз данных, или сбора информации об определенной сущности базы данных. Именно поэтому было решено создать представление базы данных, для которого будут справедливы следующие утверждения:

1. Представление базы данных должно иметь интерфейс для хранения и обработки всей информации из базы данных.

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

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

1. Хранилище информации о файлах программы

2. Хранилище информации об общих блоках программы

3. Хранилище информации о программных единицах программы

4. Хранилище информации о циклах программы

Рассмотрим каждое хранилище более подробно:

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

a. Структура, содержащая информацию о файле, заключает в себе:

· имя файла

· идентификатор файла в базе данных

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

К-во Просмотров: 277
Бесплатно скачать Дипломная работа: Система автоматизации распараллеливания гибридный анализ