Инструментальный комплекс для организации параллельных вычислений в интеллектуальных пакетах прикладных программ тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат технических наук Горский, Сергей Алексеевич

  • Горский, Сергей Алексеевич
  • кандидат технических науккандидат технических наук
  • 2008, Иркутск
  • Специальность ВАК РФ05.13.11
  • Количество страниц 145
Горский, Сергей Алексеевич. Инструментальный комплекс для организации параллельных вычислений в интеллектуальных пакетах прикладных программ: дис. кандидат технических наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. Иркутск. 2008. 145 с.

Оглавление диссертации кандидат технических наук Горский, Сергей Алексеевич

Введение.

Глава 1. Параллельное программирование в модульных системах.

1.1. Модульное программирование.

1.1.1. Модуляризация программы.

1.1.2. Методы'и'средства создания модульных систем.

1.2. Интеллектуальные пакеты.

1.2.1. Концептуальная схема предметной области интеллектуального пакета.

1.3. Технология создания параллельных программ.

1.3.1. Архитектура.

1.3.2. Модели параллельного программирования.

1.3.3. Системы поддержки параллельного программирования.

1.3.4. Язык.

1.3.5. Средства автоматизации параллельного программирования.

1.3.6. Алгоритмы управления вычислительным процессом.

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

2.1. Модель вычислений интеллектуального пакета.

2.1.1. Параллельные структуры данных.

2.1.2. Статико-динамический алгоритм выполнения асинхронного вычислительного процесса.

2.1.3. Обработка параметра-списка как единого параметра.

2.1.4. Поэлементная обработка параметров-списков.

2.2. Конструирование параллельных программ.

2.2.1. Конструирование параллельной программы по модели вычислений интеллектуального пакета.

2.2.2. Базовый модуль.

2.2.3. Головной модуль.

2.2.4. Описание предметной области.

2.3. Способ создания контрольных точек.

2.4. Язык ORLANDO.

2.4.1. Описание языка ORLANDO.

2.4.2. Составные части программы пользователя.

2.4.3. Объекты предметной области.

Глава 3. Архитектура инструментального комплекса ORLANDO TOOLS.

3.1. Обобщенная схема конструирования параллельных программ.

3.2. Архитектура инструментального комплекса.

3.3. Многооконный текстовый редактор.

3.4. Транслятор.

3.5. Подсистемы компиляции и запуска программ.

3.5.1. Подсистема компиляции.

3.5.2. Конфигурация параллельной виртуальной машины.

3.5.3. Подсистема запуска.

3.6. Базы расчетных данных.

Глава 4. Применение инструментального комплекса ORLANDO TOOLS для создания интеллектуальных пакетов.

4.1. Применение статико-динамического алгоритма выполнения асинхронного вычислительного процесса.

4.2. Пакет ГРАДИЕНТ.

4.3. Пакет R-SIM.

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Инструментальный комплекс для организации параллельных вычислений в интеллектуальных пакетах прикладных программ»

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

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

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

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

На сегодняшний день для решения подобных задач существует большой набор средств подготовки и написания параллельной программы [5]. Их можно условно разделить на следующие группы:

1. Традиционные последовательные языки программирования, расширенные наборами специальных директив и библиотеками вспомогательных функций, например, Fortran-DVM [79] или C-DVM [74].

2. Системы программирования на основе передачи сообщений между параллельными процессами программы. Эти средства базируются на использовании различных коммуникационных библиотек, таких, например, как PVM [86] и MPI [90].

3. Системы программирования, ориентированные на предметную область решаемых задач. В качестве примеров подобных программных комплексов можно привести Т-систему [71], систему НОРМА [47] и др.

4. Функциональные языки параллельного программирования, например, SISAL[83], Erlang [70], Пифагор [39, 44].

Среды программирования, в рамках которых применяются те или иные указанные выше системы предоставляют различные средства поддержки написания и выполнения параллельных программ.

