Научная статья на тему 'Организация эффективных вычислений для реконфигурируемых вычислительных систем на основе ПЛИС'

Организация эффективных вычислений для реконфигурируемых вычислительных систем на основе ПЛИС Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
272
84
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Доронченко Ю. И.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Организация эффективных вычислений для реконфигурируемых вычислительных систем на основе ПЛИС»

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Коваль В.Н., Рябчун С.Г., Сергиенко И.В., Якуба А.А. Суперкомпьютерный проект Института кибернетики НАН Украины // Искусственный интеллект, № 3, 2005. С.37-42.

2. Коваль В.Н., Рябчун С.Г., Сергиенко И.В., Якуба А.А. Суперкомпьютерные кластерные системы - организация вычислительного процесса» // Проблеми програмування, 2006, № 2-3. С.197 - 210.

3. http://www.parallel.ru/parallel/about/lab.html

4. http://boinc.berkeley.edu/

5. http://www.globus.org/toolkit/about.html

6. http://www3.niu.edu/mpi/

7. R.H.Castain, T.S.Woodall, D.J.Danial, J.M.Squyres, B.Barrett, G.E.Fagg «The Open Run-Time Environment (OpenRTE): A Transparent Multi-Cluster Environment for High-Performance Computing», http://www.open-rte.org/papers/euro-pvmmpi-2005-orte/ http://parallel.ru/ftp/tests

Ю.И. Доронченко

ОРГАНИЗАЦИЯ ЭФФЕКТИВНЫХ ВЫЧИСЛЕНИЙ ДЛЯ РЕКОНФИГУРИРУЕМЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ НА ОСНОВЕ

ПЛИС

Несмотря на бурное развитие средств вычислительной техники, современные серийно выпускаемые компьютеры не позволяют в приемлемое время решать сложные научнотехнические задачи, требующие выполнения большого количества операций. Одним из способов ускорения вычислений является повышение тактовой частоты. B настоящее время происходит непрекращающийся рост рабочих частот современных вычислительных средств, однако в обозримом будущем увеличить данную характеристику можно максимум на порядок, что совершенно недостаточно для решения задач большой сложности. Следовательно, необходимо увеличивать число одновременно обрабатываемых данных за счет распараллеливания и конвейеризации вычислений. Этот путь имеет резерв производительности на несколько порядков. Однако архитектура традиционных многопроцессорных систем не обеспечивает пропорциональный рост производительности при увеличении числа процессоров [1]. Более того, при организации параллельного вычислительного процесса производительность системы может снизиться из-за возрастания системных потерь.

Наиболее эффективно вычислительная задача может быть решена с помощью создания специализированных вычислительных устройств, структура которых адекватна структуре решаемой задачи. Однако создание специализированного вычислителя для решения каждой задачи является чрезвычайно дорогостоящим процессом. Решается эта проблема созданием многопроцессорных вычислительных систем с программируемой архитектурой (МВС ПА). Технология создания таких систем разработана в Научноисследовательском институте многопроцессорных вычислительных систем им. академика А.В. Каляева Таганрогского государственного радиотехнического университета (НИИ МВС ТРТУ) под руководством академика РАН А.В. Каляева. МВС ПА позволяют достичь высокой реальной производительности путем формирования в рамках своей архитектуры виртуальных специализированных вычислителей со структурой, адекватной структуре решаемой задачи или ее фрагмента.

В НИИ МВС ТРТУ создан целый ряд МВС ПА на основе самых современных ПЛИС. Структуры на основе ПЛИС способны адаптироваться к структуре решаемой задачи на уровне логических элементов, что в сочетании с принципами программирования архитектуры позволяет увеличить удельную производительность системы за счет эффективного использования аппаратных средств. МВС ПА предназначены для выполнения алгоритмов цифровой обработки сигналов, символьной

обработки, математической физики и мониторинга систем цифровой связи. Ниже приведены последние разработки НИИ МВС ТРТУ в области высокопроизводительных вычислительных устройств.

Базовый модуль 4К32 (рис.1) создан на основе ПЛИС Virtex II Pro XC2VP100. Базовый модуль выполнен в конструктиве Евромеханика 6U (233,35 x 160) с шиной VME64X и имеет 100 LVDS каналов для обмена с внешними устройствами с суммарной скоростью обмена до 20 Гбит/сек. Объем памяти базового модуля 256 Мбайт, производительность - 64 Г флопс, рабочая частота - 200 МГ ц.

Базовый модуль 16М50 (рис.2) создан на основе шестнадцати ПЛИС Virtex 4 XC4V40. Контроллер базового модуля содержит встроенный процессор РРС405. Имеются 112 LVDS каналов для обмена с внешними устройствами со скоростью до 28 Гбит/сек. Объем памяти 1 Гбайт, производительность - 50 Г флопс, рабочая частота - 160 МГц. Потребляемая мощность - 0,16 КВт.

