МОДЕЛИ, МЕТОДЫ И СРЕДСТВА ПРЕДСТАВЛЕНИЯ ЗНАНИЙ ДЛЯ ПОВЫШЕНИЯ ПРОИЗВОДИТЕЛЬНОСТИ MPI ПРИЛОЖЕНИЙ
Специальность 05.13.17 - Теоретические основы информатики по техническим наук
ам
АВТОРЕФЕРАТ
диссертации на соискание ученой степени кандидата технических наук Нижний Новгород - 2012г.
Работа выполнена на кафедре математического обеспечения ЭВМ Федерального государственного бюджетного образовательного учреждения высшего профессионального образования Нижегородский государственный университет им. Н.И. Лобачевского
Научный консультант: кандидат технических наук, доцент Карпенко Сергей Николаевич
Официальные оппоненты: Хранилов Валерий Павлович, доктор технических наук, доцент, НГТУ им. Р.Е. Алексеева, профессор кафедры компьютерные технологии в проектировании и производстве;
Немнюгин Сергей Андреевич, кандидат физико-математических наук, доцент, СПбГУ, доцент кафедры вычислительной физики
Ведущая организация: Южно-Уральский государственный университет, г. Челябинск.
Защита диссертации состоится л5 апреля 2012 г. в 13 часов в ауд. 1258 на заседании диссертационного совета Д 212.165.05 при Нижегородском государственном техническом университете им. Р.Е. Алексеева по адресу: 603600, г. Нижний Новгород, ул. Минина, 24.
С диссертацией можно ознакомиться в библиотеке Нижегородского государственного технического университета им. Р.Е. Алексеева.
Автореферат разослан л3 марта 2012 г.
Ученый секретарь диссертационного совета, кандидат технических наук Суркова Анна Сергеевна
ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ
Актуальность темы диссертационной работы. Системы, основанные на знаниях, находят все более широкое применение для решения достаточно широкого круга неформализуемых задач. Под неформализуемыми задачами понимаются задачи, которые невозможно представить в числовой форме ввиду неточной определенности исходной информации, а также операций и целей ее преобразования. К числу таких задач относятся задачи классификации, диагностики, проектирования, интерпретации, отладки, принятия решений в условиях неопределенности и другие в самых разнообразных проблемных областях.
Разработка систем, основанных на знаниях, требует проведения исследований в области моделей представления знаний, методов их описания и алгоритмов интерпретации. Исследованию этих вопросов посвящено достаточно много публикаций, среди которых можно выделить работы Э.В.
Попова, Д.А. Поспелова, Т.А. Гавриловой, В.Н. Вагина, Э. Фейгенбаума, П.
Джексона, Д. Джарратано.
Одним из наиболее актуальных направлений современного программирования является разработка параллельных алгоритмов и программ. Задача разработки таких программ и повышения их производительности достаточно сложна. Исследованию вопросов анализа производительности параллельных приложений в последние годы было посвящено множество публикаций. Среди них можно выделить работы J.
Dongarra, T. Sterling, M. Resch, W.D. Gropp, B. Mohr, F. Wolf, J. Vetter. В России направление анализа производительности параллельных приложений развивается в научных коллективах Вл.В. Воеводина, Л.Б. Соколинского, С.А. Немнюгина, В.П. Гергеля, В.А. Крюкова, А.В. Бухановского, Б.Н.
Четверушкина, М.В. Якобовского, В.Э. Малышкина, С.М. Абрамова.
Для практического решения задачи повышения производительности разрабатываются специальные системы, позволяющие оценивать производительность параллельных приложений и выявлять наиболее тяжелые участки кода (проблемы производительности). На основе этих данных эксперт может принять решение по оптимизации программного кода с целью сокращения потерь на этих участках. Общий недостаток таких систем состоит в том, что задача выявления проблем производительности остается достаточно сложной ввиду большого объема обрабатываемой информации и сложности связей, порождающих отдельные проблемы. Кроме того, выявленные экспертом проблемы производительности и принятые решения по их устранению в таких системах не сохраняются тогда, как большая часть проблем имеют, как правило, достаточно типовой характер и могут проявляться в других параллельных приложениях. В этих условиях актуальной является задача разработки системы, способной накапливать знания экспертов по выявлению типовых проблем производительности параллельных приложений и способам их устранения.
Библиотека MPI (Message Passing Interface) является де-факто стандартом для разработки параллельных приложений. К настоящему времени создано достаточно большое количество MPI приложений, и выбор этого типа приложений в качестве основного объекта исследований является актуальным.
Целью диссертационной работы является разработка программной системы, обеспечивающей накопление знаний о типовых проблемах производительности MPI приложений, методах их выявления и способах их возможного разрешения.
В соответствии с целью диссертационной работы поставлены следующие задачи:
1. Предложить модели и методы представления знаний для анализа типовых проблем производительности MPI приложений.
2. Разработать алгоритмы выполнения анализа проблем производительности для предложенных моделей и методов представления знаний.
3. Разработать программную систему, реализующую предложенные модели, методы и алгоритмы.
4. Описать с помощью разработанных методов и средств ряд типовых проблем производительности MPI приложений.
5. Исследовать эффективность разработанных моделей, методов и средств для анализа производительности MPI приложений.
Методы исследования. Работа базируется на методах систем, основанных на знаниях, математической логики, объектно-ориентированного программирования.
Научная новизна работы состоит в следующем:
1. Предложена модель проблемы производительности MPI приложения как совокупности действий MPI процессов, определенные сочетания которых при определенных условиях могут привести к возникновению идентифицируемой проблемы производительности.
2. Предложены средства идентификации проблем производительности MPI приложений. Предложенные средства включают модели и языки описания:
правил трассировки действий идентифицируемой проблемы производительности;
правил анализа трассы с целью конструирования составных событий как претендентов на идентифицируемую проблему производительности;
правил выявления проблем производительности из множества сконструированных составных событий.
3. Разработаны алгоритм генерации трассировщика MPI приложения по заданным правилам трассировки действий отдельных проблем производительности и алгоритм конвертирования правил конструирования составных событий и правил выявления проблем производительности в правила экспертной системы CLIPS.
Практическую ценность работы составляют:
1. Программная система Performance Expert, реализующая предложенные модели, методы и алгоритмы.
2. База знаний для идентификации десяти типовых проблем производительности MPI приложений, описанная с использованием предложенных моделей и методов.
3. Результаты исследования эффективности разработанных моделей, методов и средств при анализе производительности MPI приложений.
Достоверность научных результатов и выводов подтверждается строгостью постановки задач исследования, результатами тестирования и внедрения алгоритмов и программного обеспечения, научной экспертизой на научных конференциях и при публикации в научной печати.
Внедрение результатов работы. Результаты диссертационной работы внедрены в ЦНИИ Буревестник, в проведение научных исследований ННГУ и в учебный процесс ННГУ, что подтверждается актами о внедрении.
Апробация работы. Основные результаты диссертации докладывались и обсуждались на следующих конференциях: международных конференциях Высокопроизводительные параллельные вычисления на кластерных системах (Нижний Новгород, 2010-2011), международной конференции Научный сервис в сети Интернет: экзафлопсное будущее (Дюрсо, 2011), международной конференции Параллельные вычислительные технологии (Москва, 2011), международной конференции Супервычисления и математическое моделирование (Саров, 2010), международной конференции Интеллектуальные системы и компьютерные науки (Москва, 2011), всероссийской конференции Искусственный интеллект: философия, методология, инновации (Москва, 2011), всероссийских конференциях Технологии Microsoft в теории и практике программирования (Нижний Новгород, 2009-2010), семинарах кафедры МО ЭВМ факультета ВМК ННГУ.
На конкурсах научных работ аспирантов V всероссийской конференции "Искусственный интеллект: философия, методология, инновации" (Москва, 2011) и всероссийской конференции "Технологии Microsoft в теории и практике программирования" (Нижний Новгород, 2009) доклады автора были отмечены дипломами.
Публикации. По теме диссертации опубликовано 11 печатных работ, из них 2 статьи в ведущих рецензируемых журналах из списка ВАК. Список публикаций приведен в конце автореферата.
Структура и объем работы. Диссертация состоит из введения, пяти глав, заключения, списка литературы и приложений. Общий объем работы составляет 156 страниц, включая 40 рисунков и 12 таблиц. Список литературы включает 98 наименований.
КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ
Во введении обоснована актуальность темы исследования, дана общая характеристика работы, сформулированы её цель и задачи, определяются новизна исследований и практическая ценность работы.
В главе 1 даны общие сведения о системах, основанных на знаниях, моделях и методах представления знаний.
В разделе 1.1 рассматриваются общие принципы организации систем, основанных на знаниях, условия их применения, приводится обзор известных систем такого типа, применяемых для анализа производительность компьютерных программ.
В разделе 1.2 приведено описание структуры системы, основанной на знаниях, основных режимов ее работы и этапов конструирования базы знаний (инженерии знаний).
В разделе 1.3 рассматриваются общие принципы и методы представления знаний, требования к модели представления знаний.
Приводится обзор известных моделей представления знаний.
В разделе 1.4 более подробно рассматривается продукционная модель представления знаний, принципы и стратегии логического вывода, особенности реализации продукционной модели в системе CLIPS.
В главе 2 рассматривается современное состояние проблемы анализа производительности MPI приложений.
В разделе 2.1 приводится классификация параллельных аппаратных архитектур, отмечается достаточная представительность класса архитектур с распределенной памятью, для которых взаимодействие процессов параллельной программы строится на основе обмена сообщениями, утверждается, что библиотека MPI является де-факто стандартом функций обмена сообщениями.
В разделе 2.2 приведено понятие производительности параллельных программ, перечислены цели анализа производительности, отмечается, что из достаточно большого количества известных критериев (метрик) производительности наиболее часто используют время выполнения функций обмена сообщениями как основного показателя непроизводительных потерь на рассогласовании взаимодействия процессов.
В разделе 2.3 рассматриваются существующие методы анализа производительности параллельных программ и методы измерения производительности. Отмечается, что для MPI приложений наиболее часто используется прямое измерение производительности с трассировкой вызовов MPI функций; приводятся преимущества такого подхода.
В разделе 2.4 приведен список и краткая характеристика задач повышения производительности, возникающих при использовании метода прямого измерения производительности:
1. Выбор метрик оценки производительности.
2. Сбор данных производительности.
3. Визуализация данных производительности.
4. Выявление проблем производительности на основе данных.
5. Поиск способов устранения проблем производительности.
6. Устранение проблем производительности.
В разделе 2.5 приведен обзор существующих инструментов для анализа производительности MPI программ и рассмотрено, какие задачи повышения производительности они позволяют решить. Отмечено, что большинство современных инструментов основано на визуализации данных производительности, а остальные задачи (выявление проблем, поиск способов и устранение проблем) пользователь решает вручную. В последнее время стали появляться системы, которые позволяют решать четвертую и пятую задачи повышения производительности в автоматическом режиме.
Однако в этих системах используется фиксированное множество проблем, которые они могут анализировать, а добавление новых проблем, как правило, требует перепрограммирования исходного кода. В заключение раздела делается вывод об актуальности разработки системы, способной накапливать знания экспертов по выявлению типовых проблем производительности параллельных приложений и способам их устранения.
В главе 3 представлено описание предлагаемых в работе моделей и методов представления знаний для анализа производительности MPI приложений.
В разделе 3.1 предложена модель MPI приложения. MPI приложение рассматривается как множество взаимодействующих процессов PR {pr1, pr2,..., prN}. Взаимодействие процессов осуществляется с помощью действий, инициируемых процессами в определенной последовательности:
PRi Ai aij ;i 1,2,..., N; j 1,2,...,Mi Каждое действие процесса состоит в вызове функций библиотеки MPI F fk,k 1,2,...,K. Функция fk характеризуется входными и выходными аргументами:
IN IN IN OUT OUT OUT FAk ( fak1,..., fakL );FAk ( fak1,..., fakL ) IN OUT kk Таким образом, каждое действие процесса характеризуется вызываемой функцией библиотеки и значениями входных и выходных аргументов:
IN OUT aij fk,FAvalk,FAvalk Где:
IN IN IN OUT OUT OUT FAvalk (avk1,...,avkL );FAk (avk1,...,avkL ).
IN OUT kk В разделе 3.2 формулируется задача повышения производительности MPI приложения. Каждому действию aij процесса соответствует время a a начала его выполнения tij и длительность dij. Под производительностью MPI приложения понимается суммарная длительность выполнения действий всеми процессами:
Mi N a Da d ij i1 jПовышение производительности взаимодействия процессов определяется как Da min.
Отмечается, что в силу сложности сформулированной задачи в работе экспертный подход, основанный на выявлении и накоплении знаний по отдельным (типовым) проблемам производительности MPI приложений.
В разделе 3.3 предложена модель типовой проблемы производительности MPI приложения. Проблема производительности представляется как:
pb pd,dur,TRRULES, ANRULES,REC(AINFO) где:
pd - вербальное описание проблемы;
dur - длительность проявления данной проблемы;
TRRULES - правила трассировки действий проблемы;
ANRULES - правила распознавания проблемы;
REC - рекомендации по ее устранению;
AINFO fi,ti,di, pri,csi - описание действий, приведших к проблеме (где fi - функция действия, ti - время вызова функции, di - длительность работы функции, pri - процесс, который инициировал вызов функции, а csi - место в исходном коде, из которого осуществлялся вызов);
В разделе 3.4 приводится описание общей схемы работы системы Performance Expert.
Рис. 1. Схема работы системы Работа с системой состоит из двух этапов (см. рис. 1):
Подготовительный этап выполняется экспертом после выявления очередной проблемы производительности. Эксперт описывает правила трассировки действий выявленной проблемы и правила распознавания проблемы с помощью предложенных языков описания правил. Описанные правила добавляются в общую базу знаний системы, где находятся правила для ранее выявленных проблем.
Этап применения выполняется пользователем. На этом этапе пользователь запускает MPI приложение. Во время выполнения приложения трассировщик, руководствуясь правилами трассировки, генерирует трассу, в которой в виде последовательности событий регистрируются действия процессов.
Затем, анализатор трассы, используя правила распознавания известных системе проблем производительности, определяет наличие этих проблем, формирует их список и рекомендаций по их устранению. На основе предложенных рекомендаций пользователь выполняет изменения в MPI приложении и при необходимости повторяет этап применения.
В разделе 3.5 предложены модель трассировки MPI приложения и язык описания правил трассировки TRRULES модели проблемы производительности. Результатом работы трассировщика является трасса работы MPI приложения, в которой зарегистрированы простые события, вызванные действиями процессов.
Простое событие представляется как:
e f,et,EPval,t,d, pr,cs где:
f F - функция действия;
et - тип события, который задает набор параметров события EP (ep1,...,epK ) ;
EPval (v1,...,vK ) - значения параметров события;
t - время наступления события;
d - длительность события;
pr PR - процесс, на котором произошло событие;
cs - место в исходном коде, из которого осуществлялся вызов функции.
Правило трассировки представляется как:
trrule a f,FAvalIN,FAvalOUT f,et,EPval,t,d, pr,cs e trrule f,et,EPtemp где:
f F - функция, при выполнении которой трассировщиком создается событие, определяемое правилом;
et - тип события, задаваемый правилом трассировки;
EPtemp epi,Expri,kindi ;i 1,...,N - описание параметров события и способа получения их значений, где:
epi - параметр события;
Expri : FAvalIN FAvalOUT vi - функция для вычисления значения vi параметра на основе аргументов вызванной функции;
kindi {in,out} - характер параметра (in - входной, т.е.
вычисляемый только на основе входных аргументов функции; out - выходной, т.е. формируемый на основе выходных аргументов функции или входных и выходных).
Значения параметров t,d, pr и cs события формируются трассировщиком.
В разделе также предложен язык описания правил трассировки.
Функции действия проблемы задаются с помощью деклараций, имеющих синтаксис:
function описание функции, задающее ее имя и аргументы f F ;
argument аргументы функции ( FAIN,FAOUT );
retVal тип возвращаемого функцией значения.
Правила трассировки описываются в виде последовательности деклараций, имеющих синтаксис:
где:
functionPoint описание правила, задающее имя типа события et и множество функций FTEMP F, для которых правила trrule задают одинаковый тип события;
param описание параметров события и способов получения их значений EPtemp ;
В разделе 3.6 предложена модель анализа производительности MPI приложения и языки описания правила конструирования составных событий и правила выявления проблем производительности. Схема выполнения анализа представлена на рис. 2.
Исходными данными для анализа является трасса MPI приложения, сформированная в результате трассировки и содержащая простые события, а результатом анализа - множество выявленных проблем производительности.
Анализ осуществляется на основе правил распознавания проблем производительности ANRULES и осуществляется в два этапа:
1. Конструирование составных событий как претендентов на отдельные типы проблем производительности.
2. Выявление проблем производительности из множества сконструированных составных событий.
Рис. 2. Схема выполнения анализа Составное событие представляется как:
ce cet,CEPval,ME где:
cet - тип составного события, который задает набор параметров события CEP (cep1,...,cepK ) ;
CEPval (cev1,...,cevK ) - значения параметров составного события;
ME {ei}{cej};i 1,..., N; j 1,...,M - множество простых и составных событий-членов.
Правило конструирования составного события представляется как:
ET E ER cerule cet,CEPval, ME ce CET CE CER S cerule ET,CET,,cet,CEPtemp,ET где:
ET {eti};i 1,..., N - множество типов простых событий для выборки из множества простых событий трассы E подмножества событий ER { fi,eti,EPvali,ti,di, pri,csi } E;i 1,..., N, релевантных анализируемой проблеме производительности;
CET {cetj}; j 1,...,M - множество типов составных событий для выборки из множества составных событий CE подмножества релевантных событий CER { cetj,CEPvalj,MEj } CE; j 1,...,M указанных типов;
Обозначим с помощью EPVi fi,EPvali,ti,di, pri,csi ;i 1,..., N и P EPV1 ... EPVN CEPval1 ...CEPvalM.
: P {0,1} - условие конструирования составного события (если значение функции 1, то составное событие может быть сконструировано для множества релевантных событий ER и CER и нет в противном случае);
cet - тип составного события, конструируемого правилом;
CEPtemp { cepk,Exprk };k 1,...,K - описание параметров конструируемого события и способов получения их значений, где:
cepk - параметр составного события;
Exprk : P cevk - функция для вычисления значения cevi параметра составного события;
При выполнении условий правила (т.е. существовании подмножества релевантных событий ER и CER и выполнении условия ) конструируется событие ce указанного типа cet, где:
CEPval (cev1,...,cevK ) - значения параметров событий, вычисляемые с помощью описания параметров CEPtemp;
ME ER CER - множество событий-членов;
S Параметр правила ET ET указывает типы событий, которые являются общими для конструируемого события и других составных событий. Остальные простые события, релевантные данному правилу, принадлежат только конструируемому составному событию.
Правила конструирования составных событий задаются в виде последовательности деклараций, имеющих синтаксис:
declare composite event <имя типа составного события> member( [
) when <логическое выражение> parameters( <параметр события> = <выражение для вычисления значения>,...
);
где:
declare composite event описание правила конструирования составного события типа cet ;
member список типов простых ET и составных CET событий для выборки подмножества релевантных событий; флаг shared S указывается подмножества типов ET ET ; имя события используется для ссылки на его параметры в логическом выражении и выражениях для вычисления значений параметров события;
when условие конструирования составного события ;
parameters описание параметров конструируемого события и способов получения их значений CEPtemp (с указанием параметров cepk и выражений для вычисления их значений Exprk );
Правило выявления проблемы производительности представляется как:
pbrule ce cet,CEPval,ME pb pd,dur,REC(AINFO) pbrule cet,, pd,RECtemp,Ldur где:
cet - тип составного события как претендента на определяемую проблему производительности;
:CEPval {1,0} - условие возникновения проблемы (если значение функции 1, то проблема существует и нет в противном случае);
pd - вербальное описание проблемы, определяемой правилом;
RECtemp :CEPval REC - шаблон рекомендации по устранению проблемы;
Ldur : CEPval dur - функция вычисления длительности проблемы производительности;
При выполнении условий правила (т.е. выполнении для составного события ce типа cet условия ) делается вывод о наличии проблемы производительности pb. Описание действий приложения, приведших к этой проблеме, формируется на основе функции интерпретатора Frec, т.е.
AINFO Frec(ME). Функция Frec осуществляет рекурсивное извлечение простых событий из ME и формирования на их основе информации о множестве действий.
Правила выявления проблемы производительности задаются в виде последовательности деклараций, имеющих синтаксис:
declare problem for <имя типа составного события> when <логическое выражение> parameters( name = "<название проблемы>", description = "<описание проблемы>", advice = <шаблон рекомендации>, duration = <выражение для вычисления длительности>);
где:
declare problem for описание правила выявления проблемы производительности для составного события-претендента типа cet ;
when условие возникновения проблемы ;
name название проблемы;
description вербальное описание проблемы pd ;
advice шаблон рекомендации RECtemp ;
duration функция вычисления длительности Ldur ;
В разделе 3.7 описаны разработанные алгоритм генерации трассировщика по заданным правилам трассировки действий MPI приложения и алгоритм конвертирования правил конструирования составных событий и правил выявления проблем производительности в правила экспертной системы CLIPS.
Для каждой функции f F, трассируемой в соответствии с правилом WRAP трассировки, генератором трассировщика создается функция-обертка f, определенная на тех же аргументах FAIN,FAOUT, что и исходная функция f.
При выполнении MPI приложением действия a f,FAvalIN,FAvalOUT WRAP вместо исходной функции f трассировщик выполняет функцию f, которая формирует событие, определенное правилом, и вызывает исходную функцию f.
Как отмечалось, конструирование составных событий и выявление проблем производительности выполняется с помощью экспертной системы CLIPS. В работе применяется следующая схема использования экспертной системы CLIPS.
Для представления простых и составных событий, а также выявленных проблем производительности используются факты CLIPS, динамически создаваемые в рабочей памяти CLIPS и удаляемые из нее.
На начальном этапе правила конструирования составных событий и выявления проблем производительности конвертируются в правила CLIPS.
На этапе анализа трассы интерпретатор системы Performance Expert выполняет следующий алгоритм:
Пока не достигнут конец трассы:
1. Считать очередное простое событие из трассы.
2. Конвертировать его в факт CLIPS.
3. Запустить CLIPS. Для нового факта-простого события машина вывода CLIPS последовательно выполняет правила конструирования составных событий, для конструируемых составных событий-фактов - правила выявления проблем производительности. Результатом срабатывания CLIPS может быть:
a. добавление нового факта-простого события в некоторые из конструируемых фактов-составных событий;
b. идентификация фактов-составных событий рабочей памяти на соответствие или несоответствие проблеме производительности;
c. удаление или сохранение нового события в рабочей памяти.
4. Извлечь из рабочей памяти факты-составные события, идентифицированные на соответствие проблеме производительности; идентифицированные на несоответствие удалить.
В разделе приводятся описания алгоритмов и правил генерации (конвертирования) правил и фактов CLIPS.
В главе 4 представлено описание разработанной программной системы Performance Expert.
В разделе 4.1 описана общая организация системы Performance Expert, схемы реализации модуля трассировки MPI приложения и модуля анализа трассы; рассмотрен состав и назначение отдельных компонент модулей;
приведено описание пользовательских интерфейсов.
В разделе 4.2 приведен краткий обзор состава базы знаний системы Performance Expert по описанию десяти типовых проблем производительности MPI приложений.
В разделе 4.3 приведено описание проблем двухточечных операций обмена: проблемы поздней посылки сообщения и проблемы позднего приема сообщения. Приведенное описание включает: анализ проблем двухточечных операций обмена и разработанные на основе результатов анализа правила трассировки функций проблем, правила конструирования составных событий проблем и правила распознавания проблем.
В разделе 4.4 по аналогичной схеме приведено описание проблем коллективных операций обмена: ранний прием данных при операции лот многих к одному, поздняя посылка данных при операции лот одного ко многим, задержка перед операцией лот многих ко многим и задержка перед барьерной синхронизацией.
В разделе 4.5 по аналогичной схеме приведено описание проблем операций удаленного доступа к памяти: задержка при создании локна для удаленного доступа к памяти, конкуренция за блокировку локна для удаленного доступа к памяти, позднее начало периода предоставления доступа к локну и раннее завершение периода предоставления доступа к локну.
В главе 5 приведено описание вычислительных экспериментов по анализу и повышению производительности MPI программ с использованием разработанной системы.
В разделе 5.1 описывается общая схема и условия проведения вычислительных экспериментов, характеристики кластера, на котором проводились вычислительные эксперименты. Вычислительные эксперименты проводились с MPI программами решения трех задач: решения задачи Дирихле методом Якоби и методом Гаусса-Зейделя и решения задачи моделирования сердечной активности. MPI алгоритмы решения первых двух задач были заимствованы в литературных источниках.
В разделе 5.2 приведено описание и результаты эксперимента по анализу и повышению производительности MPI программы решения задачи Дирихле методом Якоби. Проведенный с помощью системы Performance Expert анализ выявил две проблемы производительности. Использование полученных рекомендаций позволило в среднем повысить производительность в 1,64 раза; максимальное повышение производительности (в 2,4 раза) было достигнуто при 64 процессорах.
В разделе 5.3 приведено описание и результаты эксперимента по анализу и повышению производительности MPI программы решения задачи Дирихле методом Гаусса-Зейделя. Эксперимент проводился с двумя известными вариантами параллельной схемы решения этой задачи:
наивной и красное-черное.
Проведенный с помощью системы Performance Expert анализ программной реализации наивной схемы выявил две проблемы производительности. Полученные при этом рекомендации полностью соответствовали переходу от наивной схемы к схеме красное-черное.
Использование полученных рекомендаций позволило в среднем повысить производительность в 10 раз; максимальное повышение производительности (в 19 раз) было достигнуто при 128 процессах.
Проведенный с помощью системы Performance Expert анализ программной реализации схемы красное-черное выявил две проблемы производительности. Но длительность проблем была очень мала, и поэтому дальнейшее повышение производительности не выполнялось.
В разделе 5.4 приведено описание и результаты эксперимента по анализу и повышению производительности MPI программы моделирования сердечной активности. Проведенный с помощью системы Performance Expert анализ выявил две проблемы производительности. Использование полученных рекомендаций позволило в среднем повысить производительность в 1,34 раза; максимальное повышение производительности (в 1,62 раза) было достигнуто при 101 процессе.
В заключении изложены основные научные и практические результаты диссертационной работы.
В приложениях приведены акты внедрения результатов диссертационной работы.
ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ Главным результатом диссертационной работы является разработка моделей, методов и средств, обеспечивающих накопление знаний о типовых проблемах производительности MPI приложений, методах их выявления и способах их возможного разрешения.
В работе получены следующие основные научные и практические результаты, выносимые на защиту:
1. Модель проблемы производительности MPI приложения как совокупности действий MPI процессов, определенные сочетания которых при определенных условиях могут привести к возникновению идентифицируемой проблемы производительности.
2. Модели и методы идентификации проблем производительности MPI приложений:
a. Модели и язык описания правил трассировки действий проблемы производительности.
b. Модели и язык описания правил анализа трассы с целью конструирования составных событий как претендентов на отдельные типы проблем производительности.
c. Модели и язык описания правил выявления проблем производительности из множества сконструированных составных событий.
3. Алгоритмы идентификации проблем производительности для предложенных моделей и методов представления знаний:
a. Алгоритм генерации трассировщика MPI приложения по заданным правилам трассировки действий отдельных проблем производительности;
b. Алгоритм конвертирования правил конструирования составных событий и правил выявления проблем производительности в правила экспертной системы CLIPS;
4. Программная система Performance Expert, реализующая предложенные модели, методы и алгоритмы.
5. База знаний для идентификации десяти типовых проблем производительности MPI приложений, описанная с использованием предложенных моделей и методов.
6. Результаты исследования эффективности разработанных моделей, методов и средств при анализе производительности MPI приложений.
ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ Публикации в изданиях, рекомендованных ВАК 1. Дергунов, А. В. Обзор исследований в области автоматизации диагностики производительности MPI-приложений / А. В. Дергунов, С. Н.
Карпенко // Вестник Нижегор. ун-та им. Н. И. Лобачевского. Сер., Информационные технологии. - 2011. - № 3(2). - С. 212-218.
2. Карпенко, С. Н. Язык описания типов проблем производительности при взаимодействии процессов в MPI-приложениях / С. Н. Карпенко, А. В.
Дергунов // Вестник Нижегор. ун-та им. Н. И. Лобачевского. Сер., Информационные технологии. - 2011. - № 3(2). - С. 219-226.
Публикации в других изданиях 3. Карпенко, С. Н. Модели и программные средства повышения производительности MPI-приложений (с использованием системы CLIPS) / С. Н. Карпенко, А. В. Дергунов // Технологии Microsoft в теории и практике программирования: материалы конф. - Н. Новгород: Изд-во Нижегор. гос.
ун-та, 2009. - С. 188-192.
4. Дергунов, А. В. Модели и программные средства повышения производительности MPI-приложений (описание типов проблем производительности) / А. В. Дергунов, С. Н. Карпенко // Технологии Microsoft в теории и практике программирования: материалы конф. - Н.
Новгород: Изд-во Нижегор. гос. ун-та, 2010. - С. 116-118.
5. Карпенко, С. Н. Автоматизация повышения производительности MPI-приложений / С. Н. Карпенко, А. В. Дергунов // Высокопроизводительные параллельные вычисления на кластерных системах: материалы конф. - Пермь: Изд-во Перм. гос. техн. ун-та, 2010. - Т.
1. - С. 307-312.
6. Карпенко, С. Н. Программные средства повышения производительности MPI-приложений / С. Н. Карпенко, А. В. Дергунов // Супервычисления и математическое моделирование: тр. XII междунар.
семинара. - Саров: РФЯЦ-ВНИИЭФ, 2011. - С. 195-202.
7. Дергунов, А. В. Автоматизация выявления причин потери производительности MPI программ на экзафлопсных и других больших суперкомпьютерах / А. В. Дергунов // Научный сервис в сети Интернет:
экзафлопсное будущее: труды Междунар. суперкомпьютерной конф. - М.:
Изд-во МГУ, 2011. - С. 491-496.
8. Дергунов, А. В. Декларативный подход к автоматизации выявления причин потери производительности MPI-приложений / А. В. Дергунов // Высокопроизводительные параллельные вычисления на кластерных системах: материалы XI Всерос. конф. - Н. Новгород: Изд-во Нижегор. гос.
ун-та, 2011. - С. 108-112.
9. Дергунов, А. В. Обзор и сравнение подходов к автоматизации анализа производительности MPI-приложений / А. В. Дергунов // Высокопроизводительные параллельные вычисления на кластерных системах: материалы XI Всерос. конф. - Н. Новгород: Изд-во Нижегор. гос.
ун-та, 2011. - С. 113-117.
10. Дергунов, А. В. База знаний причин недостаточной производительности MPI-программ / А. В. Дергунов // Искусственный интеллект: философия, методология, инновации: материалы V Всерос. конф.
студентов, аспирантов и молодых ученых. - М.: МГТУ МИРЭА, 2011. - С.
153-156.
11. Дергунов, А. В. База знаний повышения производительности MPIприложений / А. В. Дергунов // Интеллектуальные системы и компьютерные науки: материалы X Междунар. конф. - М.: Изд-во МГУ, 2011. - С. 43-46.
Авторефераты по всем темам >> Авторефераты по техническим специальностям