Транслятор модифицированного языка программирования высокого уровня с неявным описанием параллелизма для реконфигурируемых вычислительных систем
На основе разработанных алгоритмов разработан и создан транслятор с модифицированного языка высокого уровня с неявным описанием параллелизма, обеспечивающий трансляцию параллельных прикладных программ на уровне логических ячеек ПЛИС. Созданный транслятор позволяет в 3−4 раза увеличить удельную производительность РВС по сравнению с предыдущей версией транслятора, разработанного в начале 2000;х… Читать ещё >
Транслятор модифицированного языка программирования высокого уровня с неявным описанием параллелизма для реконфигурируемых вычислительных систем (реферат, курсовая, диплом, контрольная)
Содержание
- 1. АНАЛИЗ* СРЕДСТВ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРИКЛАДНЫХ ПРОГРАММ ДЛЯ РВС
- 1. 1. !.-Жыкишрр1раммированиЯ'.-МВС^
- 1. 2- Особенности РВС.-.':.-. 20>
- 1. 31. Языки программирования РВС
- 1. 4. Язык программирования высокого уровня СОЕАМО
- 1. 5. Принципы, модернизации языка СОЬАМО для- программирования. ПЛИС’на-уровне логических’ячеек
- 1. 6. Выводы. —.¦
- 2. ФОРМАЛИЗАЦИЯ ПРАВИЛ ТРАНСЛЯЦИИ С ЯЗЫКА ВЫСОКОГО УРОВНЯ СОЬАМО
- 2. 1. Организация доступа к памяти.'.'-.45г'
- 2. 2. Сцепление переменных
- 2. 3. '.Параллельная и конвейернаяобработка данных
- 2. 4. Особенности обработки условных операторов
- 215- Особенности-.обработки.оператора-цикла
- 2. 6. Особенности трансляции вычислительных конструкций языка СОЬАМО
- 2. 7. Выводы:
- 3- СИНТЕЗ СТРУКТУРНОГО КОМПОНЕНТА ПАРАЛЛЕЛЬНО КОНВЕЙЕРНОЙ ПРОГРАММЫ ДЛЯ РВС
- 3. 1. Основные этапы трансляции модифицированного языка' СОЬАМО для рве
- 3. 2. Обобщенный алгоритм генерации структурного компонента параллельной программы
- 3. 3. Преобразование фрагментов программы к единой степени распараллеливания
- 3. 4. Обобщенный алгоритм обработки операторов цикла
- 3. 5. Преобразование операторов во внутреннее представление транслятора:.:.'.'
- 3. 6. Алгоритм обработки вычислительных выражений
- 3. 7. Генерация информационного графа структурного компонента
- 3. 8- Обобщенный алгоритм трансляции конструкций Ье
- 3. 9. Выводы
- 4. СИНТЕЗ ПРОЦЕДУРНОГО КОМПОНЕНТА ПАРАЛЛЕЛЬНО-КОНВЕЙЕРНОЙ ПРОГРАММЫ ДЛЯ РВС
- 4. 1. Основные этапы генерации процедурного компонента параллельной программы
- 4. 1. 1. Трансляция межкадровых операторов цикла
- 4. 2. Основные этапы генерации потокового компонента параллельной программы
- 4. 2. 1. Обработка операторов присваивания и формирование информационного потока
- 4. 2. 2. Обработка операторов цикла при генерации потокового компонента
- 4. 2. 3. Обработка условных операторов при генерации потокового компонента
- 4. 3. Выводы
- 4. 1. Основные этапы генерации процедурного компонента параллельной программы
4.3. Выводы.
1) Разработан обобщенный модернизированный алгоритм генерации процедурного компонента параллельной программы, включающий в себя обработку межкадровых операторов и кадровых конструкций языка COLAMO и процедуру представления вызовов кадров параллельно-конвейерной программы на' языке ассемблера контроллеров распределенной памяти (ARGUS).
2) Разработан модифицированный алгоритм обработки межкадровых операторов цикла для процедурного компонента. Алгоритм позволяет сформировать структуру параллельно-конвейерной программы в виде детерминированной последовательности объектов, включающей объекты оператора цикла, оператора вызова кадров, оператора вычисления параметров цикла.
3) Разработан модифицированный алгоритм обработки межкадровых условных операторов перехода для процедурного компонента. Определены этапы преобразования внутреннего представления объектов операторов условного перехода в последовательность объектов, которая обеспечивает эффективное выполнение параллельно-конвейерной программы на РВС.
4) Разработан обобщенный модернизированный алгоритм генерации потокового компонента параллельной программы, включающий в себя обработку внутрикадровых операторов и генерацию процессов информационных пересылок в вычислительной структуре кадров, созданных алгоритмов для генерации структурного компонента параллельной прикладной программы РВС.
5) Разработан алгоритм обработки операторов присваивания и формирования информационного потока данных для потокового компонента. Созданные алгоритмы являются оригинальным обобщением алгоритмов функционирования адресных процессоров, позволяющих, в отличие от известных решений, формировать сложные, в том числе и вложенные информационные потоки, а также позволяют создавать рациональные информационные потоки данных и, как следствие, минимизировать время выполнения параллельно-конвейерной прикладной программы на РВС.
6) Разработан алгоритм обработки операторов цикла для потокового компонента, который, в отличие от известных алгоритмов, позволяет определять не только шаг и количество обрабатываемых элементов в информационном потоке, но и организовать повторное выполнение вложенных циклов с переменными параметрами.
7) Разработан алгоритм обработки условного оператора, который, в отличие от известных алгоритмов, позволяет не только реализовать переключение информационных потоков, но и минимизировать аппаратные затраты для адресации к сегментам распределенной памяти РВС.
8) На основе разработанных алгоритмов разработан и создан транслятор с модифицированного языка высокого уровня с неявным описанием параллелизма, обеспечивающий трансляцию параллельных прикладных программ на уровне логических ячеек ПЛИС. Созданный транслятор позволяет в 3−4 раза увеличить удельную производительность РВС по сравнению с предыдущей версией транслятора, разработанного в начале 2000;х годов.
ЗАКЛЮЧЕНИЕ
.
Основные полученные результаты диссертационной работы заключаются в разработке создания методов и алгоритмов трансляции модернизированного языка программирования высокого уровня с неявнымIописанием параллелизма, обеспечивающих отображение прикладной задачи на реконфигурируемые вычислительные системы на уровне логических ячеек ПЛИС и, как следствие, повышающих удельную производительность РВС.
При проведении исследований и разработок в диссертационной работе получены следующие теоретические и прикладные результаты:
— принципы трансляции языка СОЬАМО для программирования многокадровых параллельных прикладных программ для РВС на уровне логических ячеек ПЛИС, которые отличаются введением в вычислительную структуру прикладной задачи сдвоенных контроллеров распределенной памяти и дополнительных коммутационных структур для переключения информационных потоков;
— расширение языка высокого уровня СОЬАМО, отличающееся от языка СОЬАМО 2000;го года поддержкой битовых переменных, операций и функций, конструкций, для использования внутренней памяти ПЛИС и средств обеспечения процедурной организации! вычислений;
— формализованные правила трансляции языка программирования высокого уровня с неявным описанием параллелизма СОЬАМО в части использования мемориальных коммутационных переменных, а также параллельной и конвейерной обработки данных для РВС на уровне логических ячеек ПЛИС;
— структура транслятора с модернизированного языка СОЬАМО, отличающаяся от трансляторов процедурных языков генерацией как структурного, так и процедурного компонентов параллельной прикладной программы в едином вычислительном контуре на основе описания на одном языке программирования;
— алгоритмы трансляции структурного компонента параллельной программы, отличающиеся представлением в виде отдельного информационно-эквивалентного графа транслируемой параллельной прикладной программы;
— модернизированные алгоритмы генерации процедурных и потоковых компонентов, отличающиеся разделением вычислительных функций и операторов контроллеров распределенной памяти и обеспечивающие эффективную реализацию многокадровых прикладных программ на уровне логических ячеек ПЛИС.
Основные научные результаты диссертационной работы опубликованы в работах [63, 64, 72, 73, 81].
Предложенные в диссертации новые результаты строго аргументированы и оценены по сравнению с известными работами в рассматриваемой области. Полученные научные результаты используются практически на различных предприятиях и в организациях России, что подтверждается соответствующими актами о внедрении.
Все научные результаты, полученные при решении научной задачи создания методов и алгоритмов трансляции модернизированного языка программирования высокого уровня с неявным описанием параллелизма, обеспечивающих отображение прикладной задачи на РВС на уровне логических ячеек ПЛИС и, как следствие, повышающих удельную производительность РВС, получены автором лично.
Таким образом, в диссертации решена новая научная задача, которая является актуальной и имеет существенное научно-практическое значение. Внедрение полученных в диссертации результатов вносит значительный вклад в развитие системного программного обеспечения высокопроизводительных вычислительных систем.
Результаты диссертации внедрены в ФГУП «Курский НИИ» МО РФ (г. Курск), НИВЦ МГУ (г. Москва), Южном научном центре РАН (г. Ростов-на-Дону), НИИ МВС ЮФУ (г. Таганрог).
1. Spartan-3 FPGA Family: Complete Data Sheet Электронный ресурс. / Xilinx Inc., 2005.
2. Зотов, В. Ю. Проектирование встраиваемых микропроцессорных систем на основе ПЛИС фирмы Xilinx в САПР WebPACK ISE Текст.: монография / В. Ю. Зотов.- М.: Горячая линия-Телеком, 2006. 520 с.
3. Botros, Nazeih «HDL Основы программирования VHDL И Verilog» Текст.: монография / Nazeih Botros. Изд-во «Da Vinci инженерно Пресс», 2006. — 506 с.
4. Грушвицкий, Р. И. Проектирование систем на микросхемах программируемой логики Текст.: монография / Р. И. Грушвицкий, А. Х. Мурсаев, Е. П. Угрюмов. СПб.: БХВ-Петербург, 2002. — 608 с.
5. Система CATAPULT С SYNTESIS. С++ FPGA Текст. / А. Лохов, И. Селиванов // ЭЛЕКТРОНИКА: Наука, Технология, Бизнес «Системы проектирования». — Выпуск № 5/2005.6. http://www.parallel.ru.
6. Каляев A.B. Модульно-наращиваемые многопроцессорные системы со структурно-процедурной организацией вычислений Текст.: монография / A.B. Каляев, И. И. Левинпод ред. A.B. Каляева. М.: Янус-К, 2003. — 380 с.
7. Левин, М. П. Параллельное программирование с использованием ОрепМР Текст.: монография / М. П. Левин. Изд-во Бином. Лаборатория знаний, 2008.
8. Воеводин, В. В. Параллельное программирование Текст.: монография / В. В. Воеводин, Вл.В. Воеводин. С-Пб. Изд-во «БХВ-Петербург», 2002.
9. Barbara Chapman. Using ОрепМР: Portable Shared Memory Parallel Programming Текст.: Изд-во МИТ Пресс MIT Press, Cambridge, Massachusetts., 2008.150 ' /'v.
10. Хьюз, К. Параллельное. и, распределенное программирование с использованием С: нТекст.: монография / К. Хьюз, Т. Хьюз. Изд-во Вильяме, 2004.
11. Hempel, R. The Argonne/GMD Macros in FORTRAN for Portable Parallel Programming using the Message Passing Programming Model, Feb. 1991.
12. Меткалф, M., Рид Дж. Описание языка программирования Фортран 90: монография / М. Меткалф, Дж.Рид. М.:Мир, 1995.
13. ДенисовШ.А. -Параллельное программирование новытобраз мысли. http://www.rapas.ru/computerra.html.
14. High Performance' Fortran Language Specification: High' Performance Fortran Forum, May 3, 1993, Version 1.0.
15. Lastovetsky A.: Parallel Computing on Heterogeneous Networks, John Wiley & Sons, New Jersey, 2003, 159−254.18. http:/Avww.parallel.ru/tecli/mpc/mpG-rus.html19.http ://u-pereslavl.botik.ru/~vadim/MCS Ьаф/index.ru.php.
16. Сердюк Ю. П., Петров A.B. Параллельное программированиедля?! многоядерных ' процессоровЭлектронная книга. http://www.intuit.ru/department/supercomputing/ppmcp/.
17. Джоунз, F. Программирование, на языке Оккам Текст.: монография / Г. Джоунзпер: с.англ.- Mi :'МирЦ989^-208?с: — ISBN=S-03M)01155r2:".
18. Хоар Ч. Взаимодействующие последовательные процессы. М:.Мир, 1989:-265с.. :, .,: .
19. Де Сантис, И Язьш Ада Текст.: монография / Пабло де Сантис. Изд-во ACT, 2005.
20. Бен-Ари, М-. Языки программирования. Практический сравнительный? анализ Текст.: монография / М. Бен-Ари. М.: Мир, 2000.25. http://clusters.top500.org.
21. Воеводищ Вл.В. «Вычислительное дело и кластерные системы» Текст.: монография / Вл. В: Воеводин, С. А. Жуматий. М.: Изд-во МГУ, 2007. -150 с. —.. ' •.
22. Савин, Г. И., Кластеры Беовульф Текст. / Г. И. Савин, Г1.Н. Телегин, Б. М! Шабанов// Известия^ Вузов: Электроника. — Mi: Изд-во МГИЭТ, 2004. -№ 1. — С. 7−12. ' .
23. Кузелин, М. Основные семейства ПЛИС фирмы Xilinx Текст. / М. Кузелин // Электроника: наука, технология, бизнес. № 5, 2004. http://www.electronics.ru/pdf/52 004/16.pdf.
24. Hartenstein R. W., Hirschbiel A. G., Weber M. Xputers: An open family of non-von neumann architectures. Universitat Kaiserslautern, Bau 12, Postfach 3049, D-675, Kaiserslautern, Germany.
25. Xputer Page //http://xpiitersinformatik.uni-kl.de/xputer/indexxputer.htrnl39. http://systemc.dax.ru/book/Lhtml40. http:/^ga.parallel.ru/lang.html41. www.stretchinc.com42. http:// www.rosta.ru.
26. Каляев, A.B. Многопроцессорные вычислительные системы с программируемой архитектурой Текст.: монография / A.B. Каляев. М.: Радио и Связь, 1984. — 240 с.
27. Каляев, A.B. Многопроцессорные системы, с перестраиваемой архитектурой: концепции развития и применения Текст. / A.B. Каляев, И. И. Левин // Наука производству, 1999. — № 11. — С.11−19.
28. Каляев, A.B. Многопроцессорные системы с распределенной памятью, универсальной коммутацией и программируемой структурой микропроцессоров Текст. / A.B. Каляев // Электронное моделирование. Киев, 1979. -№ 1.-С. 31−41.
29. Каляев, A.B. Принципы организации многопроцессорных систем сверхвысокой производительности Текст. / A.B. Каляев // Микропроцессорные средства и системы. Москва, 1984. — № 2. — С. 31−35.
30. Botros, Nazeih HDL. Основы программирования VHDL И Verilog" Текст.: монография / Nazeih Botros. Изд-во «Da Vinci инженерно Пресс, 2006. — 506 с.
31. ГОСТ Р 50 754−95. Язык описания аппаратуры цифровых систем VHDL. Описание языка Текст. / Российский НИИ информационных систем (РосНИИ ИС) — Всероссийская ассоциация организаций, заинтересованных в применении языка VHDL (ВАЯПС), 01.01.1996.
32. Поляков, А. К. Языки VHDL и VERILOG в проектировании цифровой аппаратуры Текст.: монография / А. К. Поляков. Издательство: Солон-Пресс ISBN: 5−98 003−016−6, 2003. — 320 с.
33. Максфилд, К. Проектирование на ПЛИС. Курс молодого бойца Текст.: монография / К. Максфилд. М.: Издательский дом «Додэка-ХХ1» 2007.
34. Стешенко, В.Б. ПЛИС фирмы ALTERA: элементная база, система проектирования и языки описания аппаратуры Текст. / В. Б. Стешенко // Издание 3-е, стереотипное. М.: Издательский дом «ДодэкаХХ1», 2007.53. www.ImpulseC.com.
35. Левин, И. И. Язык программирования вы-сокого уровня для многопроцессорной системы с программируемой архитектурой Текст.:сборник трудов / И. И. Левин, В. Ф. Гузик, О. О. Сафронов // Распределенная обработка информации. Новосибирск, 1991.
36. Левин, И. И. Ресурсонезависимое параллельное программирование Текст. / И. И. Левин // Искусственный интеллект. Донецк: Наука i освгга, 2002.-№ 3.-С. 277−285.
37. Левин, И.И. О языке макроассемблера комплекта БИС с програм-мно-перестраиваемой структурой Текст. / И. И. Левин, О. О. Сафронов // Архитектура ЭВМ и машинное моделирование. Таганрог: Изд-во ТРТИ, 1989.
38. Семерников, Е. А. Два подхода к созданию макрообъектов для реконфигурируемых вычислительных систем на основе ПЛИС Текст. /Е.А. Семерников, В. Б. Коваленко, М. С. Кочерга // Материалы Второй.
39. Международной научной конференции «Суперкомпьютерные системы и их применение» (SSA'2008). Минск: ОИПИ HAH Беларуси, 2008. — С. 60−64.
40. Левин, И.И. Структурно-процедурное программирование. Тезисы докладов Международой научной конференции «Искусственный интеллект2000», п. Кацивели, 2000. С. 148−150.
41. Левин И. И. Методика организации высокоэффективных параллельных вычислений в многопроцессорных системах. Тезисы докладов Международной научной конференции «Искусственный интеллект-2000», п. Кацивели, 2000. -С. 142−144.
42. Клоксин, У. Программирование на языке Пролог Текст.: монография / У. Клоксин, К. Меллиш. М.: Мир, 1987.
43. Стерлинг, Л. Искусство программирования на языке Пролог Текст.: монография / Л. Стерлинг, Э. Шапиро. М.: Мир, 1990. — 235 с. 71. http://digital.sibsutis.ru/digital/MS.htm.
44. Гудков, В. А. Методы трансляции операторов условного перехода на языке COLAMO в структурную составляющую Текст. / В. А. Гудков // Материалы Международной научно-технической конференции.
45. Суперкомпьютерные технологии: разработка, программирование, применение (СКТ-2010)". ТА.-Таганрог: Изд-во ГШЮФУ, 2010. -С.202−206.
46. Карпов, Ю. Г. Теория и технология программирования. Основы построения трансляторов Текст.: монография / Ю. Г. Карпов: СПб.: БХВ-Петербург, 2005. — 272 с.
47. Хантер, Р: Проектирование и конструирование компиляторов Текст.: монография / Р. Хантерпер. с англ. М.: Финансы и статистика, 1984. — 232 с.
48. Вайнгартен, Ф. Трансляция языков: программирования Текст.: монография /Ф. Вайнгартен.-М.: Мир, 1977.
49. Ахо, А. Теория синтаксического анализа, перевода и компиляции Текст.: монография / А. Ахо, Дж. Ульман. М.: Мир, 1978.
50. Вьюкова, Н. И. Многомерная конвейеризация циклов Текст. / Н. И. Вьюкова, C.B. Самборский //Программные продукты и системы, 2008. -№ 4.
51. Lamport Leslie. The Parallel execution of DO loops, Communications of ACM, 17(2): 83−93, 1974.
52. Самборский, C.B. Формулировка задачи планирования линейных и циклических участков кода Текст. / C.B. Самборский // Программные продукты и системы. 2007. — № 3.
53. Лебедев, В.Н.
Введение
в системы программирования Текст.: монография / В. Н. Лебедев. М.: Статистика, 1975. — 312 с.
54. Федотов, И. Е. Некоторые приемы параллельного программирования: Текст.: учебное пособие / И. Е. Федотов. М.: Изд-во МГИРЭА (ТУ), 2008. -188 с.