Вы здесь

Теоретические основы анализа программ

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

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

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

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

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

Более подробную информацию мы будем выкладывать на данном сайте по мере необходимости, а полное описание теоретических основ подхода, заложенного в систему V-Ray, можно найти в книге:
Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - СПб.: БХВ-Петербург, 2002. - 608 с.