MyTetra Share
Делитесь знаниями!
Методы распараллеливания программ в оптимизирующем компиляторе для ВК семейства Эльбрус
Время создания: 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]), т.к. она обеспечивает наиболее полную аппаратную поддержку данных видов параллелизма, и поддержку со стороны оптимизирующего компилятора, применяемую в основном к циклам, т.к. на них приходится значительное время работы программ.

...


См. далее прикрепленный файл.


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования