принципы адаптации вычислительных алгоритмов




Скачать 413.33 Kb.
Названиепринципы адаптации вычислительных алгоритмов
страница7/10
Дата22.10.2012
Размер413.33 Kb.
ТипДокументы
1   2   3   4   5   6   7   8   9   10

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


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

  • Какой из предложенных способов распараллеливания задачи аппроксимации климатических спектров окажется наиболее производительным?

  • Зависит ли производительность адаптированного алгоритма от задаваемой при запуске конфигурации ядра, и, если зависит, каким образом выбирать оптимальную в плане производительности конфигурацию?

  • Какие особенности исследуемой архитектуры влияют на получаемую производительность, и каким образом проявляется это влияние?

Ответам на эти вопросы посвящена следующая глава.

Глава 3. Анализ параллельной производительности

    1. Сравнение параллельных реализаций задачи аппроксимации климатических спектров


В этом разделе сравниваются результаты, полученные при распараллеливании задачи аппроксимации климатических спектров тремя способами, описанными в предыдущей главе. Сравнение производилось на GPU-устройстве nVidia GeForce 9800M GTX с четырнадцатью мультипроцессорами. Результаты представлены на рис. 11.



Рис. 11. Производительность различных параллельных реализаций задачи аппроксимации спектров: A – распараллеливание по данным, B – распараллеливание подсчета целевой функции внутри блока, C – распараллеливание подсчета целевой функции на все потоки.


Как видно из рис. 11, наиболее выгодным в плане производительности оказался способ распараллеливания по данным. Этот факт объясняется двумя причинами. Во-первых, при распараллеливании по данным, выполнение ядра занимает существенно большее время, чем при распараллеливании вычисления целевой функции, а значит, и уменьшается доля накладных расходов, связанная с вызовом ядра, копированием данных и т.д., что видно на рис. 12. Во-вторых, структура спектра, представляющего собой матрицу 24 на 25 значений, не позволяет равномерно распределить вычисление целевой функции между потоками GPU-устройства, число которых обычно кратно тридцати двум, что создает дисбаланс, ведущий к неполной загрузке GPU-устройства.



Рис. 12. Соотношение времени работы ядра и времени, затрачиваемого на дополнительные действия: A – распараллеливание по данным, B – распараллеливание подсчета целевой функции внутри блока, C – распараллеливание подсчета целевой функции на все потоки.


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

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


Анализ влияния конфигурации ядра на получаемую производительность проведен для способа распараллеливания алгоритма аппроксимации спектров, основанного на декомпозиции по данным (рис. 7), при котором в каждом потоке выполняется подсчет значения целевой функции для своего набора входных данных. Предметом исследования являлось влияние конфигурации системы на получаемое ускорение, а так же оценка составных частей времени работы алгоритма. Для оценки ускорения проводилось сравнение времени работы алгоритма при использовании GPU-устройства nVidia GeForce 8800 Ultra и времени обработки тех же данных на одном ядре процессора Intel Core 2 Duo 2.3 GHz.

Зависимость получаемого ускорения от конфигурации ядра (число потоков в блоке, умноженное на число блоков) представлена на рис. 13.



Рис.13. Зависимость ускорения от конфигурации ядра

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

На рис. 14 представлены результаты, полученные в процессе измерения составных частей времени работы алгоритма на GPU-устройстве:

(12)

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

Заметим, что время исполнения ядра практически не меняется с увеличением числа блоков от 4 до 32, а при увеличении числа блоков до 48 происходит резкий скачок времени работы ядра. Время, затрачиваемое на работу с памятью, растет при этом линейно (так как с увеличение числа блоков увеличивается и количество входных и выходных данных). Надо заметить, что это время в рассматриваем случае составляет существенную часть от общего времени. Таким образом, попутно можно сделать вывод о том, что в задачах, использующих большие и, возможно, повторяющиеся наборы данных, следует избегать повторного копирования и выделения памяти там, где это возможно.



Рис. 14. Составные части времени работы

Тот факт, что время выполнения ядра некоторое время не изменяется при увеличении числа блоков в конфигурации объясняется особенностью обращения мультипроцессоров к памяти. Если на одном мультипроцессоре, в соответствии с конфигурацией, выполняется одновременно несколько блоков, то, в то время как процессы одного блока ждут данные из памяти, на мультипроцессоре могут выполняться арифметические операции других блоков. Схема на рис. 15 поясняет данное утверждение: первоначально при увеличении числа блоков (а, значит, и количества входных данных) общее время работы практически не меняется.