Однако массовое использование такого рода вычислений сдерживается рядом нерешённых на сегодняшний день проблем параллельного программирования, возникающим перед рядовым пользователем высокопроизводительной вычислительной установки (см., например, [5, 36, 69]). В числе таких проблем: сложность выявления параллелизма алгоритма решаемой задачи и учета всех специфических особенностей аппаратного обеспечения и коммуникационных сред, возникающая в процессе разработки параллельной программы, выбора нужного языка (или системы) параллельного программирования и дальнейшего написания текста программы; необходимость обеспечения эффективного выполнения параллельной программы и ее переносимости; специфичный по сравнению с ПЭВМ интерфейс для доступа к вычислительной установке и управления процессом решения задачи.

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

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

Организация эффективного функционирования и развития библиотек программных модулей в данных условиях составляет определенные трудности.

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

Одним из подходов, позволяющих частично реализовать эти средства, является применение пакетов прикладных программ [10, 61] для организации параллельных и распределенных вычислений в рамках технологии модульного программирования [26, 42].

Пакет программ рассматривается в диссертации традиционно - как совокупность прикладного и системного программного обеспечения [10]. Прикладное программное обеспечение (функциональное наполнение пакета программ) представляет собой набор (библиотеку) вычислительных модулей. Под модулем понимается подпрограмма на языках программирования С или Fortran, спецификации по ее назначению, применению, формату входных и выходных формальных параметров, времени выполнения для той или иной программно-аппаратной платформы, инструкции по ее трансляции, компиляции и дальнейшему размещению объектных и загрузочных модулей и т.п. Системное программное обеспечение включает средства для описания модели предметной области, формирования постановок исследовательских задач и организации процесса их решения.

Естественной формой развития пакетов программ можно считать интеллектуальные пакеты [27, 29, 32, 53, 58]. Такие интеллектуальные пакеты, включающие средства синтеза в общем случае параллельных планов решения задач [4, 49, 55, 59, 84], можно рассматривать как интеллектуальные системы [43], которые, кроме знаний о предметной области и алгоритмах решения задач, способны накапливать знания о методах и средствах создания расчетных программ по планам решения этих задач, о свойствах и правилах включения в расчетную программу модулей, задающих содержательную интерпретацию вычислительных моделей, о способах управления вычислительным процессом.

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

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

Объектом исследования являются теория и практика параллельного программирования.

Предметом исследования являются методы и инструментальные средства построения асинхронных параллельных программ.

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

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

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

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

Исследование, разработка и применение рассматриваемых в диссертации программных средств выполнялись в рамках проекта СО РАН 3.2.6 «Интегрированные информационно-вычислительные и коммуникационные ресурсы: ин-теллектные методы организации, автоматизации разработки и применения» (2004-2006 гг., блок 1 «Распределенная вычислительная САТУРН-среда»); проекта СО РАН «Разработка научных основ распределённой информационно-аналитической системы на основе ГИС и Веб-технологий для междисциплинарных исследований» междисциплинарной программы 4.5.2 (2007-2009 гг., блок 2 «Интеллектные методы и инструментальные средства разработки и ком-плексирования распределенных информационно-вычислительных ресурсов»); проекта Российского фонда фундаментальных исследований № 06-01-00340 «Разработка и исследование булевых моделей предметной области в задаче планирования при синтезе программ».

Научно-исследовательская работа Горского С.А. «Методы и инструментальные средства автоматизации конструирования параллельных программ» вышла в финал Всероссийского конкурса инновационных проектов аспирантов и студентов (по направлению "Информационно-телекоммуникационные системы"), проводившегося в рамках Федеральной целевой научно-технической программы "Исследования и разработки по приоритетным направлениям развития науки и техники" на 2002-2006 годы (проект 2005-РИ-18.0/007).

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

