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

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

Оглавление диссертации кандидат технических наук Привалихин, Денис Викторович

Введение.

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

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

1.2 Язык функционального программирования Haskell.

1.3 Функциональный язык программирования Clean.

1.4 Функциональный язык параллельного программирования Sisal.

1.5 Язык FPTL.

1.6 Функциональный язык параллельного программирования Пифагор

1.7 Выводы по главе 1.

2 Языковые конструкции, расширяющие функциональные возможности языка параллельного программирования Пифагор.

2.1 Система типизации, строгого контроля типов и введение типов, определяемых пользователем.

2.1.1 Работа с альтернативами в языках с динамической типизацией

2.1.2 Пользовательские типы.

2.2 Перегрузка функций с одинаковой сигнатурой.

2.3 Определение функции с предусловием и постусловием.

2.4 Возврат задержанных списков в качестве результата вычисления функций.

2.5 Модульное построение программ на языке Пифагор.

2.6 Использование функций, написанных на других языках программирования, расположенных во внешних модулях.

2.7 Выводы по главе 2.

3 Использование расширений функционального языка параллельного программирования Пифагор.

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

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

3.3 Применение предусловий и постусловий.

3.4 Использование задержанных списков, возвращаемых в качестве результата вычисления функции.

3.5 Выводы по главе 3.

4 Инструментальная поддержка функционально-потокового параллельного программирования.

4.1 Структура блока трансляции-интерпретации программ на ФЯПП.

4.2 Структура транслятора.

4.2.1 Лексический анализатор или сканер.

4.2.2 Синтаксический анализатор.

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

4.3.1 Интерпретация объектов TProgram, TFunction и TBlock.

4.3.2 Интерпретация объекта TExpression.

4.3.3 Интерпретация объектов TAtom и TKW.

4.3.4 Интерпретация объекта TList.

4.3.5 Интерпретация объекта TID.

4.3.6 Оператор интерпретации.

4.4 Интегрированная среда разработки программ на ФЯПП.

4.4.1 Текстовый редактор.

4.4.2 Панель инструментов и управление транслятором и интерпретатором.

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

4.5.1 Реализация последовательно-параллельного интерпретатора с использованием системы динамического распараллеливания MOSIX.

4.5.2 Описание входного представления.

4.6 Выводы по главе 4.

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

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

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

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

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

В настоящее время основным подходом к созданию параллельных программ является использование явных методов управления вычислениями. Большинство современных языков программирования включают примитивы для написания параллельных программ [4, 5] или используют для этого библиотечную поддержку [6, 2].

Однако степень определения параллелизма целиком зависит от знания разработчиком особенностей конкретной архитектуры ПВС [7, 8] и/или библиотеки программирования [2]. Все это приводит практически к невозможности переноса программных модулей с одной архитектуры на другую.

Для разработки параллельных программ, наиболее перспективными являются методы разработки на основе описания информационных зависимостей алгоритма. В этом случае информационный граф определяет максимальный уровень параллелизма [6, 9], а последующие преобразования, например трансляция программы, позволяет учесть те требования, которые определяются конкретной ПВС.

Обладая рядом потенциальных преимуществ, такой подход долгое время не получал развития из-за высокой ресурсоемкости этапа подготовки вычислений. Однако, в настоящее время, уровень развития ПВС, их широкое распространение привело к повышению интенсивности исследований в данном направлении [10, 11, 12, 13].

Для обеспечения переносимости предлагаются специальные языки. Одним из них является функционально-потоковый язык параллельного программирования «Пифагор» [14, 15, 16, 17, 18], в основе которого лежит модель вычислений, описывающая управление вычислениями по готовности данных, не связанное ресурсными ограничениями. В настоящее время проработаны базовые концепции данного языка, разработаны транслятор, система интерпретации и отладки. Концептуальные и технические решения, полученные в ходе его разработки, могут также использоваться в других языках функционального и потокового параллельного программирования.

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

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

Достижение цели связывается с решением следующих задач:

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

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

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

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

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

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

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

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

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

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

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

Полученные научные и практические результаты использованы в учебном процессе по дисциплинам «Параллельное программирование» и «Параллельные вычисления» в Красноярском государственном техническом университете.

Исследования также выполнялись при поддержке гранта РФФИ № 0207-90135, 2002-2003 г.

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

- межвузовские научные конференции студентов, аспирантов и молодых учёных, г. Красноярск, (2001-2004 гг.);

- 2, 3, 4 школы-семинары «Распределенные и кластерные вычисления», г. Красноярск, (2002-2004 гг.);

- региональная конференция-конкурс работ студентов, аспирантов и молодых учёных «Технологии Microsoft в информатике и программировании», г. Новосибирск, 2004 г.;