Рис. 1. Базовый модуль «ССПВ» Рис. 2. Базовый модуль «Медведь»

(4К32) (16М50)

На основе четырех базовых модулей 16М50 создана модульно-наращиваемая многопроцессорная вычислительная система (МНМС) (рис.3), обладающая производительностью 200 Гфлопс. Для увеличения производительной мощности предусмотрена возможность соединения нескольких изделий МНМС между собой.

Базовый модуль 8М64 (рис.4) создан на основе восьми ПЛИС Уйех 4 ХС4У80 и имеет 28 информационных ЬУБ8 каналов для обмена с внешними устройствами с суммарной скоростью обмена 1400 Мбит/сек. Производительность базового модуля 64 Г флопс, рабочая частота - 200 МГ ц.

Рис. 3. Минисуперкомпьютер Рис.4. Базовый модуль «Медведь-М»

«Медведь» (8М64)

Высокая удельная производительность представленных суперкомпьютеров на различных классах задач достигается не только за счет повышения тактовой частоты работы реализуемого устройства. Рост тактовой частоты влечет за собой увеличение числа прореживающих регистров, т.е. повышение латентности вычислительного устройства, а, следовательно, увеличение аппаратных затрат на реализацию этого устройства и уменьшение возможного числа устройств на всем ресурсе системы. Поэтому наиболее эффективным способом увеличения удельной производительности системы представляется применение методов, позволяющих минимизировать суммарные аппаратные затраты, требуемые для реализации всего вычислительного алгоритма, а также учитывающих особенности применения ПЛИС-технологии при решении вычислительно-трудоемких задач.

ПЛИС представляет собой регулярную структуру, основными элементами которой являются блоки ввода/вывода IOB; конфигурируемые логические блоки CLB; секции блочной памяти Block SelectRAM; блоки аппаратных умножителей; блоки аппаратной реализации цифровой обработки сигналов DSP; цифровые модули управления синхронизацией DCM; трассировочные ресурсы.

Конфигурируемый логический блок CLB включает в себя четыре одинаковые секции и два буфера с тремя состояниями. В состав каждой секции CLB входят два функциональных генератора, реализованных в виде четырехвходовых таблиц преобразования LUT, два запоминающих элемента, конфигурируемых как D-триггеры, и логика ускоренного переноса и каскадирования.

Для достижения высокой производительности вычислений необходимо создать сбалансированную конвейерную структуру, выполняющую обработку плотного потока данных, в которой обеспечивается аппаратная реализация функционально законченного графа задачи. При этом требуется выполнять синхронизацию промежуточных данных, получаемых на тех или иных стадиях алгоритма, что приводит к увеличению аппаратных затрат (рис. 5). Особенности архитектуры ПЛИС таковы, что цепи синхронизации, выполненные на триггерах, одновременно поглощают ячейки решающего поля ПЛИС. В этой связи аппаратные затраты на систему синхронизации могут быть соизмеримы с вычислительной структурой, поэтому целесообразно сосредоточиться на минимизации этих затрат.

Ж

step2

"■тЧ

X

STEPn

~¥г

Рис.5. Синхронизация в конвейере

Можно предложить ряд приемов, позволяющих, учитывая особенности архитектуры ПЛИС, а также специфику решаемых задач, сократить аппаратные затраты на синхронизацию конвейеров и тем самым повысить эффективность вычислений.

Одним из приемов является использование встроенных блоков аппаратных умножителей ПЛИС, блоков аппаратной поддержки устройств цифровой обработки сигналов, а также встроенных блоков памяти ПЛИС для хранения данных, реализации задержек и функций выбора. Это приводит к существенному росту доступного аппаратного ресурса, который тем выше, чем больше число встроенных блоков памяти в конкретной ПЛИС.

Следующим приемом является реализация глубоких разбежек между ступенями конвейера не на регистрах, а с использованием двухпортового ОЗУ, позволяющего проводить запись и чтение данных одновременно (рис. 6). Для формирования адресов записи и чтения используются счетчики записи Counter write и чтения Counter read необходимой разрядности. Запуск счетчика чтения производится с помощью схемы совпадения mc при достижении счетчиком записи значения, на которое необходимо задержать информацию. Для адресации нескольких ОЗУ можно использовать одни и те же счетчики. Очевидно, значения адресов записи и чтения не должны совпадать. Во избежание конфликтов при обращении к памяти, глубина ее должна быть не менее чем величина желаемой задержки плюс один такт. Исследования показали, что при наличии большого количества задержек даже на три такта, использование двухпортовой памяти вместо регистров позволяет существенно повысить плотность реализации проекта.

п

WE -CLK -

Рис. 6. Реализация глубоких разбежек с помощью двухпортового ОЗУ