Апробация. Основные результаты работы были представлены на V - VIII Школах-семинарах молодых ученых «Математическое моделирование, управление и информационные технологии» (Иркутск, 2004 г., 2005 г., 2006 г.), на XLIII Международной научной студенческой конференции «Студент и научно-технический прогресс» (Новосибирск, 2005 г.), на III Всероссийской молодежной конференции «Под знаком Е» (Омск, 2005 г.), на V и VI Межрегиональных школах-семинарах «Распределенные и кластерные вычисления» (Красноярск, 2005 г., 2006 г.), на Всероссийском конкурсе инновационных проектов аспирантов и студентов по приоритетному направлению развития науки и техники «Информационно-телекоммуникационные системы» (Москва, 2005 г.), на XI Байкальской Международной конференции «Информационные и математические технологии в научных исследованиях» (Иркутск, 2006 г.), на III Международной конференции «Параллельные вычисления и задачи управления (РАСО)» (Москва, 2006 г.), на Второй школе-семинаре молодых ученых «Управление большими системами» (Воронеж, 2007 г.), на Международных научных конференциях «Параллельные вычислительные технологии (PAVT)» (Челябинск, 2007 г.; Санкт-Петербург, 2008 г.), а также неоднократно на семинарах ИДСТУ СО РАН.

Публикации и личный вклад автора. Результаты диссертации отражены в 14-ти научных работах [6, 12-20, 28, 62-64] (в том числе 2 статьи в журналах, рекомендованных ВАК для опубликования основных научных результатов диссертации на соискание ученой степени доктора или кандидата наук). В перечисленных публикациях все результаты, связанные с алгоритмизацией, программной реализацией и вычислительным экспериментом на ЭВМ, получены автором лично. Результаты по моделям и методам организации интеллектуальных пакетов для вычислительных кластеров получены совместно с Феоктистовым А.Г. и являются неделимыми. Из совместных работ с Опариным Г.А. и Новопашиным А.П. в диссертацию включены только те результаты, которые принадлежат лично автору.

Структура работы. Диссертация состоит из введения, четырех глав, заключения, библиографии из 91 наименований и 6 приложений. Общий объем работы - 145 страниц, из которых 117 страниц основного текста, включающего 30 рисунков и 7 таблиц.

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Заключение диссертации по теме «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», Горский, Сергей Алексеевич

Выводы.

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

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

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

4.2. Пакет ГРАДИЕНТ

В данном разделе с целью иллюстрации возможности эффективного применения предложенных структур данных и средств их обработки для организации параллельных вычислений рассматривается разработанный автором диссертации пакет ГРАДИЕНТ, предназначенный для поиска глобального минимума многоэкстремальной функции/(х) с помощью известного метода мультистарта.

Сутью метода мультистарта [24] является сведение поиска глобального минимума функции к поиску локальных минимумов. При этом для поиска ло

94 кальных минимумов используется тот или ином алгоритм локального спуска, производимого из некоторого множества N начальных точек. Из полученных точек локальных минимумов выбирается точка с наименьшим значением, которая принимается за точку глобального минимума.

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

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

Но применение метода кластеризации имеет ряд недостатков [24], влияющих на вероятность нахождение глобального минимума:

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

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

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

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

Рассмотрим пакет ГРАДИЕНТ, предназначенный для поиска глобального минимума некоторой функции f(x) методом мультистарта. Описание предметной области пакета ГРАДИЕНТ включает следующие параметры:

• PointCount - количество начальных точек для метода мультистарта;

• SPxy - количество координат начальной точки;

• StartPoint [SPxy] - вектор, содержащий координаты начальной точки;

• ParStartPoint[PointCount] - параметр-список, созданный на основе параметра StartPoint;

• EPxyv - число элементов вектора EndPoint;

• EndPoint [EPxyv] - вектор, содержащий координаты точки и значение локального минимума;

• ParEndPoint[PointCount] - параметр-список, созданный на основе параметра EndPoint;

• Flen - длина текстовой строки, которая задает функцию;

• Function [Flen] - минимизируемая функция в текстовом виде;

• BCount - количество границ на координату (минимальное и максимальное значение координат);

• Bounds [SPxy, BCount] - матрица, задающая границы изменения координат;

• Val - значение глобального минимума;

• MPoint - координаты точки глобального минимума;

• Grlnc — приращение, с помощью которого вычисляется значение градиента в точке;

• InitialShifit - начальное значение шага смещения;

• MaxCall - максимальное число вызовов функции;

• Accuracy - точность вычисления локального минимума.

