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

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

Оглавление диссертации кандидат технических наук Редькин, Андрей Владимирович

Введение.

1 Динамические параллельные вычисления на основе асинхронных списков.

1.1 FIFO-сети для описания асинхронных вычислений.

1.2 Асинхронные вычисления в схемах потока данных Денниса.

1.3 Асинхронные списки в языке Пифагор.

1.4 Использование асинхронных списков для управления параллельными вычислениями.

1.4.1 Конвейерное взаимодействие асинхронных функций.

1.5 Использование асинхронного списка в алгоритмах сортировки.

1.5.1 Асинхронная сортировка перебором.

1.5.2 Быстрая асинхронная сортировка.

1.6 Расширение возможностей языка Пифагор дополнительными встроенными функциями.

1.6.1 Операция insert.

1.6.2 Операция exchange.

1.6.3 Операция append.

1.6.4 Операция permute.

1.6.5 Операции drop и take.

1.7 Операция прямой интерпретации в языке Пифагор.

1.8 Выводы.

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

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

2.1.1 Организация вычислений в языке Sisal.

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

2.1.3 Управление в модели функционально-потоковых параллельных вычислений на основе информационного и управляющего графов.

2.2 Информационный граф функционально-потоковой параллельной программы.

2.3 Управляющий граф функционально-потоковой параллельной программы

2.3.1 Генератор сигнала.

2.3.2 Смеситель сигналов.

2.3.3 Асинхронный смеситель сигналов.

2.3.4 Интерпретатор сигналов.

2.3.5 Синхронизатор сигналов.

2.3.6 Управление вычислениями в задержанных подграфах.

2.4 Формирование управляющего графа.

2.5 Реализация стратегий управления посредством преобразования управляющих графов.

2.6 Выводы.

3 Событийный процессор для функционально-потоковых параллельных вычислений.

3.1 Внутренние представления графов и данных.

3.1.1 Внутреннее представление информационного графа.

3.1.2 Представление констант и данных.

3.1.3 Внутреннее представление функции.

3.1.4 Внутреннее представление управляющего графа.

3.2 Структура событийного процессора.

3.2.1 Структура события.

3.2.2 Событийное управление для параллельных списков.

3.2.3 Поток событий.

3.2.4 Событийное управление для задержанных списков.

3.3 Параллельные вычисления с использованием событийного процессора.

3.4 Выводы.

4 Инструментальная поддержка разработки параллельных программ на языке Пифагор.

4.1 Общая структура системы.

4.2 Модель данных системы.

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

4.4 Хранение информационных, управляющих графов и вспомогательных структур данных.:.

4.5 Использование внешних функций.

4.6 Визуализация графов.

4.7 Реализация возможностей отладки программ.

4.7.1 Отладка в режиме трассировки событий.

4.8 Интерфейс пользователя.

4.8.1 Среда доступа к хранилищу функций и графов.

4.8.2 Графический интерфейс событийного отладчика программ.

4.9 Выводы.

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

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

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

На сегодняшний день некоторые системы параллельного программирования получили широкое распространение. Например, для многоядерных вычислительных систем и параллельных вычислительных систем с общей памятью используются многопоточные библиотеки [1] и система программирования ОрепМР [2]. При разработке программ для систем с распределенной памятью наибольшую популярность получил стандарт MPI [3]. Следует отметить, что программы, созданные с применением этих средств, эффективно выполняются только на соответствующих им вычислительных системах (ВС). При переносе приложения на параллельную ВС с другой архитектурой его, как правило, приходится переписывать заново. Архитектурная зависимость параллельных программ порождается не только различиями в организации ВС. Даже в рамках одной архитектуры перенос программы с одной системы на другую может привести к разбалансировке вычислений из-за отличий в скоростных соотношениях процессоров и каналов передачи данных.

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

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