- 4-й международном научно-практическом семинаре и Всероссийской молодежной школе «Высокопроизводительные вычисления на кластерных системах», г. Самара, 2004 г.

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

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

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

4.6 Выводы по главе 4

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

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

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

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

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

Заключение

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

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

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

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

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

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

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

Список литературы диссертационного исследования кандидат технических наук Привалихин, Денис Викторович, 2004 год

1. American National Standard Programming Language С / ANCI X3.159 1989 American National Standards Institute, New York.

2. Корнеев, В. Д. Параллельное программирование в MPI / В.Д. Кор-неев Новосибирск: Изд-во СО РАН. - 2000. - 213 с.

3. Нортон, П. Программирование на Java. / П. Нортон//Руководство П.Нортона (в 2-х томах). "СК-Пресс", 1998 900 с.

4. Кауфман, В. Ш. Языки программирования. Концепции и принципы / В. Ш. Кауфман М.: Радио и связь. - 1993. - 432 с.

5. Коновалов Н.А. Fortran-DVM язык разработки мобильных параллельных программ. / Н.А. Коновалов, В.А. Крюков, С.Н. Михайлов, JI.A. Погребцов // Программирование. 1995, № 1. 49-54. с.

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

7. Джоунз, Г. Программирование на языке Оккам / Г. Джоунз; пер. с англ. М.: Мир, 1989. - 208 с.

8. Елизарова, Т.Г. Применение многопроцессорных транспьютерных систем для решения задач математической физики / Т.Г. Елизарова, Б.Н. Четверушкин //Математическое моделирование. 1992. - т. 4. - №11. - С. 75-100.

9. Пеппер, П. Функциональный подход к разработке программ с развитым параллелизмом / П. Пеппер, Ю. Экснер, М. Зюдхольд // Системная информатика. Новосибирск: ВО «Наука». 1995. - С. 334—360. Вып. 4: Методы теоретического и системного программирования.

10. Achten, P.M. The ins and outs of Clean I/O / P.M. Achten, M J. Plas-meijer // In Journal of Functional Programming, 5(1), Januaiy 1995, pages 81-110.

11. Leroy, X. The Objective Caml system release 3.04 / X. Leroy // Documentation and user's manual. Institut National de Recherche en Informatique et en Automatique. December 10,2001.

12. Thompson S. Haskell: The Craft of Functional Programming. / S. Thompson // 2-nd edition, Addison-Wesley, 1999.

13. Головков, С.Л. О языке программирования для модели вычислений, основанной на принципе потока данных / C.JL Головков, К.Н. Ефимкин, Э.З. Любимский // препринт института прикладной математики им. М.В.Келдыша РАН. 2002. - № 72. - 20 с.

14. Кузьмин, Д.А. Язык программирования параллельных процессов / Д.А. Кузьмин, Ф.А. Казаков, А.И. Легалов // В кн. Нейроинформатика и ее приложения. Программа и тезисы докладов всероссийского рабочего семинара. Красноярск. 1994. - С. 203-204.

15. 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. - No. 3. - pp. 1-17.

16. Легалов, А.И. Модель функционально-потоковых вычислений и язык программирования «Пифагор» / А.И. Легалов, Ф.А. Казаков,

17. Д.А. Кузьмин, Д.В. Привалихин // 2-ая школа семинар. Распределенные и кластерные вычисления. Избранные материалы. Красноярск, 2002. -С. 101-120.

18. Хендерсон, П. Функциональное программирование. Применение и реализация. / П. Хендерсон; пер. с англ. М.: Мир. - 1983. - 349 с.

19. Вольфенгаген, В.Э. Конструкции языков программирования. Приемы описания. / В.Э. Вольфенгаген М.: АО «Центр ЮрИнфоР». - 2001. -276 с.

20. Hudak, P. Para-Functional Programming in Haskell. / P. Hudak // In Parallel Functional Languages and Computing, ACM Press (New York) and Addison-Wesley (Reading, MA), (1991), pp. 159-196.

21. Plasmeijer, R. Concurrent Clean. Language Report. / R. Plasmeijer, M. van Eekelen // Hilt High Level Software Tools B.V. and University of Ni-jmegen, 1998 r. (www.cs.kun.nl/~clean).

22. Feo, J. Sisal 90. / J. Feo, P. Miller, S. Skedziewlewski, S. Denton, C. Soloman // Proc. HPFC '95 — High Performance Functional Computing, Denver, CO, April 9-11, (1995), pp. 35-47.

23. Бирюкова, Ю. В. Sisal 90, руководство пользователя. / Ю. В. Бирюкова // Новосибирск: Препринт № 72 ИСИ СО РАН 2000. 84 с.

24. Бажанов, С. Е. Язык функционального параллельного программирования и его реализация на кластерных системах. / С.Е. Бажанов, В.П. Кутепов, Д.А. Шестаков // Теория и системы управления (в печати).

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