Параметры Accuracy, MaxCall, InitialShift, Grlnc, PointCount влияют на точность, скорость и надежность нахождения глобального экстремума функции. Их выбор в общем случае зависит от исследуемой функции и требований, предъявляемых к точности нахождения точки глобального экстремума.

Схемы операций предметной области определенны следующим образом:

- Gen(BCount, PointCount, SPxy, Bounds —» ParStartPoint) осуществляет генерацию начальных точек для запуска метода градиента;

- Grad(SPxy, StartPoint, EPxyv, Grlnc, InitialShift, MaxCall, Accuracy, Flen, Function -> EndPoint) осуществляет спуск методом градиента;

- Res(PointCount, ParEndPoint, EPxyv, SPxy —» MPoint, Val) находит минимальное значение функции.

После имени операции слева и справа от стрелки располагаются соответственно списки входных и выходных параметров операций. Для операции Grad выполняется параллельный запуск множества экземпляров её модуля. Элементы параметров-списков StartPoint и EndPoint, являющихся соответственно входным и выходным параметрами операции Grad, обрабатываются независимо друг от друга в отдельных процессах - экземплярах модуля этой операции.

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

Function (2) Flen Q.

SPxy

BCount CC\ Bounds O

Grlnc Q

ParStartPoint

Gen StartPoiKVCSN ' StaitPoiaV^y) Grad *

PointCount Qf^ InitialShift О

MaxCall О Accuracy (3 EPxyv О

Рис. 4.6. Информационный двудольный ориентированный граф

Описание модели вычислений пакета ГРАДИЕНТ на специализированном входном языке ORLANDO приведено в Приложении 1.

Пакет ГРАДИЕНТ использовался для поиска глобального минимума ряда многоэкстремальных функций (Катковника [31], Растригина [65], Griewank [89]), относящихся к классу сложных задач оптимизации [24, 31]. Расчеты выполнялись на вычислительном кластере МВС-1000М/16 с различными конфигурациями виртуальных машин, включающих от 1 до 8 двухпроцессорных узлов кластера.

1) Функция Катковника определяется следующим соотношением:

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

Рис. 4.7. Функция Катковника в области [-5;5]х[-5;5]

2) Функция Растригина определяется следующим соотношением с коэффициентом А равным 4:

Дх,у)=0Лх2 + 0 Ay2- 4соу(0.8х) - 4cos(0.8y) + 8.

Изображение поверхности этой функции представлено на рис. 4.8. Глобальный минимум данной функции находится в точке [0;0] и равен 0.

Рис. 4.8. Функции Растригина в области [-20;20]х[-20;20] 3) Функция Griewank (рис. 4.9) определяется следующим соотношением:

Глобальный минимум данной функции находится в точке [0;0] и равен 0.

Рис. 4.9. Функция Griewank в области [-20;20]х[-20;20]

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

А*,У)=

-10 10 при распараллеливании процесса вычислений для научных прикладных задач, позволяющих осуществлять их разбиение на независимые части с большой вычислительной мощностью (см. табл. 7, варианты №№ 1, 5, 7).

Заключение

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

На защиту выносятся следующие основные результаты:

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

2. Язык ORLANDO и библиотека классов объектов предметной области, обеспечивающие удобное описание предметной области в соответствии с предложенной моделью вычислений и эффективную реализацию (автоматическое конструирование и последующее выполнение) параллельных управляющих программ по этому описанию.

3. Статико-динамический алгоритм выполнения асинхронного вычислительного процесса для решения задач, сформированных на языке ORLANDO, с поэлементной обработкой параллельных структур данных.

4. Системная архитектура и алгоритмы функционирования инструментального комплекса ORLANDO TOOLS и его программная реализация.

Разработанные инструментальные средства ориентированы на кластерные вычислительные системы, работающие под управлением ОС Linux. Применение ИК ORLANDO TOOLS при решении ряда задач показало достаточную простоту и легкость использования входящих в этот комплекс средств и обеспечило значительное сокращение трудозатрат на этапах создания и эксплуатации программного обеспечения сложных информационно-вычислительных моделей и методов их исследования.

Список литературы диссертационного исследования кандидат технических наук Горский, Сергей Алексеевич, 2008 год