Методы архитектурно-независимого параллельного программирования опираются на использование функциональных и потоковых языков, описывающих только информационный граф программы без привязки к системе исполнения. К таким языкам относятся Пифагор [5, 6, 7], Sisal [8], FPTL [9] и ряд других. Управление вычислениями в таких языках, как правило, задается неявно, что позволяет использовать различные подходы к его реализации [10, 11, 12].

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

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

Для достижения указанной цели в работе решаются следующие задачи:

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

- исследование принципов построения управляющих структур функционально-потоковых параллельных программ во время трансляции;

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

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

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

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

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

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

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

Практическая значимость.

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

2 Полученные научные и практические результаты использованы в учебном процессе по дисциплинам «Технология программирования» и «Модели параллельных вычислений» в ФГОУ ВПО «Сибирский федеральный университет».

Апробация работы.

Основные положения диссертации докладывались и обсуждались на следующих конференциях и семинарах:

- третья Сибирская школа-семинар по параллельным вычислениям, Томск, 2006;

- шестая межрегиональная школа-семинар «Распределенные и кластерные вычисления», Красноярск, 2006;

- четвертая Российско-германская школа по параллельным вычислениям,

Новосибирск, 2007;

- четвертая Сибирская школа-семинар по параллельным вычислениям, Томск, 2007;

- Всероссийские научно-технические конференции «Молодежь и наука -XXI век», Красноярск, 2005-2008;

- третья международная конференция «Параллельные вычисления и задачи управления» РАСО '2006, Москва;