26. Кутепов, В. П. Об интеллектуальных компьютерах и больших компьютерных системах нового поколения / В.П. Кутепов // Изв. РАН. Теория и системы управления, 1996. №5. С. 97-114.

27. Кутепов, В. П. Направленные отношения: теория и приложения. /

28. B.П. Кутепов, В.Н. Фальк // Изв. РАН. Техническая кибернетика. 1994. № 4, 5.

29. Кутепов, В. П. Теория направленных отношений и логика. / В.П. Кутепов, В.Н. Фальк // Изв. РАН. Теория и системы управления. 2000. №5.

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

31. Маурер, У. Введение в программирование на языке ЛИСП / У. Маурер М.: Мир. - 1976. - 104 с.

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

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

34. Ахо, А. Теория синтаксического анализа, перевода и компиляции: Том 1 / А. Ахо, Дж. Ульман М.: Мир. - 1978. - 612 с.

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

36. Кузьмин, Д.А. Интерпретация функциональных программ на кластере под управлением MOSIX / Д.А. Кузьмин, И.Н. Рыженко,

37. А.И. Легалов // Вестник Красноярского Государственного Технического университете. Выпуск № 33. Математические методы и моделирование. Под редакцией В.И. Быкова. Красноярск. ИПЦ КГТУ, 2003. С. 196-205.

38. Спенсер, Пол XML. Проектирование и реализация. / Пол Спенсер Москва, Лори. - 2001. - 509 с.

39. Arvind Gostelow К.Р. A new interpreter for data flow schemas and its implications for computer architecture / Arvind Gostelow K.P. // TR 72, Dept. Inform. and Comput. Sci. Univ. Calif., Irvine: 1975, Nov.

40. Backus, J. Can Programming Be Liberated from von Neuman Style? A Functional Stile and Its Algebra of Programs. // J. Backus С ACM, 1978. -vol.21.-No. 8.- p. 613-641.

41. Barak, A. The MOSIX Multicomputer Operating System for High Performance Cluster Computing / A. Barak, O. La'adan, // Journal of Future Generation Computer Systems, March 1998. Vol. 13. - No. 4-5. - pp. 361-372.

42. Dennis, J.B. Weng Application of data flow computation for the weather problem, high speed computer and algorithm organization / J.B. Dennis, K.S. Ken // Acad. Press. 1977. - p. 143-157.

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

44. Steele Guy L. Common Lisp the Language / L. Steele Guy //2nd Edition. (http://www.cs.cmu.edu/).

45. Казаков, Ф.А. Параллельно-функциональный язык программирования / Ф.А. Казаков, Д.А. Кузьмин, А.И. Легалов // В кн.: Нейроинформати-ка и нейрокомпьютеры. Тезисы докладов рабочего семинара. Красноярск. -1993.- С. 14.

46. Казаков, Ф.А. Семантическая модель функционального языка параллельного программирования / Ф.А. Казаков, Д.А. Кузьмин,

47. А.И. Легалов // В кн.: Проблемы техники и технологий XXI века. Материалы научной конференции. Красноярск, КГТУ. 1994. - С. 85-88.

48. Казаков, Ф.А. Разработка функционально-параллельных программ / Ф.А. Казаков, Д.А. Кузьмин, А.И. Легалов // В кн. Нейроинформати-ка и ее приложения. Программа и тезисы докладов всероссийского рабочего семинара. Красноярск. 1994. - С. 25.

49. Казаков, Ф.А. Функциональная модель потоковых вычислений / Ф.А. Казаков, Д.А. Кузьмин, А.И. Легалов // В кн.: Проблемы информатизации города: Вторая научно-практическая конференция, сб. тезисов докл. Красноярск, 1995. С. 65-67.

50. Казаков, Ф.А. Организация условных вычислений в потоковых моделях / Ф.А. Казаков // В кн.: Проблемы информатизации региона: труды межрегиональной конференции. Красноярск. 1995. - С. 68-70.

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

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

53. Легалов, А.И. Модель вычислений функционального языка параллельного программирования / А.И. Легалов, Ф.А. Казаков // 6-й Всероссийский семинар "Нейроинформатика и ее приложения". Тезисы докладов. Красноярск. 1998. - 1 с.

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

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

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

57. Антонов, А. С. Эффективная адаптация последовательных программ для современных векторно-конвейерных и массивно-параллельных Супер-ЭВМ / А. С. Антонов, В. В. Воеводин // Программирование. 1996. — №4.- С. 37-51.

58. Воеводин, В. В. Информационная структура алгоритмов. / В. В. Воеводин // М.: МГУ, 1997 139 с.

59. Бабичев, А. В. Распараллеливание программных циклов./ А.В. Бабичев, В.Г. Лебедев // Программирование. 1983. № 5, с 52-63.