1. Бабаев И.О. Язык Декарт - входной язык системы СПОРА / И.О. Бабаев, Ф.А. Новиков, Т.И. Петрушина // Прикладная информатика. - М.: Финансы и статистика, 1981. - Вып.1. - С. 35-72.

2. Барский А.Б. Параллельные процессы в вычислительных системах. Планирование и организация. / А.Б. Барский. М.: Радио и связь, 1990. - 256 с.

3. Вальковский В. А. Элементы параллельного программирования / В. А. Валь-ковский, В. Е. Котов, А. Г. Марчук, Н.Н. Миренков; Под ред. В.Е. Котова. -М.: Радио и связь, 1983. 240 с.

4. Вальковский В.А. Синтез параллельных программ и систем на вычислительных моделях / В.А. Вальковский, В.Э. Малышкин. Новосибирск: Наука, Сиб. Отд-ние, 1988. - 129 с.

5. Воеводин В.В. Параллельные вычисления / В.В. Воеводин, Вл.В. Воеводин. СПб.: БХВ-Петербург, 2002. - 608 с.

6. Гершуни Д.С. Планирование вычислений в системах жесткого реального времени (обзор и перспективы) / Д.С. Гершуни // Вычислительная техника. Системы управления. — 1991. В. 6. - С. 4-51.

7. Горбунов-Посадов М.М. Расширяемые программы / М.М. Горбунов-Посадов. М.: Полиптих, 1999. - 336 с.

8. Ю.Горбунов-Посадов М.М. Системное обеспечение пакетов прикладных программ / М.М. Горбунов-Посадов, Д.А. Корягин, В.В. Мартынюк. М.: Наука, 1990.-208 с.

9. П.Горский С.A. CPEL язык для конструирования параллельных программ / СА. Горский // Математическое моделирование и информационные технологии: VI школа-семинар молодых ученых. - Иркутск: ИДСТУ СО РАН, 2005.-С. 11.

10. Горский С.А. ORLANDO TOOLS: Свидетельство об официальной регистрации программы для ЭВМ № 2007611625 / С.А. Горский, А.Г. Феоктистов. -М.: Федеральная служба по интеллектуальной собственности, патентам и товарным знакам, 2007.

11. З.Горский С.А. Динамический алгоритм выполнения асинхронного вычислительного процесса / С.А. Горский // Прикладные алгоритмы в дискретном анализе: Сб. науч. тр. / Под ред. Ю.Д. Королькова. Иркутск: Изд-во Иркутского гос. ун-та, 2008. - С. 4-22.

12. Горский С.А. Инструментальные средства для построения параллельных программ / С.А. Горский // Распределенные и кластерные вычисления: Избранные материалы V школы-семинара / Под ред. В.В. Шайдурова. — Красноярск: ИВМ СО РАН, 2005. С. 36-39.

13. Горский С.А. Исполнение параллельных программ в инструментальном комплексе ORLANDO / С.А. Горский // Математическое моделирование и информационные технологии: Материалы VIII школы-семинара молодых ученых. Иркутск: ИДСТУ СО РАН, 2006. - С. 50-53.

14. Горский С.А. Создание пакетов программ в инструментальном комплексе ORLANDO TOOLS / С.А. Горский, А.Г. Феоктистов // Сб. тр. II школы-семинара молодых ученых «Управление большими системами». — Воронеж: Научная книга, 2007. Т. 2. - С. 33-39.

15. Горский С.А. Средства автоматизации процесса создания параллельных программ / С.А. Горский // Информационные и математические технологии в научных исследованиях: Тр. XI Байкальской междунар. конф.; в 2-х ч. — Иркутск: ИСЭМ РАН, 2006. Ч. 2. - С. 20-26.

16. Горский С.А. Языковые средства для построения и применения параллельных пакетов прикладных программ / С.А. Горский // Под знаком £: III Всерос. науч. молодежной конф. Омск: ОНЦ СО РАН, 2005. - С. 232-233.

17. Гэри М. Вычислительные машины и трудно решаемые задачи / М. Гэри, Д. Джонсон М.: Мир, 1982. - 416 с.

