Автореферат (Оптимизация размещения массивов в общей памяти), страница 3
Описание файла
Файл "Автореферат" внутри архива находится в папке "Оптимизация размещения массивов в общей памяти". PDF-файл из архива "Оптимизация размещения массивов в общей памяти", который расположен в категории "". Всё это находится в предмете "физико-математические науки" из Аспирантура и докторантура, которые можно найти в файловом архиве СПбГУ. Не смотря на прямую связь этого архива с СПбГУ, его также можно найти и в других разделах. , а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата физико-математических наук.
Просмотр PDF-файла онлайн
Текст 3 страницы из PDF
Случай, когда размер матрицы А равен У*2048 и размер матрицы В равен 2048:р У. Тестирование проводилось на вычислительной системе с процессором 1пге1 Соге 17-3820 с выключенной опцией ТигЬо Воок. Размер кеш-памяти 1.1 равен 64 КБ, размер кеш-памяти 12 равен 1 МБ, размер кеш-памяти 1.3 равен 10 МБ, тактовая частота 3.6 ГГц. В качестве компилятора использовался 1пге1 С++ Сотрозег ХЕ.
Пиковая производительность вычислительной системы равна 115,2 ГФЛОГ1С. Производительность программной реализации считалась в гигафлопсах по 2рФ, Ф„М, формуле Рег1оппапсе = ', -" ', где Т- время работы программы в секундах. 10' Т Согласно результатам всех проведенных численных экспериментов, для значений Х более 2000 программная реализация предлагаемого алгоритма по производительности превосходит программные реализации алгоритмов МК1., Р1.АБМА, ОрепВ1.АЯ, и его производительность составляет в среднем 98-99% от теоретической производительности процессора.
В четвертой главе приводится алгоргггм автоматизации блочных размещений данных в системе ОРС. Такая автоматизация реализована автором на уровне директив компилятора, описание которых приводится в параграфе 4.2. Перед объявлением блочно размещаемого массива указывается директива яргарпа орк аггау с$ес1аге(пате, апау й|пепяоп яке!!М, Ыос1 лепя!оп яке 1!М) (1) где пате — имя размещаемого массива, аггау йтепя1оп яке Иат — массив размерностей размещаемого массива по каждому измерению, Ыос$с йппнв1оп я1ке 1Ы вЂ” массив размерностей блока по каждому измерению. В данной директиве указывается информация о размере массива, а также размере блоков, на которые указанный массив стоит разбить. Оператор, в котором производится выделение памяти для массива А, следует пометить директивой (2) Фргарпа орз аггау а11оса1е(нагие) Директива (2) заменяет исходный оператор выделения памяти новым оператором освобождения памяти, в котором выделяется память под блочно размещенный массив.
Блочно размещенный массив должен иметь размер кратный размеру блока, т.к. выполнение данного условия на практике сильно упрощает генерацию индексных выражений. Аналогично, оператор, в котором производится освобождение памяти массива А, следует пометить директивой Мргаяша оря апау ге1еазе (паше) Директива (3) заменяет исходный оператор освобождения памяти на новый оператор освобождения памяти, в котором освобождается память, выделенная под блочно размещенный массив. В параграфах 4.3-4.4 приводится описание программных проектов (ОР$50ешо и %еЬ-распарачлеливатель), в которых можно протестировать работу данных директив.
В параграфах 4.5-4.5 строится алгоритм обработки компилятором директив блочного размещения данных. Параграф 4.7 содержит результаты численных экспериментов, в которых сравнивается время работы программ, скомпилированных в двух режимах — без директив блочного размещения данных н без ннх. Для проверки эффективности и корректности представленных директив написан пакет прикладных блочных программ, аннотированных директивами блочного размещения данных. В таблице 3 приведены результаты сравнения производительности программ, скомпилированных с включенной опцией блочного размещения данных, а также без нее. Тестирование производилось на компьютере с процессором 1пге1 Соге 15-2410М Ргосеззог (ЗМ Сасне, 2.90 бНх).
В качестве компилятора использовался 1пге! С++ Согпрозег ХЕ 2013 ЯР1 Гог 1.1пих, 1)ратасе 3. Таблица 3. Результаты тестирования директив блочного размещения в памяти компилятором 1пге1 С++ Сотрозег ХЕ 2013 ЯР1 Гог Елях, 1)рдаге 3 азваиие алгоритма азмер атриц азмер лока ремя работы лгоритма ез директи в сек) рема «боты лгоритма дирек- ивами сек.) скореиие лочное Ш- азложенне ма ицы 56х256 7.4 1.9 096х4096 1.14 ыстрое двумерное еоб азование Ф ье 56х256 7.49 1.17 1.15 лочный алгоритм лойда 048х1024 лочное Яй.- азложение ма нцы 56х256 19.6 17.11 1.15 048х2048 56х256 14.93 1.33 лочное умножение ад атных мат иц лочное возведение 048х2048 а ицы в квад ат 56х256 1.37 17.36 17 Как видно из результатов таблицы. ускорение, получаемое за счет использования представленного преобразования блочного размещения данных, сильно зависит от входной программы.
Так, для программы, реализующей блочное ЯК-разложение матрицы, ускорение составляет 1.15 раза, в то время как для программы, реализующей быстрое блочное возведение матрицы в квадрат, ускорение составляет 4.69 раз. Следует отметить, что автоматизация блочного размещения массивов является дополнением к преобразованию программы к виду с блочными вычислениями и дает дополнительное ускорение. Если автоматизировать переход к блочным вычислениям, то обе автоматизации возможны одновременно. и программист должен будет лишь один раз указывать в прагмах размеры блоков, этим самым„минимизируя интеллектуальные усилия.
Автоматизацию преобразования программы к блочным вычислениям выполняют другие разработчики ОРС. В заключении подводятся итоги исследований. представленных в диссертации. Описываются основные полученные результаты„решенные задачи, обсуждается их новизна и практическая значимость, Обосновывается достижение цели диссертации. Заключение В диссертации проведены исследования„направленные на оптимизацию работы с памятью существующих вычислительных систем. Построенная модель времени выполнения программ позволяет оценивать время работы программ. В ней учитываются частота процессора, а также различные характеристики иерархии кеш-памяти, такие как латентность, физический размер, ассоциативность.
Учет этих параметров позволяет прогнозировать более точно время выполнения программ, что было подтверждено численными экспериментами в параграфах 2.1-2.2. Таким образом, описанная в главе 2 модель времени выполнения программ является решением выносимого на защиту положения 3. В третьей главе описан и реализован высокопроизводительный алгоритм умножения матриц. Этот алгоритм может использоваться для ускорения алгоритмов линейной алгебры, которые сводятся к задаче умножения матриц ~например, ЯК разложение матрицы). Описанный алгоритм яв кается новым.
Его новизна состоит в использовании нестандартного иерархического блочного размещения матриц. Такое размещение матриц позволяет уменьшить количество кеш-промахов и тем самым увеличить общую производительность алгоритма. Таким образом, в данной главе раскрывается решение положения 1, выносимого на защиту. В четвертой главе приводится алгоритм автоматизации блочных размещений данных, реализованный в системе ОРС. Такая автоматизация реализована на уровне директив компилятора языка Си.
Реализована также поддержка блочных размещений для программ„написанных на языке Фортран. С целью внедрения автоматического блочного размещения данных в программах, написанных на языке ФОРТРАН, автором был реализован парсер языка ФОРТРАН 77/90 в системе ОРС, который был апробирован на пакете АСЕЕВ. Этим самым, в данной главе раскрывается решение положения 2, выносимого на защиту. И так, все поставленные в диссертации задачи решены, и цель диссертации достигнута. Результаты диссертации внедрены в научных исследованиях (при разработке Оптимизирующей распараллеливающей системы мехмата Южного федерального университета) н в образовании ~в магистерской программе «Высокопроизводительные вычисления и технологии параллельного программирования»). Можно выделить следующие рекомендации по применению полученных результатов: 1.
Предлагаемый алгоритм умножения матриц может использоваться для ускорения работы существующих пакетов прикладных программ, написанных для процессоров с поддержкой А УХ, и использующих умножение матриц в качестве подзадачи. При этом программист должен учитывать, что подаваемые на вход матрицы должны храниться в памяти блочно. 2.
Директивы, реализованные в компиляторе языка Си системы ОРС, позволяющие автоматически бл очно размещать матрицы, могут использоваться для ускорения программ. 3. Полученная модель времени выполнения может использоваться для прогнозирования времени работы некоторых работающих с матрицами программ и может использоваться для построения подобных моделей для других случаев. Перспективы дальнейшей работы таковы: ° Адаптация полученных в диссертации методов оптимизации к вычислительным архитектурам близкого будущего и исследование влияния этих методов на производительность оптимизируемых программ. я Применение изложенных методов оптимизации программ к другим задачам, требующим болыпого обьема вычислений. Публикации автора по теме диееертации в журналах из перечня российских рецензируемых научных журналов, в которых должны быть опубликованы основные научные результаты диссертаций на соискание учйных степеней доктора и кандидата наук 1.
Юрушкин, М.В. Двойное блочное размещение данных в оперативной памяти при решении задачи умножения матриц 1Текст1 / М.В, Юрушкин // Программная инженерия. — 2016. — С. 132-139. 2. Юрушкин, М.В. Автоматизация блочного размещения данных в памяти компилятором языка Си ГТекст1 / М. В. Юрушкин !! Программная инженерия.— 2013. — С. 355-358.
— 18БХ 2220-3397. 3. К)рушкин, М.В, Новым процессорам — новые компиляторы 1Текст) l М,В. Юрушкин, Б.Я. Штейнберг // Открытые системы. СУБД. — 2013. — Т.1. — С. 55- 58. — 188Х 1028-7493. 4. Юрушкин, М. В. Предметно-ориентированные технологии создания виртуальных рабочих пространств в среде облачных вычислений С1анге 1Текст1 l А. В. Духанов, Е. В. Болгова, Л. Р. Гервич, В. Г.
Колпаков. Е. Н. Кравченко, И. И. Курочкин, Е. Д, Масленников, И. В. Оферкин, А. О. Рубцов, С. А. Смирнов, О. Б. Штейнберг, М. В. Юрушкин !! Известия ВУЗов. Приборостроение. — Т. 5. — 2013. 5. Юрушкин, М.В. Программирование экзафлопсных систем 1Текст) / Л.Р. Гервич, Б.Я. Штейнберг, М.В. Юрушкин // Открытые системы. СУБД.
— Т. 8.— 2013, — С. 26-29. — 1ЮХ 1028-7493. В изданиях, иидексируемых в реферативных базах Бсорпя н %еЬ 01* Бс1епсе 6. Юрушкин, М.В. Автоматизация распараллеливания процтамм с блочным размещением данных Г1'екст1 / Л.Р. Гервич„Е.Н. Кравченко, Б.Я. Штейнберг, М.В.