- международная научная конференция Параллельные вычислительные технологии (ПаВТ'2009), Нижний Новгород.

Сведения о внедрении.

Результаты работы использованы при выполнении: научно-методического проекта Сибирского Федерального университета №10 «Решение некоторых задач прикладной математики и информатики для повышения потенциала образовательного процесса»; проекта Сибирского Федерального университета «Использование технологий параллельной обработки в научной, образовательной и организационной деятельности»; проекта №25 «Среда разработки для языка параллельного программирования Пифагор» в рамках «Программы развития СФУ на 2007-2010 годы».

Программный комплекс «Инструментальная система поддержки программирования на языке Пифагор с возможностями визуализации» используется в учебном процессе, что подтверждено актами внедрения. Публикации.

По теме диссертации опубликовано девять научных работ, из которых одна статья в издании, рекомендуемом ВАК. Структура и объем работы.

Диссертация состоит из введения, четырех глав, заключения и трех приложений. Робота содержит 129 страниц основного текста, 65 рисунков и 6 таблиц. Список литературы содержит 110 наименований.

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

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

4.9 Выводы

Предложена архитектура системы инструментальной поддержки функционально-потокового параллельного программирования, основанная на

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

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

Заключение

В рамках настоящей работы получены следующие результаты:

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

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

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

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

Список литературы диссертационного исследования кандидат технических наук Редькин, Андрей Владимирович, 2009 год

1. GNU Pthread The GNU Portable Threads Электронный ресурс. - Режим доступа : http://www.gnu.org/software/pth/, свободный. - Загл. с экрана.

2. The OpenMP API specification for parallel programming Электронный ресурс. Режим доступа : http://www.openmp.org, свободный. - Загл. с экрана.

3. Message Passing Interface Forum Электронный ресурс. Режим доступа : http://www.mpi-forum.org, свободный. - Загл. с экрана.

4. Легалов, А. И. На пути к переносимым параллельным программам / А. И. Легалов и др. // Открытые системы. 2003. - № 5. - С. 36-42.

5. Казаков, Ф. А. Параллельный язык управления потоков данных. / Ф.А. Казаков, Д.А. Кузьмин, А.И. Легалов // Математическое обеспечение и архитектура ЭВМ ; Сб. науч. работ. КГТУ, Красноярск, 1997. Вып. 2. -С. 105-113.

6. Kuzmin, D. A. Description of parallel-functional programming language. / D. A. Kuzmin, F. A. Kazakov, A. I. Legalov // Advances in Modeling & Analysis, A, AMSE Press, 1995. Vol.28, №3 - P. 1-17.

7. Касьянов, В. Н. Функциональный язык SISAL 3.0 / В. Н. Касьянов, Ю. В. Бирюкова, В. А. Евстигнеев // Поддержка супервычислений и Интернеториентированные технологии. Новосибирск - 2001. — С. 54-67.

8. Vijayaraghavan, V. Control flow extensions to the data flow language SISAL / V. Vijayaraghavan, K.M. Kavi, B. Shirazi //Applied Computing, 1991. -P. 130-38.

9. Модель параллельных вычислений функционального языка / А. И. Легалов и др. // Известия ТЭТУ. Сборник научных трудов. Структуры и математическое обеспечение специализированных средств. С.-Петербург. -1996.-Вып. 500.-С. 56-63.

10. Легалов, А. И. Об управлении вычислениями в параллельных системах и языках программирования / А. И. Легалов // Научный вестник НГТУ.2004.-№3 (18).-С. 63-72.

11. Kahn, G. The semantics of a simple language for parallel programming / G. Kahn // Information processing / ed. by J. L. Rosenfeld. North Holland, Amsterdam, 1974. - P. 471-475.

12. Легалов, А. И. Потоковая модель параллельных вычислений. / А. И. Легалов, Ф. А. Казаков, Д. А. Кузьмин // Вестник Красноярского государственного технического университета. 1996. — Вып. 6. - С. 6067.

13. Kahn, G. The semantics of a simple language for parallel programming / G. Kahn // Information processing / ed. by J. L. Rosenfeld. North Holland, Amsterdam, 1974.-P. 471-475.

14. Dennis, J. B. Data flow schemas / J. B. Dennis, J. B. Fosseen, J. P. Linderman // Proc. of the Internat. Symp. on Theoretical Programming. Lect. Notes Comput. Sci. London, UK: Springer-Verlag. - 1972. - Vol. 5. - P. 187-216.

15. Dennis, J. B. First Version Data of a Flow Procedure Language / J. B. Dennis // New York: Springer-Verlar. 1974. - P. 362-376.

16. Денис, Д. Б. Схемы потоков данных / Д. Б. Денис, Д. Б. Фоссин, Д.П. Линдерман // Теория программирования. 4 2.- Новосибирск: ВЦ СО АН СССР, 1972.-С. 7-43.

17. Arvind A new interpreter for data flow schemas and its implications for computer architecture / Arvind, K.P. Gostelow // TR 72, Dept. Inform, and Com-put. Sci. Univ. Calif., Irvine. - 1975, -P.

18. Xoap, Ч. Взаимодействующие последовательные процессы / Ч. Хоар; пер. с англ. М.: Мир, 1989. - 264 с.

19. Легалов, А. И. Построение параллельных алгоритмов'. / А. И. Легалов // Открытые системы. 2004. - № 9 (101). - С. 64-68.

20. Кормен, Т. Алгоритмы: построение и анализ. / Т. Кормен, Ч. Лейзерсон, Р. Ривест; пер. с англ. М.: МЦНМО, 1999. - 960 с.

21. Introduction to Parallel Computing, Second Edition./ A. Grama et al.. -Addison Wesley, 2003. 856 p.

22. Skedzielewski, S. К. IF1 An intermediate form for applicative languages, version 1.0 / S. K. Skedzielewski, J. Glauert; Tech. Rep. / Lawrence Livermore National Laboratory; M-170- Livermore, CA, 1985. - 68 p.

23. Welcome, M. L. IF2 An applicative language intermediate form with explicit memory management / M. L. Welcome et al. ; Tech. Rep. / Lawrence Livermore National Laboratory; M-195- Livermore, CA, 1986. - 37 p.

24. Стасенко, А. П. Внутреннее представление системы функционального программирования Sisal 3.0 / А. П. Стасенко; Препр. / РАН. Сиб. Отд-е. ИСИ; № 110.- Новосибирск, 2004. - 54 с.

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

26. Легалов, А. И. Влияние стратегии управления на организациюпараллельных вычислительных систем / А. И. Легалов // IV Всесоюзная школа-семинар "Распараллеливание обработки информации" ; Тезисы докладов и сообщений. Львов, 1983. — Часть 3. - С. 218-219.

27. Стасенко, А. П. Система интерфейсов транслятора во внутреннее представление IR1 / А. П. Стасенко // Методы и инструменты конструирования и оптимизации программ Новосибирск,: Институт систем информатики имени А. П. Ершова СО РАН, 2005. - С. 229-238.

28. Касьянов, В. Н. Реструктурирующие преобразования: алгоритмы распараллеливания циклов / В. Н. Касьянов, И. Л. Мирзуитова // Программные средства и математические основы информатики. -Новосибирск. 2004. - С. 142-188.

29. Барский, А.Б. Вычислительная система, управляемая потоком данных' / А.Б. Барский, В.В. Шилов // Приложение к журналу "Информационные технологии". 2000. - №8. - 24 с.

30. Барский, А.Б. Потоковая вычислительная система: программирование и оценка эффективности. / А.Б. Барский, В.В. Шилов // Приложение к журналу "Информационные технологии". 2003, №7. 24 с.

31. Легалов, А. И. Управление в вычислительных системах и языках программирования / А. И. Легалов // Материалы конференции "Проблемы информатизации города". Красноярск, 1994. С. 198-202.

32. Привалихин, Д. В. Транслятор функционального языка параллельного программирования / Д. В. Привалихин // Информатика и информационные технологии ; Материалы межвузовской научной конференции. Красноярск, 2002. - С. 228-232.

33. Легалов, А. И. Стратегии управления вычислениями / А. И. Легалов //

34. Проблемы техники и технологий XXI века. Материалы научной конференции. Красноярск, КГТУ, 1994. С. 122-126.

35. Редькин, А.В. Промежуточное представление информационного графа для языка Пифагор / А.В. Редькин // Информатика и информационные технологии. Красноярск. 2004. - С. 205-209.

36. Python Programming Language Official Website Электронный ресурс.,-Режим доступа : http://www.python.org/, свободный. - Загл. с экрана.

37. Gelly, О. LAU system software: A high level data driven language for parallel programming / O. Gelly // In: Proc. of the 1976 Intern. Conf on Parallel Processing, 1976 P. 255-262.

38. Blelloch, G. E. NESL: A Nested Data-Parallel Language (Version 3.1) / G. E. Blelloch. // Technical Report CMU-CS-95-170, Carnegie Mellon University, Pittsburgh, PA, 1995. - P.

39. Реконфигурируемые мультиконвейерные вычислительные структуры /

40. И.А. Каляев и др. Ростов-на-Дону. Издательство ЮНЦ РАН, 2008 -393 с.

41. D. G. Fritz. An overview of hierarchical control flow graph models. / D.G. Fritz, R. G. Sargent // Proceedings of the 27th conference on Winter simulation Arlington, Virginia, United States 1995. - p.1347-1355.

42. Comparison of Parallel Sorting Algorithms on Different Architectures. / Nancy M. A. et al.. // Technical Report 98-029, Department of Computer Science, Texas A&M University, 1996.

43. Wesley, M. J. Advances in Dataflow Programming Languages. ACM Computing Surveys, / M. J. Wesley, J. R. Paul Hanna, R. J. Millar // Vol. 36, No. 1, 2004.-P 1-34.

44. Corretjer, I. Configuration and Representation of Large-Scale Dataflow Graphs using the Dataflow Interchange Format / I. Corretjer, C.-J. Hsu, S. S. Bhattacharyya // Signal Processing Systems Design and Implementation, SIPS •06. IEEE, 2006, P. 10-15.

45. Полин, E.JI. Классификация моделей параллельных вычислительных процессов по признакам ширины и общности. / E.JI. Полин, К.В. Защелкин // Труды Одесского политехнического университета, 2004. -Вып. 1(21).-С. 1-6.

46. Matsubara, Y. Necessity of timing dependency in parallel programming languages. / Matsubara, Y. // High Performance Computing in the Asia-Pacific Region, 2000. Proceedings. The Fourth International Conference, 2000. vol.1 -P.19-21.

47. Dennis, J. B. A preliminary architecture for a basic data-flow processor. / J. B. Dennis, D. P. Misunas // In Proceedings of the 2nd Annual Symposium on

48. Computer Architecture, 1975.-P. 126-32.

49. Стасенко, А. П. Транслирующие компоненты системы функционального программирования SFP / А. П. Стасенко и др. // Современные проблемы конструирования программ. Новосибирск, 2002. - С. 69-87.

50. Stasenko, А. P. Sisal 3.1 language structures decomposition / A. P. Stasenko // Bull. Novosibirsk Сотр. Center. Ser. Computer Science. -Novosibirsk, 2006. Iss. 24. - 8 p.

51. Малышкин, В. Э. Введение в параллельное программирование мультикомпьютеров / В. Э. Малышкин Новосибирск, 2003. - 268 с.

52. Кутепов, В. П. Модель асинхронных вычислений значений функций в языке функциональных схем / В. П. Кутепов, В. Н. Фальк // Программирование. 1978. — № 3. - С. 3-15.

53. Кутепов, В. П. Функциональные системы: теоретический и практический аспекты. / В. П. Кутепов, В. Н. Фальк // Кибернетика. 1979. - № 1. - С. 46-58.

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

55. Привалихин, Д. В. Интегрированная среда разработки программ нафункциональном языке программирования «Пифагор» / Д. В. Привалихин // Информатика и информационные технологии ; Материалы межвузовской научной конференции. Красноярск, 2002. - С. 232-236.

56. Легалов, А. И. Использование типов в языке программирования Пифагор / А. И. Легалов, Д. В. Привалихин // Проблемы информатизации региона. ПИР-2001; Сб. науч. трудов. Красноярск. ИПЦ КГТУ. 2002. - С. 55-61.

57. Легалов, А. И. Эволюционное расширение программ в функциональном языке параллельного программирования / А. И. Легалов, Д. В.

58. Привалихин // Вестник Красноярского государственного университета. -Красноярск,2004. № 5/2. - С. 40-48.

59. Фридман, А. C/C++. Архив программ / А. Фридман, Л. Кландер, X. Шильдт; пер. с англ. М.: ЗАО «Издательство БИНОМ», 2001. - 638 с.

60. Керниган, Б. Язык программирования Си / Керниган Б., Ритчи Д.; пер. с англ. М.: Финансы и статистика, 1992. - 272 с.

61. Кнут, Д. Искусство программирования для ЭВМ. Том 1. Основные алгоритмы. / Д Кнут; пер. с англ. М.: Мир, 1976. - 736 с.

62. Кнут, Д. Искусство программирования для ЭВМ. Том 2. Получисленные алгоритмы. / Д Кнут; пер. с англ. М.: Мир, 1977. - 726 с.

63. Кнут, Д. Искусство программирования для ЭВМ. Том 2. Сортировка и поиск. / Д Кнут; пер. с англ. М.: Мир, 1977. - 846 с.

64. Вирт, Н. Алгоритмы + структуры данных = программы / Н. Вирт; пер. с англ. М.: Мир, 1982. - 406 с.

65. Бентли, Д. Жемчужины программирования. / Д. Бентли; пер. с англ. -СПб.: Питер, 2002. 272 с.

66. Александреску, А. Современное проектирование на С++. / А. Александреску. М.: Издательский дом «Вильяме», 2002. - 336 с.

67. Ахо, А. Построение и анализ вычислительных алгоритмов. / А. Ахо, Дж.Хопкрофт, Дж. Ульман; пер. с англ. М.: Мир, 1979. - 536 с.

68. Ахо А. Структуры данных и алгоритмы / А. Ахо, Дж. Хопкрофт, Дж. Ульман; пер. с англ. М.: Вильяме, 2001.- 384 с

69. Гудман, С. Введение в разработку и анализ алгоритмов. / С. Гудман, С.Хидетниеми; пер. с англ. М.: Мир, 1981. - 368 с.

70. Дал, У. Структурное программирование / У Дал., Э. Дейкстра, К. Хоор; пер. с англ. М.: Мир, 1975.-247 с.

71. Лингер, Р. Теория и практика структурного программирования / Р. Лингер, X. Миллс, Б. Уитт; пер. с англ. М.: Мир, 1982. - 406 с.

72. Растрнгин, JI. А. Адаптация сложных систем. Методы и приложения./ Л. А. Растригин. Рига, «Зинатне», 1981. -375с.

73. Редькин, А.В. Событийное управление выполнением функционально-потоковых параллельных программ / А.В. Редькин, А.И. Легалов // Научный вестник НГТУ. 2008. -№3(32), - С. 111-117.

74. Редькин, А.В. Промежуточное представление функционального языка потокового программирования / А.В. Редькин // Третья Сибирская школа-семинар по параллельным вычислениям / под ред. проф. А.В. Старченко. Томск: изд-во Том. Ун-та, 2006. С. 121-125.

75. Редькин, А.В. Событийная интерпретация функционально-потоковых параллельных программ // Четвертая Российско-германская школа по параллельным вычислениям. Научная сессия. Тез. докл. Новосибирск, 2007.-С. 29-30.

76. Редькин, А.В. Среда разработки для языка параллельного программирования ПИФАГОР / А.В. Редькин // Четвертая Сибирскаяшкола-семинар по параллельным вычислениям. Тез. докл. Томск, 2007. — С. 20-22.

77. Хоар, Ч. Взаимодействующие последовательные процессы. / Ч. Хоар ; пер. с англ. М.: Мир, 1989. - 264 с.

78. Алгоритмы, математическое обеспечение и проектирование архитектур, многопроцессорных вычислительных систем / под ред. А.П. Ершова. М: Наука, 1982.-336 с.

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

80. Арыков, С.Б. Система асинхронного параллельного программирования "Аспект" / С.Б. Арыков, В.Э.Малышкин // Вычислительные методы ипрограммирование 2009. - Т.9 - С. 48-52.

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

82. Рубан, А. И. Глобальная оптимизация методом усреднения координат: Монография / А. И. Рубан. Красноярск: ИПЦ КГТУ, 2004. 302 с.

83. Tamara Munzner. НЗ: Laying Out Large Directed Graphs in 3D Hyperbolic Space. // Proceedings of the 1997 IEEE Symposium on Information Visualization, October 20-21 1997, Phoenix, AZ, 1997. P. 2-10.

84. Drawing Graphs: Methods and Models // Lecture Notes in Computer Science) . Springer, 2001.

85. Удалова, Ю.В. Интегрированная среда разработки программ на параллельном функцио-нальном языке ПИФАГОР/ Ю.В. Удалова// Информатика и информационные техноло-гии. Красноярск 2004.

86. Удалова, Ю.В. Среда разработки программ на языке ПИФАГОР под ОС LINUX. /Ю.В. Удалова, Д.А. Кузьмин //Распределенные и кластерные вычисления. Красноярск 2005.

87. Удалова, Ю.В. О верификации функционально-потоковых параллельныхпрограмм на примере задачи разделения множеств. / Ю.В. Удалова //Распределенные и кластерные вычисления, Красноярск 2006.

88. Мультипроцессорные вычислительные системы.: Пер. с англ. / Под ред. Ф. Г. Энслоу. М.: Энергия, 1976. - 384 с.

89. Головкин, Б. А. Параллельные вычислительные системы. / Б. А. Головкин -М.: Наука, гл. ред. физ.-мат. лит., 1980. 520 с.

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

91. Лацис, А.О. Как построить суперкомпьютер. / А.О. Лацис М.: Бестселлер, 2003. - 240 с.

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

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