18. Дейкстра Э. Дисциплина программирования / Э. Дейкстра. М.: Мир, 1978. -274 с.

19. Ершов А.П. Научные основы доказательного программирования: На-учн.сообщ. / А.П. Ершов // Вестн. АН СССР. 1984. - № 10. - С. 9-19.

20. Жиглявский А.А. Методы поиска глобального экстремума / А.А. Жигляв-ский, А.Г. Жилинскас. -М.: Наука. Гл. ред. физ.-мат. лит., 1991. — 248 с.

21. Жоголев Е. А. Лекции по технологии программирования Электронный ресурс. / Е. А. Жоголев. — Электрон, дан. Режим доступа: http://sp.cmc.msu.ru/info/3/techprog.htm, свободный. - М.: Факультет ВМиК МГУ, 2000.

22. Жоголев Е.А. Технологические основы модульного программирования / Е.А. Жоголев // Программирование. 1980. - № 2. - С. 44-49.

23. Инструментальные средства построения и эксплуатации пакетов знаний / Г.А. Опарин, А.Г. Феоктистов, Д.Г. Феоктистов, А.Е. Журавлев // Управляющие системы и машины. 1997. - №1-3. - С. 138-143.

24. Инструментальный комплекс ORLANDO TOOLS / Г.А. Опарин, А.Г. Феоктистов, А.П. Новопашин, С.А. Горский // Программные продукты и системы. -2007.-№4. -С. 63-65.

25. Интеллектуальный пакет, использующий при планировании вычислений знания о предметной области и функциональных модулях / Ю.А. Бухштаб, А.И. Горлин, С.С. Камынин, Д.А. Корягин, Э.З. Любимский // Техническая кибернетика. 1981, № 5. - С.123-125.

26. Касьянов В.Н. Трансформационные методы и средства конструирования эффективных и надежных программ / В.Н. Касьянов // Кибернетика и системный анализ. 1993. - № 2. - С. 30-40.

27. Катковник В.Я. Линейные оценки и стохастические задачи оптимизации (метод параметрических операторов усреднения) / В.Я. Катковник. М.: Наука, 1976.-475 с.

28. Кахро М.И. Инструментальная система программирования ЕС ЭВМ (ПРИЗ) / М.И. Кахро, А.П. Калья, Э.Х. Тыугу. М.: Финансы и статистика, 1981. -158 с.

29. Кнут Д. Искусство программирования: в 3 т. Т. 1: Основные алгоритмы.-М., СПб., Киев: Вильяме, 2007. 712 с.

30. Корнеев В. Архитектуры с распределенной разделяемой памятью / В. Кор-неев // Открытые системы. 2001. - № 3. - С. 15-23.

31. Корнеев В.В. Параллельные вычислительные системы / В.В. Корнеев. М.: Нолидж, 1999.-320 с.

32. Корнеев В.Д. Параллельное программирование в MPI / В.Д. Корнеев. — Москва-Ижевск: Институт компьютерных исследований, 2003. 304 с.

33. Лацис А.О. Как построить и использовать суперкомпьютер / А.О. Лацис. — М.: Бестселлер, 2003. 274 с.

34. Легалов А. И. Особенности процедурно-параметрической парадигмы программирования / А. И. Легалов // Радиоэлектроника. Информатика. Управление.-2001 г.-№ 1(5).-С. 102-106.

35. Легалов А.И. Функциональный язык для создания архитектурно-независимых параллельных программ / А.И. Легалов // Вычислительные технологии,-2005.-№ 1(10).-С. 71-89.

36. Липаев В.В. Технология сборочного программирования / В.В. Липаев, А.А. Штрик. М.: Радио и связь, 1992. - 272 с.

37. Лорьер Ж.-Л. Системы искусственного интеллекта: Пер. с франц. / Ж.-Л. Лорьер. -М.: Мир. 1991. - 568 с.

38. Майерс Г. Надежность программного обеспечения. / Г. Майерс М.: Мир, 1980.-360 с.

39. Малышкин В.Э. Введение в параллельное программирование мультикомпь-ютеров / В.Э. Малышкин. Новосибирск: ИВМиМГ СО РАН, 2003. - 268 с.