Несмотря на то, что в каждой секции конфигурируемого логического блока ПЛИС аппаратно реализованы два D-триггера, связи с регистра на регистр автоматически занимают ячейки ПЛИС, что не позволяет эффективно задействовать имеющийся аппаратный ресурс. Поэтому целесообразно избавляться от подобных связей. Одним из методов эквивалентного преобразования схем является метод редукции регистров. Этот метод основан на замещении задержек входных параметров некоторой функции задержкой результата этой функции, и наоборот. Вариант простейшей редукции на примере рекурсивного фильтра представлен на рис. 7 - 8.

Рис. 7. Исходный граф алгоритма Рис. 8. Граф алгоритма после

оптимизации

В задачах, широко использующих рекурсивные вычисления, весьма затруднительно при построении конвейера оптимально выполнить синхронизацию потоков данных. Глубокие задержки, как правило, неизбежны, однако методы редукции позволяют максимально эффективно выполнять синхронизацию в конвейере. В общем случае методы редукции соответствуют двукратному (по времени и пространству) вложенному циклу и основаны на том, что вычисления на каждом шаге алгоритма распределяются во времени и пространстве таким образом, чтобы рекурсивные связи были минимальны.

Часто при построении параллельно-конвейерных вычислителей имеется возможность объединять конвейеры в пары или более сложные структуры, исключая многократное решение одного и того же вычислительного фрагмента. Такое объединение в один функциональный блок возможно, например, при обработке смежных или незначительно отличающихся друг от друга величин. Уже на этапе анализа алгоритма появляется возможность сгруппировать общие для объединенных конвейеров вычисления. Пример подобного преобразования показан на рис. 9. Два конвейера pipe1 и pipe2 выполняют некоторые преобразования Fb F2, F3 над двумя массивами данных Data и Data*. Эти массивы являются смежными друг к другу и отличаются единственным битом B. Тогда преобразование F1 можно свести к обработке одного бита B. В зависимости от структуры реализуемого алгоритма исключение неоднократного решения одного и того же вычислительного фрагмента можно выполнить и для других ступеней конвейера (F2, F3,...).

| Data | | Data*

Гpipel ^ 1 1 pipe2 , 1 | r r , •

| | F 1 I

! 1 '! 1

i 1 F 2 | | F 2 I

■ 1 ’

1 1 F □ 1 Г 3 I

Рис.9. Пример объединения конвейеров

Еще одной особенностью создания вычислителей на основе ПЛИС является преобразование логических функций к четырехместным. Как говорилось выше, в архитектуре ПЛИС фирмы ХШпх в состав каждого конфигурируемого логического блока СЬБ входят два функциональных генератора, реализованных в виде четырехвходовых таблиц преобразования ШТ. Это важное свойство позволяет существенно повысить плотность реализации алгоритма на уровне ячеек ПЛИС путем сведения логических функций к четырехместным. Пример подобного преобразования приведен на рис. 10, где функция У = /3 (х4, /2 (хз,Л (х^ Х2))) является эквивалентной функции У = Г(х1, Х2, Х3, Х4), реализованной с помощью одной таблицы преобразования ШТ.

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

Данные методы преобразования параллельно-конвейерных реализаций задач различных проблемных областей были экспериментально проверены для реконфигурируемых вычислителей, построенных на основе ПЛИС. При этом был обеспечен рост реальной производительности в 1,5 - 4 раза.

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Каляев А.В., Левин И.И. Модульно-наращиваемые многопроцессорные системы со структурно-процедурной организацией вычислений. М.: Янус-К, 2003. 380с.

В.А. Гудков, А.А. Гуленок, А.И. Дордопуло, Л.М. Сластен

СРЕДСТВА ПРОГРАММИРОВАНИЯ РЕКОНФИГУРИРУЕМЫХ МНОГОПРОЦЕССОРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ

В настоящее время параллельные программы, разработанные для многопроцессорной вычислительной системы с реконфигурируемой архитектурой (МВС), не могут быть выполнены на системе с другой конфигурацией и требуют полной переработки для других архитектур суперкомпьютеров. Это приводит к резкому росту временных затрат по созданию параллельно-конвейерных программ и к увеличению требований к квалификации разработчика. Следствием подобного состояния является сдерживание широкого применения реконфигурируемых высокопроизводительных систем, значительно превосходящих по эффективности многопроцессорные системы с традиционной архитектурой [1].

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

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

Предлагается в качестве базового языка ресурсонезависимого программирования использовать язык параллельного программирования СОЬЛМО [2]. Формально язык СОЬЛМО предназначен для описания параллельной структурнопроцедурной организации вычислений (СПОВ) [3]. Структурно-процедурные вычисления представляют собой единую управляющую программу вызова структурно-реализуемых фрагментов задачи. Каждый фрагмент реализуется аппаратно на основе метода потока операндов. СПОВ наиболее эффективно выполняется на специализированном вычислителе, состоящем из множества процессорных эле-

i Надоели баннеры? Вы всегда можете отключить рекламу.