|
|||||||
Методы распараллеливания программ в оптимизирующем компиляторе для ВК семейства Эльбрус
Время создания: 08.01.2020 22:56
Автор: В.Ю.Волконский, А.В.Брегер, А.В.Грабежной, А.В.Ермолицкий, Л.Е.Муханов, М.И.Нейман-заде
Текстовые метки: эльбрус, микропроцессор, компилятор
Раздел: Компьютер - Аппаратное обеспечение - Микропроцессор Эльбрус
Запись: xintrea/mytetra_syncro/master/base/1578513371qi5ngo7u0w/text.html на raw.github.com
|
|||||||
|
|||||||
Методы распараллеливания программ в оптимизирующем компиляторе для ВК семейства Эльбрус В.Ю.Волконский, ОАО «ИНЭУМим. И.С.Брука», нач. отделения, vol@mcst.ru; А.В.Брегер, ЗАО «МЦСТ», научн. сотр., breger@mcst.ru; А.В.Грабежной, ЗАО «МЦСТ», нач. сектора, grab_av@mcst.ru; А.В.Ермолицкий, ЗАО «МЦСТ», ст. научн. сотр., era@mcst.ru; Л.Е.Муханов, ЗАО «МЦСТ», ст. научн. сотр., mukhanov@mcst.ru; М.И.Нейман-заде, ЗАО «МЦСТ», зам. нач. отделения, muradnz@mcst.ru; 1. Введение Большинство современных микропроцессорных архитектур использует различные методы повышения производительности исполняемых программ за счет их распараллеливания, а именно: • конвейеризация исполнения операций - разбиение процесса исполнения на стадии (такты) и одновременное исполнение операций, находящихся на разных стадиях конвейера; • параллельное (одновременное) исполнение нескольких операций, находящихся на одной стадии конвейерного исполнения; • применение одной операции к нескольким данным одновременно; • поддержка многопоточного исполнения внутри одного процессорного ядра, на нескольких процессорных ядрах или в многопроцессорной системе, работающей на общей памяти; • поддержка неоднородной многоядерной или многопроцессорной системы, в которой ядра могут работать одновременно, используя при этом локальную или общую память. Эти методы распараллеливания требуют поддержки в оптимизирующих компиляторах, т.к. обычные языки программирования, такие как C, C++, Fortran (есть операции над векторами), являются языками последовательного программирования. В работе рассматриваются методы распараллеливания программ в компиляторах, которые ориентируются на аппаратную поддержку указанных видов параллелизма, особенно коротких векторов и потоков управления на общей памяти. Для исследования используется оптимизирующий компилятор с языков C, C++, Fortran, реализованный для микропроцессорных архитектур «Эльбрус» и «МЦСТ-R» (совместима с архитектурой SPARC) [1]. Обе архитектуры поддерживают конвейерное параллельное исполнение операций, набор целочисленных и вещественных операций над короткими векторами, а также многоядерность и многопроцессорность на общей памяти с когерентным доступом. Результаты представлены для архитектуры «Эльбрус» (и вычислительного комплекса (ВК) «Эльбрус-3М» [2]), т.к. она обеспечивает наиболее полную аппаратную поддержку данных видов параллелизма, и поддержку со стороны оптимизирующего компилятора, применяемую в основном к циклам, т.к. на них приходится значительное время работы программ. ... См. далее прикрепленный файл. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|