40. На пути к переносимым параллельным программам / А. Легалов, Д. Кузьмин, Ф. Казаков, Д. Привалихин. // Открытые системы. 2003. - № 05. - С. 36-42.

41. Немнюгин С. А. Параллельное программирование для многопроцессорных систем / С. А. Немнюгин, О. Л. Стесик. СПб.: БХВ-Петербург, 2002. -400 с.

42. Норма. Описание языка. Рабочий стандарт / А.Н. Андрианов, А.Б. Бугеря, К.Н. Ефимкин, И.Б. Задыхайло. М.: Препринт ИПМ им. М.В. Келдыша РАН, 1995.-№ 120.-50 с.

43. Опарин Г.А. Технология синтеза модульных параллельных программ для DVM-системы / Г.А. Опарин, А.П. Новопашин // Интеллектуальные системы: Труды VII Межд. симпозиума. Под ред. К.А. Пупкова. М.: РУСАКИ, 2006.-С. 468-471.

44. Опарин Г.А. Булево моделирование планирования действий в распределенных вычислительных системах / Г.А. Опарин, А.П. Новопашин // Теория и системы управления. 2004. - №5. - С. 105-108.

45. Опарин Г.А. Инструментальная распределенная вычислительная САТУРН-среда / Г.А. Опарин, А.Г. Феоктистов // Программные продукты и системы. -2002.-№2.-С. 27-30.

46. Опарин Г.А. Представление и использование пакетных знаний / Г.А. Опарин, А.Г. Феоктистов, С.А. Горский // Математическое моделирование и информационные технологии: V школа-семинар молодых ученых. Иркутск: Ангасолка, 2004. - С. 29.

47. Опарин Г.А. САТУРН метасистема для построения пакетов прикладных программ / Г.А. Опарин // Разработка пакетов прикладных программ. - Новосибирск: Наука, 1982. - С. 130-160.

48. Плакс Т.П. Синтез параллельных программ на вычислительных моделях / Т.П. Плакс // Программирование. 1977. - № 4. - С. 55-63.

49. Программирование на параллельных вычислительных системах / Р. Бэбб, Дж. Мак-Гроу, Т. Аксельрод и др.; под ред. Р. Бэбба. М.: Мир, 1991. -376 с.

50. Сиразетдинов Т.К. Динамическое моделирование экономических объектов / Т.К. Сиразетдинов. Казань: Фэн, 1996. -223 с.

51. СПОРА система программирования с автоматическим синтезом программ / И.О. Бабаев, С.С. Лавров, Г.А. Нецветаева, Ф.А. Новиков, Г.М. Шувалов // Применение методов математической логики. - Таллин: ИК АН ЭССР, 1983. -С. 29-41.

52. Топорков В.В. Модели распределенных вычислений / В.В. Топорков. М.: ФИЗМАТЛИТ, 2004. - 320 с.

53. Турский В. Методология программирования / В. Турский. М.: Мир, 1981. -264 с.

54. Тыугу Э.Х. Концептуальное программирование / Э.Х. Тыугу. М.: Наука, 1984.-256 с.

55. Феоктистов А.Г. Реализация метода мультистарта в пакете Градиент / А.Г. Феоктистов, С.А. Горский // Вестник НГУ. Сер.: Информационные технологии. 2007. - Т. 5, вып. 2. - С. 78-82.

56. Феоктистов А.Г. Технология построения пакетов прикладных программ для вычислительных кластеров / А.Г. Феоктистов, С.А. Горский // Параллельные вычисления и задачи управления: Тр. III Междунар. конф. РАСО'2006. М.: ИПУ РАН, 2006. - С. 498-504.

57. Функция Растригина Электронный ресурс. Электрон, дан. Режим доступа: http://www.cs.rtuJv/dssg/m/staff/rastrigin/rastr-function.html, свободный.

58. Хьюз Дж. Структурный подход к программированию / Дж. Хьюз, Дж. Мич-том. М.: Мир, 1980. - 280 с.