Рис. 15. Одновременное выполнение блоков на мультипроцессоре GPU-устройства.


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

В тот момент, когда число блоков начинает превышать некоторое критическое значение, определяемого максимальным числом блоков, которое возможно запустить на одном мультипроцессоре при заданном размере блока и заданном ядре происходит резкое увеличение времени работы. Это число зависит то того, сколько ресурсов мультипроцессора используется одним потоком заданного ядра. Зависимость максимального числа блоков от числа регистров и размера разделяемой памяти, используемой ядром можно найти в nVidia Occupancy Calculator [15].

Изучим влияние конфигурации ядра на производительность GPU-реализации алгоритма более подробно и попробуем получить теоретическую модель производительности. Для этого упростим ситуацию, исключив из рассматриваемого выше алгоритма недетерминированность, сведя его к многократному подсчету интеграла методом прямоугольников, и проведем ряд измерений с различными параметрами конфигурации ядра.

На рис. 16 представлена зависимость производительности ядра (количество обработанных данных, отнесенное ко времени работы ядра) от числа блоков в конфигурации ядра для различного числа потоков на блок.



Рис. 16. Производительность ядра

Как видно из рис. 16, при увеличении числа блоков, а значит и вычислительной нагрузки производительность ядра некоторое время растет, затем происходит резкий спад, за ним – рост производительности, затем – опять резкий спад и т.д. При этом пиковые значения производительности для разных размеров блока различаются. Таким образом, для определения оптимальной с точки зрения производительности конфигурации, требуется выбрать размер блока с наибольшими пиковыми значениями производительности. А затем – выбрать число блоков, для которого это пиковое значение достигается. Чаще всего это задача решается экспериментально – путем перебора возможных конфигураций ядра. Однако решаемая задача имеет специфическую особенность – при увеличении числа блоков количество вычислений, осуществляемое одним блоком, не изменяется, пропорционально увеличивается лишь общая работа осуществляемая ядром. Для таких задач оптимальную конфигурацию ядра можно выбрать аналитически, используя описанную далее модель производительности.
1   2   3   4   5   6   7   8   9   10

Похожие:

принципы адаптации вычислительных алгоритмов iconпринципы адаптации вычислительных алгоритмов к архитектуре графических акселераторов
Целью работы является изучение ключевых особенностей отображения вычислительных алгоритмов на gpu -архитектуру, выявление ряда факторов,...
принципы адаптации вычислительных алгоритмов iconЗадача параметрической аппроксимации двумерной функции с использованием метода случайного поиска 10
Принципы адаптации вычислительных алгоритмов под параллельную архитектуру графических акселераторов
принципы адаптации вычислительных алгоритмов iconОсобенности адаптации вычислительных алгоритмов под параллельную архитектуру графических акселераторов
В работе обсуждаются вопросы отображения вычислительных алгоритмов на параллельную архитектуру gpu-акселератора. В качестве примера...
принципы адаптации вычислительных алгоритмов iconПрограмма вступительного экзамена в магистратуру по направлению подготовки 231000. 68 «Программная инженерия»
...
принципы адаптации вычислительных алгоритмов icon1. цели и задачи дисциплины, ее место в учебном процессе согласно гос впо в дисциплину «Вычислительные системы, сети и телекоммуникации» должно включаться
Вычислительных машин: общие принципы построения и архитектуры вычислительных машин, информационно-логические основы вычислительных...
принципы адаптации вычислительных алгоритмов iconАлгоритмы
Основы алгоритмизации. Понятие об алгоритме. Применение алгоритмов. Свойства алгоритмов. Типы алгоритмов: линейные, циклические,...
принципы адаптации вычислительных алгоритмов iconСодержание, основные понятия
Понятие алгоритма, свойства алгоритмов. Использование алгоритмов, система команд исполнителя. Способы записей алгоритмов. Формальное...
принципы адаптации вычислительных алгоритмов iconОглавление 4
Архитектура графических акселераторов, средства отображения на них вычислительных алгоритмов и исследуемые алгоритмы 10
принципы адаптации вычислительных алгоритмов iconБилет №4
Понятие алгоритма: свойства алгоритмов, исполнители алгоритмов. Автоматическое исполнение алгоритма. Способы описания алгоритмов....
принципы адаптации вычислительных алгоритмов iconТическая логика и теория алгоритмов
Темпоральные логики высказываний линейного времени и вычислительных деревьев: их синтаксис и семантика
Разместите кнопку на своём сайте:
Библиотека


База данных защищена авторским правом ©lib.znate.ru 2014
обратиться к администрации
Библиотека
Главная страница