60. Барендрегт, X. Ламбда-исчисление. Его синтаксис и семантика. / X. Барендрегт //Пер. с англ. М.: Мир, 1985. - 606 с.

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

62. Беркс, А. Предварительное рассмотрение логической конструкции электронного вычислительного устройства. / А. Беркс, Г. Голдстейн, Дж. Нейман // Пер. с англ. В кн.: Кибернетический сборник. Вып. 9. М.: Мир, 1974, с. 7-67.

63. Буч, Г. Объектно-ориентированное проектирование с примерами применения / Г. Буч; пер. с англ. М.: Конкорд. — 1992. - 519 е., ил.

64. Бэкус, Дж. Алгебра функциональных программ: мышление функционального уровня, линейные уравнения и обобщенные определения // Математическая логика в программировании: Сб. статей / Дж. Бэкус; пер. с англ. М.: Мир. - 1991. - С. 8-53.

65. Вальковский, В.А. Распараллеливание алгоритмов и программ. Структурный подход / В.А. Вальковский — М.: Радио и связь. — 1989. — 176 с.

66. Вирт, Н. Алгоритмы + структуры данных = программы. / Н. Вирт // М.: Мир, 1985.

67. Водяхо, А.И. Стратегии управления вычислительными процессами и их модели / А.И. Водяхо, В.П. Емелин, А.И. Легалов //

68. В кн.: Математическое и программное обеспечение САПР сетевых систем, Йошкар-Ола, 1985.- С. 135-142.

69. Воеводин, Вл.В. Просто ли получить обещанный гигафлоп? / Вл. В. Воеводин // Программирование. 1995, № 4, С. 13-23.

70. Воеводин, В.В. Математические модели и методы в параллельных процессах. / В. В. Воеводин // М.: Наука, Гл. ред. физ.-мат. лит., 1986. -296 с.

71. Гамма, Э. Приемы объектно-ориентированного пректирования. Паттерны проектирования. / Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес // Пер. с англ. СПб: Питер, 2001. - 368 с.

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

73. Грицык, В. В. Распараллеливание алгоритмов обработки информации в системах реального времени. / В. В. Грицык // Киев, Наукова думка, 1981.216 с.

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

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

76. Ершов, А. П. Введение в теоретическое программирование (беседы о методе) / А. П. Ершов М.: Наука. Главная редакция физико-математической литературы. - 1977. - 288 с.

77. Зыков, А. А. Основы теории графов. / А. А. Зыков // М.: Наука, 1987.-384 с.

78. Себеста, Роберт У. Основные концепции языков программирования, 5-ое изд. пер. с англ. / Роберт У. Себеста— М.: Издательский дом «Вильяме».-2001. 672 с.

79. Системы параллельной обработки. / Под ред. Ивенс Д. // Пер с англ. М.: Мир, 1985. 416 с.

80. Свами, М. Графы, сети и алгоритмы. / М. Свами, К. Тхуласира-ман // Пер. с англ. М.: Мир, 1984. — 455 с.

81. Ильин, В. П. О стратегиях распараллеливания в математическом моделировании. / В. П. Ильин // Программирование. 1999, № 1, с. 41-46.

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

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

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

85. Ки-Чанг Ким. Мелкозернистое распараллеливание неполных гнезд циклов. / Ки-Чанг Ким // Программирование. 1997, № 2, с. 52-66.

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

87. Костенко, В. А. К вопросу об оценке оптимальной степени параллелизма. / В. А. Костенко // Программирование. 1995, № 4, с. 24-28.

88. Легалов, А.И. Стратегии управления вычислениями / А.И. Легалов // В кн.: Проблемы техники и технологий XXI века. Материалы научной конференции. Красноярск, КГТУ. — 1994. С. 122-126.

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

90. Льюис, Ф. Теоретические основы проектирования компиляторов. / Ф. Льюис, Д. Розенкранц, Р. Стирнз // М.: Мир, 1979.

91. Майерс, Г. Архитектура современных ЭВМ: В 2-х книгах. Кн. 1. / Г. Майерс // М.: Мир, 1985. 364 с.

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

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

94. Трахтенгерц, Э.А. Программное обеспечение параллельных процессов / Э.А. Трахтенгерц — М.: Наука. 1987. - 272 с.

95. Трахтенгерц, Э.А. Введение в теорию анализа и распараллеливания программ ЭВМ в процессе трансляции / Э.А. Трахтенгерц — М.: Наука. -1981.-279 с.

96. Уолренд, Дж. Введение в теорию сетей массового обслуживания. / Дж. Уолренд // пер с англ. М.: Мир 1993. - 336 с.

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

98. Языки программирования. / Под ред. Ф. Женюи // Пер. с англ. М.: Мир, 1972. 406 с.

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