ЭВМ и программная обработка данных
89
Danilkin Fiodor Alekseevich, doctor of technical science, professor, [email protected], Russia, Tula, Tula State University,
Novikov Aleksey Vladimirovich, candidate of technical science, docent,
[email protected] , Russia, Tula, Tula State University,
УДК 004.415.52
СИСТЕМА АНАЛИЗА ПРОИЗВОДИТЕЛЬНОСТИ ПРОГРАММОГО КОДА
Е.И. Дараган
Рассмотрены особенности анализа производительности программного кода,
программ. Описан и представлена реализация метода оценки стоимости выполнения операций программного кода для абстрактной вычислительной системе.
Ключевые слова: программа, код, стоимость, операция. Иерархическая структура, присущая всем алгоритмам и всегда во-
площенная в программах, является хорошим источником для рациональ-ного использования ресурсов. Все современные языки программирования обязательно не только отражают, но и подчеркивают иерархическую структуру алгоритмов. Выделение, подчеркивание иерархий, реализация принципа структурного и объектно- ориентированного программирования способствует пониманию правильного выполнения алгоритма, упрощению разработки программы.
Разбиение на частные, элементарные подпрограммы обеспечивает-ся представлением алгоритма в виде одного или нескольких взаимодейст-вующих процессов. Процессы – логически завершенные, преимуществен-но значительные по объему вычисления, на которые необходимо разбить выполняемый алгоритм. При формировании процессов основополагающи-ми являются требования оптимальной сегментации программ для распре-деления вычислений между средствами вычислительной среды и распре-деления в ней ресурсов при параллельной выполнении нескольких процес-сов.
Одновременно между процессами существуют два вида зависимо-сти: процессы могут быть явно зависимы (влияют на выполнение друг дру-га, могут порождать или прекращать другие процессы) и зависимость мо-жет быть реализована на уровне операционной системы. Для первого слу-чая характерно, что процессы,объединённые в рамках одной задачи, ис-пользуют закрепленную для этой задачи общую память. Данная характе-
Известия ТулГУ. Технические науки. 2013. Вып. 9. Ч.2
90
ристика рассмотренной зависимости позволяет осуществлять построение достаточно сложных программных систем. Для второго типа зависимостей характерно параллельное выполнение нескольких процессов. В данном случае, управление памятью, синхронизация и распределение нагрузок между ресурсами системы выполняется централизованно.
В многопроцессорной системе одновременно могут выполняться, т.е. находиться в активном состоянии, несколько процессов. Их число ог-раничено количеством процессоров в вычислительной среде. Процесс представляет собой элементарную программу. Каждая программа форми-руется определенным наром команд, совокупность и порядок которых реа-лизуют конкретно взятый алгоритм функционирования программной сис-темы.
Существует ряд важных характеристик, в соответствии с которыми оцениваются программы: правильность, точность, надежность, сопровож-даемость, стоимость разработки, модифицируемость. В данной статье внимание будет уделено производительности программ,а также рассмот-рена методика оценки производительности программ для различных кон-фигураций абстрактной вычислительной системы. Определим понятие программы.
В [1] программой называется описание вычислительного метода на языке программирования. В данном определении ключевыми являются термины вычислительный метод и язык программирования. Под вычисли-тельным методом понимается процедура, обладающая всеми характери-стиками алгоритма, за исключением конечности. Алгоритм является ко-нечным набором правил, точно определяющий последовательность опера-ций или шагов, которые необходимо выполнить для решения искомой за-дачи.
Особое место в анализе программы занимает определение показа-телей трудности ее выполнения.Трудность зависит от различных факторов. Основными из них являются время выполненияи стоимость выполнения операций, алгоритма.Одним из главных вопросов при анализе производи-тельности программы, каким образом программа расходует время своего выполнения? Для ответа на этот вопрос,необходимо определить в исход-ной программе множество состояний [2, 3], в которых может находиться программа во время своего выполнения. Если – такое
множество, то поведение программы можно описать последовательностью состояний, в которых нахожится программа при выполнении, и временем нахождения в каждом из состояний.
Формально это описание можно представить как последовательность ,
где tj-продолжительность j-ого интервала выполнения состоянииSij
ЭВМ и программная обработка данных
91
Если для двух j и k = 1,2, …, n определить
то общее время, потраченное на состояние Si во время выполнения про-граммы можно получить
где r – число интервалов, на которое разделяется все время выполнения. Общее время выполнения определяется по формуле (1)
Составляющая программу информация может быть разделена на
части –блоки. В любой заданный момент выполнения программы обраба-тывается один из этих блоков. Очевидно, что минимальным размером бло-ка составляет выполнение единичной операции присваивания значений, запись в память. В течение любого интервала времени обычно выполняет-ся только некоторое подмножество блоков. В этом случае состоянием про-граммы можно считать ссылку на некоторый блок или на некоторое кон-кретное подмножество блоков. Время выполнения можно разбить на ин-тервалы, соответствующие каждому из этих состояний. Последователь-ность состояний, определяемая блоками, является описанием схемы обра-щений (информационный граф [4]).
Понятие стоимости выполнения операции включает в себя некую абстрактную оценку сочетания эффективности и производительности при выполнении шага алгоритма, блока программы. Для просто применения данного понятия предлагается использовать классификацию операций, ко-торые могут быть произведены в программном коде:
1.Арифметические операции; 2.Вызовы подпрограмм и функций; 3.Операции с памятью; 4.Логические операции. Для каждой категории характерны определенные наборы операций,
которые могут быть выполнены в абстрактной вычислительной системе. Стоить отметить, что указанные выше категории являются лишь основны-ми и не далеко не исчерпывающими. Для каждой отдельно взятой вычис-лительной системы могут быть сформированы свои категории операций или данное понятие может отсутствовать. Категории, введенные раннее, описывают систему группировки операций и задания для каждой группы определенных особенностей расчета характеристик производительности.
Известия ТулГУ. Технические науки. 2013. Вып. 9. Ч.2
92
Представленные категории операций легли в основу автоматизиро-ванного анализа программного кода на предмет оценки производительно-сти. Ключевым звеном системы является понятие конфигурации – набор характеристик абстрактной вычислительной среды, используемых при расчетах стоимости выполнения как отдельных операций, так и программ-ного кода в целом.
Конфигурация характеризуется наличием в ней таких характери-стик как: количество процессоров, количество ядер на каждый доступный для использования процессор. Для каждого процессора имеется возмож-ность привязки категории операции и стоимости выполнения с точностью до операции. Ниже представлена структурная схема разработанной систе-мы, в частности таблицы базы данных (рис. 1).
Рис.1. Структурная схема базы данных
Табличный способ хранения описанных выше данных представляет
возможность хранить в системе практически неограниченное количество конфигурацию системы, что дает возможность проводить анализ различ-ных вариантов конфигурирования системы под конкретно взятый алго-ритм.
Рис.2. Пример информационного графа программы
ЭВМ и программная обработка данных
93
Система интегрирована в с модулями, описанными в [5]. В допол-нение к процессупостроения графа информационных зависимостей [4] (рис. 2),предлагается следующая методика: в построенном дереве состоя-ний, последовательно, вне зависимости от порядкового номера состояний, осуществлять анализ кода программы. Анализ заключается в выявлении в нем основных операций, которые были определены в системе и включены в активную конфигурацию. В системе имеется возможность просмотра де-тализированной информации о каждом из выделенных на этапе анализа кода состояний (рис. 3).
Рис.3. Пример расчета стоимость выполнения операций алгоритма
в абстрактной вычислительной системе В совокупности с методиками и средствами моделирования сетей
Петри-Маркова [6]инструментальное средство, а также алгоритмы и мето-ды, заложенные в ее реализацию, позволяют проводить анализ стоимост-ных характеристик алгоритмов, представленных в виде программного ко-да. Постановка оптимизационной задачи, решающей проблему оптималь-ного распределения обработки состояний программного кода между про-цессорами абстрактной вычислительной среды, и ее решение позволит решить задачу распараллеливания вычислений последовательного алго-ритма.
Список литературы
1. Кнут Д., Грэхем Р. Конкретная математика. Основаниеинформа-тики. Concrete Mathematics.A Foundation for Computer Science. М.: Мир; Бином. Лаборатория знаний, 2006. 703 с.
2. Арапбаев Р.Н. Анализ зависимостей по данным: тесты на зависи-мость и стратегии тестирования // Диссертация на соискание ученой степени кандидата физико-математических наук.
3. Дараган Е.И. Параллельные вычисления и верификация программ // Известия ТулГУ. Серия: Технические науки. Вып. 5. Тула: Изд. ТулГУ,
Известия ТулГУ. Технические науки. 2013. Вып. 9. Ч.2
94
2012. С. 95-101. 4. Ивутин А.Н., Дараган Е.И. Построение схемы распараллеливания
последовательного алгоритма программы // ИзвестияТулГУ. Серия: Тех-нические науки. Вып. 5. Тула: Изд. ТулГУ, 2012. С. 101-109.
5. Ивутин А.Н., Дараган Е.И. Автоматизированый анализ последо-вательного кода программы // Известия ТулГУ. Серия: Технические науки. Вып. 10. Тула: Изд. ТулГУ, 2012. С. 184-189.
6. Ивутин А.Н., Дараган Е.И. Построение схемы распараллеливания последовательного алгоритма программы // ИзвестияТулГУ. Серия: Тех-нические науки. Вып. 5. Тула: Изд. ТулГУ, 2012. С. 101-109.
Дараган Евгений Игоревич, аспирант, [email protected], Россия, Тула, Тульский государственный университет
THE SYSTEM PERFORMANCE ANALYSIS SOFTWARE
E.I. Daragan
The features of the analysis of the performance of code programs. Described is a me-thod implementation and evaluation of the cost of operations code for the abstract computing system.
Key words: program code, the cost of the operation. Daragan Evgeniy Igorevich, postgraduate, [email protected], Russia, Tula,
Tula State University
УДК 004.93
О ЛОКАЛИЗАЦИИ ОТРИЦАТЕЛЬНЫХ СОБСТВЕННЫХ ЗНАЧЕНИЙ В МАТРИЦАХ ПАРНЫХ СРАВНЕНИЙ
С.Д. Двоенко, Д.О. Пшеничный
В интеллектуальном анализе часто вместо результатов измерений исходных признаков на объектах данные сразу же представлены парными сравнениями объек-тов между собой. В отсутствие исходных признаков условием корректного погруже-ния множества в метрическое пространство является неотрицательная определен-ность матрицы парных близостей его элементов друг к другу. В этом случае близости интерпретируются как скалярные произведения. Предложено корректировать нару-шенную метрику путём минимальных изменений элементов матрицы парных сравне-ний с использованием оптимальной перестановки её строк и столбцов.
Ключевые слова: метрика, детерминант, скалярное произведение, расстояние, близость, сходство, различие, собственные числа.
Введение. Рассмотрим экспериментальные данные, представленные парными сравнениями элементов конечного множества между собой в ви-де квадратной матрицы. Если она положительно определена, то её опреде-литель и все собственные значения положительны. Следовательно, суще-