59. Цейтин Г.С. На пути к сборочному программированию / Г.С. Цейтин // Программирование. 1990. - №1. - С. 78-92.

60. Цикритзис Д. Модели данных / Д. Цикритзис, Ф. Лоховски. М.: Финансы и статистика, 1985. - 344 с.

61. Эндрюс Г.Р. Основы многопоточного, параллельного и распределенного программирования / Г.Р. Эндрюс. М.: Издательский дом «Вильяме», 2003. -512 с.

62. Armstrong J. Programming Erlang: Software for a Concurrent World / J. Armstrong. The Pragmatic Bookshelf, 2007. - 536 p.

63. Biyabani S. The integration of deadline and criticalness in hard real-time scheduling / S. Biyabani, J. Stankovic, K. Ramamritham // IEEE 9th Real-time systems symp. 1988. - P. 152-160.

64. Brauni T. Parallel Programming. An Introduction / T. Brauni. Prentice Hall, 1993.

65. C-DVM язык разработки мобильных параллельных программ / Н.А. Коновалов, В.А. Крюков, А.А. Погребцов, Ю.Л. Сазанов // Программирование. -1999. -№1.- С. 20-28.

66. Chetto Н. Sheduling dynamically occurring tasks in hard real-time systems / H. Chetto, M. Silly // Proc. IFAC workshop on distributed computer control systems. 1986.-P. 181-186.

67. EDPEPPS: An environment for the design and performance evaluation of portable parallel software / T. Delaitre, G.R. Ribeiro Justo, F. Spies, S. Winter. // Submitted version of Euromicro Workshop PDP'97. London: 1996. - P. 401-406.

68. Flynn M. Some Computer Organisations and Their Effectiveness / M. Flynn // IEEE Trans. Computers. 1972. V. 21. - № 9. - P. 948-960.

69. Flynn M. Very high-speed computing system / M. Flynn // Proc. IEEE. 1966. № 54.-P. 1901-1909.

70. HeNCE: A Users' Guide Электронный ресурс. / A. Beguelin, J. Dongarra, G. A. Geist, R. Manchek, K. Moore, P. Newton, V. Sunderam. — Электрон, дан. -Режим доступа: http://www.netlib.org/hence, свободный. 1994.

71. Holt R.C. Structure of Computer Programs: A Survey / R.C. Holt // Proceedings of the IEEE. 1975. - № 63(6). - P. 879-893.

72. Kacsuk P. GRADE Graphical Environment for Parallel Programming P. Kac-suk, S. // Forrai ERCIM NEWS - №. 36. - 1999. - P. 30-32.

73. Parr T. The Definitive ANTLR Reference: Building Domain-Specific Languages / T. Parr. The Pragmatic Bookshelf, 2007. - 361 p.

74. PVM: Parallel Virtual Machine. A Users' Guide and Tutorial for Networked Parallel Computing / A. Geist., A. Beguelin, J. Dongarra, W. Jiang, R. Manchek, V. Sunderam. Cambridge: The MIT Press, 1994. - 298 p.

75. Rajeev V. Distributed Execution Environments for the CODE 2.0 Parallel Programming System / V. Rajeev.: Thesis, Dept. of Computer Sciences, Univ. of Texas at Austin, 1995. 85 p.

76. Stankovic J.A. The Spring kernel: a new paradigm for real-time operating systems / J.A. Stankovic, K. Ramamritham // Operating systems review. 1989. - V.3. -№ 3. - P. 54-71.

77. Test Functions for Unconstrained Global Optimization Электронный ресурс. Электрон. дан. Режим доступа: http://www-optima.amp.i.kyoto-u.ac.jp/member/student/hedar/Hedarfiles/TestGOfiles/Page 1905.htm, свободный.

78. Writing Message Passing Parallel Programs with MPI / N. MacDonald, E. Minty, T. Harding, S. Brown. Edinburgh: Edinburgh Parallel Computing Center, University of Edinburgh, 2000. - 80 p.

79. Zhao W. Preemptive scheduling under time and resource constraints / W. Zhao, K. Ramamritham, J. Stankovic // IEEE tr on computers. 1987. - V. C-36. - №8. -P. 949-960.

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