Все основные статьи мартовского номера целиком посвящены одной теме "Реконфигурируемый компьютинг" (Reconfigurable Computing). Приглашенными редакторами номера являются Дункан Бьюэль (Duncan Buell, University of South Carolina, Columbia), Тарек Эль-Газзави (Tarek El-Ghazawi, George Washington University,
Washington), Крис Гай (Kris Gaj, George Mason University, Fairfax, Virginia) и Владимир Киндратенко (Volodymyr Kindratenko,
University of Illinois at Urbana-Champaign, Urbana). Их вступительная заметка называется "High-Performance Reconfigurable Computing".
Высокопроизводительные реконфигурируемые компьютеры (High-Performance Reconfigurable Computer, HPRC) - это параллельные вычислительные системы, содержащие несколько микропроцессоров и
программируемых логических интегральных схем (Field Programmable Gate Array, FPGA). В настоящее время FPGA используются в качестве сопроцессоров, в которых выполняется небольшая часть
приложения, занимающая больше всего времени: 10% кода, выполнение которого занимает 90% общего времени. FPGA позволяют достичь этого за счет использования аппаратной реализации вычислений, хотя
имеются ограничения, накладываемые текущей архитектурой FPGA и общей пропускной способностью системы по передаче данных.
Теоретически вместо FPGA можно использовать любые устройства, изменяющие свою конфигурацию под управлением программ. Однако в настоящее время именно технология FPGA обеспечивает наивысший уровень
реконфигурируемости. На рынке FPGA доминируют компании Xilinx и Altera, однако на него начинают проникать и другие начинающие компании.
В последние несколько лет многие аппаратные системы стали напоминать параллельные компьютеры. Когда такие системы только появились, они не были масштабируемыми. Они состояли из единственной платы
с одним или несколькими устройствами FPGA, соединенной через шину микропроцессора или интерфейс памяти с единственной платой с одним или несколькими микропроцессорами. В современных параллельных
архитектурах SRC-6 и SRC-7 компании SRC Computers используется матричный переключатель, служащий для повышения уровня масштабируемости.
Кроме того, и традиционные поставщики высокопроизводительных компьютеров Silicon Graphics Inc. (SGI), Cray и Linux Networx внедрили FPGA в свои параллельные архитектуры. Наряду с SRC-7 в число
таких высокопроизводительных вычислительных систем входят SGI RASC RC100, а также XD1 и XT4 компании Cray. Компания Linux Networx фокусируется на разработке ускорительных плат и их соединении с
узлами персональных компьютеров для создания кластеров.
Что касается программного обеспечения, компания SRC Computers обеспечивает полуинтегрированное решение, по отдельности затрагивающее аппаратную (FPGA) и программную (микропроцессор) части
приложения. Аппаратная часть представляется с использованием языков Carte C или Carte Fortran в виде отдельной функции, которая отдельно компилируется и компонуется с откомпилированной (написанной на
обычных языках C или Fortran) программной частью, образуя одно приложение.
Другие поставщики аппаратуры используют сторонние инструментальные средства программирования, такие как Impulse C, Handel-C, Mitrion C или RC Toolbox компании DSPlogic. Однако эти средства имеют
дело только с частью приложения, выполняемой в FPGA, и для каждой машины имеется собственный прикладной интерфейс для вызова этих функций. В настоящее время средства Mitrion C и Handel-C поддерживают
платформу SGI RASC, а Mitrion C, Impulse C и RC Toolbox - Cray XD1. Масштабирование приложений в параллельных системах с несколькими узлами поддерживается только за счет библиотек поддержки обмена
сообщениями, таких как MPI.
FPGA вначале использовались в качестве соединительных логических схем и со временем обрели популярность в области встроенных систем. При использовании в вычислительных системах FPGA стали играть
роль внутренних процессорных элементов, подключаемых к шине центрального процессора. В этом случае центральный процессор не участвовал в вычислениях, а лишь выполнял роль препроцессора,
содействующего работе FPGA. Ограничения обоих этих сценариев использования FPGA привели к тому, что не были исследованы многие проблемы, имеющие большое значение для HPRC и научных приложений с
высокопроизводительными вычислениями. В число этих проблем входит потребность в средствах программирования, поддерживающих всю параллельную архитектуру. Такие инструментальные средства необходимы для
использования синергии аппаратной и программной частей приложения и полезны для изучения и понимания особенностей таких архитектур.
Требуются исследования и разработка средств профилирования и отладки приложений, выполняемых на реконфигурируемых параллельных архитектурах. Для обеспечения сокрытия от пользователей сложных
деталей аппаратуры нужна соответствующая поддержка со стороны операционной системы и программного обеспечения промежуточного уровня. Заслуживают исследований вопросы переносимости приложений. Кроме
того, требуется изучение новых архитектур микросхем, поддерживающих требования научных приложений к арифметике с плавающей точкой. Необходимо разрабатывать переносимые библиотеки, поддерживающие
научные приложений. Наконец, имеется потребность в более тесной интеграции архитектур микропроцессоров и FPGA для обеспечения интенсивного обмена данными между аппаратной и программной частями
приложения.
Для проведения успешной разработки различных программных и аппаратных средств, удовлетворяющих требования к HPRC, требуется стандартизовать хотя бы некоторые из этих работ. Было бы полезно, если
бы академические, промышленные и правительственные организации совместно работали над созданием сообщества, способного решить эти проблемы на должном интеллектуальном уровне, с учетом потребностей
конечных пользователей и опыта предыдущих реализаций. Уже наблюдаются некоторые признаки образования такого сообщества. С одной стороны, недавно создан консорциум OpenFPGA (www.openfpga.org), который будет заниматься, в основном, вопросами стандартизации. С другой стороны, при поддержке NSF Флоридский университет и
Университет им. Джорджа Вашингтона участвуют в работе Промышленно-академического центра высокопроизводительного реконфигурируемого компьютинга (Industry/University Center for High-Performance Reconfigurable Computing). Этот центр включает более двадцати организаций-членов, которые будут направлять университетские
исследовательские проекты.
Первая регулярная статья тематической подборки называется "Trident: от языка высокого уровня к аппаратным схемам" ("Trident: From High-Level Language to Hardware Circuitry"). Статью
представили Джастин Трип (Justin L. Tripp, Los Alamos National Laboratory), Мая Гокхэйл (Maya B. Gokhale, Lawrence Livermore
National Laboratory) и Кристофер Петерсон (Kristopher D. Peterson, Imperial College of London).
Реконфигурируемые суперкомпьютеры являются перспективными в областях биоинформатики, анализа текста и при решении других задач, требующих интенсивной обработки целых чисел небольшого размера. При
использовании традиционного подхода в реконфигурируемых суперкомпьютерах используются программируемые логические схемы (FPGA), повышающие возможности высокопроизводительных процессоров в кластерах.
Часто применяются FPGA с миллионами системных вентилей, специализированными арифметическими устройствами и мегабитной памятью на одном кристалле. В настоящее время подходы, основанные на
реконфигурируемой логике, развиваются в направлении поддержки задач с плавающей арифметикой. Реализованы несколько библиотек для поддержки плавающей арифметики (включая Quixilica Library компании
QinetiQ и FPLibrary Лиоского университета), вычислительные ядра и приложения в FPGA.
Хотя наличие ядер и приложений обеспечивает намного более высокую производительность, чем при использовании микропроцессоров, для достижения этих преимуществ требуются большие расходы на
программирование вручную на языке описания аппаратуры (hardware description language, HDL). Эта задача утомительна и чревата ошибками, поскольку такие языки не ориентированы на описание
алгоритмов, в особенности тех, в которых используются конвейеры операций с плавающей точкой.
Более подходящим подходом для отладки функциональных средств и повышения производительности труда программистов является создание компиляторов, транслирующих алгоритмы над данными с фиксированной
и плавающей точкой, которые представляются на языке высокого уровня (high level language, HLL), прямо в описание схем на HDL. В этом процессе, по существу, происходит синтез схем по их
описанию на HLL.
Такой подход реализован в проекте Trident, получившем в 2006 г. премию за один из лучших результатов в области разработки
инновационных технологий. В проекте разработана открытая среда для применения на FPGA вычислительных алгоритмов, представленных на языке C. Это обеспечивается путем отображения операций с плавающей
точкой программы на языке C в аппаратные модели, обрабатывающие данные с плавающей точкой, и автоматического размещения массивов чисел с плавающей точкой в банках памяти вне кристалла с
использованием четырех планировщиков и схемы конвейеризации циклов. Пользователи могут выбирать операции с плавающей точкой из разнообразных стандартных библиотек, в частности, FPLibrary и Quixilica,
или импортировать свои собственные операции.
Добавление новых аппаратных платформ происходит путем определения новых файлов описания интерфейсов и создания кода для связывания разработки с этими интерфейсами. Открытая природа Trident
позволяет пользователям быстро создавать прототипы аппаратуры на основе анализа данных и моделирования алгоритмов, представленных на HLL. Компилятор распространяется свободно вместе с исходными
кодами.
Ни в одном из других существующих в настоящее время исследовательских компиляторов, включая Riverside Optimizing Compiler for Configurable Computing (ROCCC) и Spark, не поддерживаются операции с плавающей точкой. В некоторых коммерческих компиляторах, таких как Impulse C и SRC Carte, операции с плавающей точкой поддерживаются на
уровне внешних библиотек. Однако эти компиляторы ограничивают программиста использованием специальных библиотек и обеспечивают отображение только на некоторые платформы. В отличие от этого, Trident
может использоваться разработчиками для проведения экспериментов, анализа и оптимизации с различными библиотеками поддержки плавающей арифметики и платформами FPGA.
Следующая статья написана Николасом Муром, Альбертом Конти, Мириам Лизер (Nicholas Moore, Albert Conti, Miriam Leeser, Northeastern University) и Лори Смит Кинг (Laurie Smith King, College of the Holy Cross, Worcester, Mass.) и
называется "Vforce: расширяемая инфраструктура для реконфигурируемого суперкомпьютинга" ("Vforce: An Extensible Framework for Reconfigurable Supercomputing").
В развивающей исследовательской области реконфигурируемых суперкомпьютеров мощность реконфигурируемой аппаратуры объединяется с возможностями традиционных архитектур суперкомпьютеров, состоящих из
нескольких процессорных узлов, между которыми возможен быстрый обмен данными. В последние годы появилось много таких архитектур, включая RASC RC100 от SGI, XD1 компании Cray и SRC-7 от SRC
Computers.
Многие приложения (в частности, приложения обработки изображений и сигналов), для которых при использовании реконфигурируемой аппаратуры обеспечивается ускорение в несколько раз, могут хорошо
распараллеливаться и на суперкомпьютерах. Например, крупнозернистый параллелизм в приложениях обработки изображений часто достигается путем разбиения изображения на разделы и нагрузки каждого узла
суперкомпьютера обработкой своей части изображения. Для обеспечения мелкозернистого параллелизма, например, на уровне обработки пикселей, может использоваться реконфигурируемая часть аппаратуры
узлов.
К сожалению, проблему представляет написание кода, переносимого между различными реконфигурируемыми суперкомпьютерными архитектурами. При текущем состоянии дел для каждой конкретной платформы
приходится писать свой высокоуровневый код приложения. Программист создает параллельный код на уровне всего приложения, затем оптимизирует приложение в расчете на конкретную архитектуру путем
выделения частей приложения, для которых существенно аппаратное ускорение, и, наконец, переписывает эти части приложения с использованием аппаратно-зависимого кода. Архитектуры суперкомпьютеров
различаются уровнями поддержки программирования, но в большинстве случаев код, специфичный для целевой архитектуры и аппаратуры программируемых логических схем (FPGA), требуется и для обработки
данных, и для пересылки данных между приложением и FPGA, и этот код переплетается с основным кодом приложения.
Область реконфигурируемых суперкомпьютеров является весьма изменчивой, поставщики вводят новые архитектуры и отказываются от предыдущих архитектур в течение коротких промежутков времени. Поэтому
приложения, в которых оптимизации, специфичные для аппаратуры FPGA, встроены в код, не подлежат переносу между разными реконфигурируемыми вычислительными архитектурами; для переноса приложения на
новую платформу его приходится переписывать. Для привнесения свойства мобильности в область реконфигурируемых суперкомпьютерных приложений требуется новая модель программирования.
Vforce (Vector, Signal, and Image Processing Library (VSIPL++) for Reconfigurable Computing)
представляет собой расширяемую среду для создания переносимых приложений для реконфигурируемых суперкомпьютерных архитектур. Vforce обеспечивает три основные возможности: прозрачный доступ к
специализированной аппаратуре на уровне приложения; возможность добавления новой аппаратуры на уровне среды; управление ресурсами во время исполнения на уровне системы. В Vforce API библиотеки VSIPL++ расширяется для обеспечения реализаций на основе реконфигурируемой аппаратуры, в которых в приложениях не требуется код, зависящий от особенностей
аппаратуры. Поскольку программистам не требуется детальное знание аппаратуры, сокращается время разработки и повышается уровень мобильности кода.
Кроме того, в среду Vforce на основе понятия обобщенного аппаратного объекта может подключаться новое реконфигурируемое вычислительное оборудование. Среда обеспечивает инфрастуктуру для поддержки
специфичных для аппаратуры битовых потоков, прикрываемых интерфейсами уровня приложений и пользовательскими функциями. Это позволяет легко переносить существующие приложения Vforce на новую
реконфигурируемую аппаратуру.
Поскольку в целевых реконфигурируемых суперкомпьютерных платформах, поддерживаемых Vforce, имеется различное число процессоров и FPGA, среда включает менеджер ресурсов времени выполнения
(runtime resource manager, RTRM), обеспечивающий динамическое связывание кода приложения с конкретной реконфигурируемой аппаратурой, балансировку нагрузки и совместное использование ресурсов.
Наконец, Vforce обеспечивает опциональную поддержку на уровне приложения, позволяющую параллельно исполнять аппаратные и программные функции.
Авторами статьи "Достижение высокой производительности с использованием компьютинга на основе FPGA" ("Achieving High Performance with FPGA-Based Computing") являются Мартин Хербордт, Том
ван Курт, Йонгфенг Гу, Бхарат Сукхвани, Эл Конти, Джош Модел и Дуг Дисабелло (Martin C. Herbordt, Tom VanCourt, Yongfeng Gu, Bharat Sukhwani, Al Conti, Josh Model, Doug DiSabello, Boston University).
Ускорение высокопроизводительных вычислительных (HPC) приложений с использованием программируемых логических схем (FPGA) потенциально может обеспечить гигантскую производительность. Возможно
тысячекратное распараллеливание, в особенности при вычислениях с низкой точностью. Кроме того, поскольку управление конфигурируется на основе логики приложений, не требуется эмуляция служебных
инструкций, таких как индексация массива или организация цикла, и каждая операция может приносить реальную пользу.
В то же время при использовании FPGA имеются существенные проблемы, включающие низкую рабочую частоту: частота, на которой работают FPGA, составляет одну десятую от частоты развитых
микропроцессоров. Другая проблема следует из закона Амдала: для достижения показателей ускорения, требуемых для принятия пользователями новой технологии (предпочтительно ускорение не менее чем в 50
раз), существенному ускорению должно подвергнуться не менее 98% кода целевого приложения. В результате производительность приложений HPC/FPGA является исключительно чувствительной к качеству
реализации.
Классической является проблема достижения существенного ускорения на новой архитектуре без непомерного увеличения объема работ разработчиков, с сохранением гибкости, переносимости и удобства
сопровождения. В этом случае ускорение высокопроизводительных приложений с применением FPGA похоже на перенос однопроцессорных приложений на массивно-параллельные компьютеры (MPP), но имеются два
серьезных отличия. Во-первых, FPGA гораздо больше отличаются от однопроцессорных машин, чем от них отличаются MPP. Во-вторых, процесс распараллеливания кода для MPP, хотя и вызывает проблемы,
является существенно более изученным и поддерживаемым, чем перенос кода на FPGA.
Лоуренс Снайдер (Lawrence Snyder) определил три аспекта проблемы переноса на MPP. Во-первых,
параллельное решение с использованием P процессоров может ускорить наилучшее последовательное решение не более чем в P раз. Во-вторых, проблемы HPC имеют третий или четвертый порядок сложности, и
поэтому параллельные вычисления, хотя и являются необходимыми, обеспечивают только умеренные преимущества. Наконец, вся сила параллелизма должна быть направлена на решение проблемы, а не размыта в
накладных расходах на реализацию.
В последние 30 лет исследователи периодически обращаются к проблеме переносимости. К числу наиболее известных подходов относятся конструирование языков, оптимизирующие компиляторы, эмуляция,
применение средств и методов инженерии программного обеспечения, а также библиотек функций и приложений. Общепризнанной является потребность в компромиссах: либо следует ограничить разнообразие
архитектур или масштабность приложений, либо нельзя ожидать очень высокого уровня производительности или простоты реализации.
В лаборатории компьютерных архитектур и автоматизации проектирования Бостонского университета разработано 12 методов, позволяющих избегать
больших накладных расходов при реализациях, направленных на ускорение приложений биоинформатики и вычислительной биологии с использованием FPGA. В экспериментах использовался стандартный персональный
компьютер с сопроцессором-FPGA, подсоединенным через высокоскоростную шину. Для обоснования использования нестандартной архитектуры авторы стремились добиться 50-кратного ускорения работы приложений.
Выбирались распространенные приложения с потенциально высоким уровнем распараллеливания и низкой точностью. Используемые методы опирались на стандартные процедуры разработки FPGA, и при их реализации
использовался язык описания аппаратуры VHDL, поддерживаемый ранее разработанным инструментальным средством LAMP.
При выборе методов авторы руководствовались простотой их визуализации. Набор методов не является исчерпывающим, и функции некоторые методы пересекаются. Кроме того, авторы стремились избежать
низкоуровневых аспектов логического проектирования и синтеза, а также высокоуровневых проблем разбиения на разделы и планирования при параллельной обработке. Хотя проект ориентировался на приложения
биоинформатики и вычислительной биологии, методы применимы к другим областям, в которых применяются FPGA, в частности, к областям обработки изображений и сигналов.
Виктор Прасанна (Viktor K. Prasanna, University of Southern California) и и Джеральд Моррис (Gerald R.
Morris, US Army Engineer Research and Develpoment Center) представили статью "Вычисления над разреженными матрицами на реконфигурируемой аппаратуре" ("Sparse Matrix Computations on
Reconfigurable Hardware").
Реконфигурируемые компьютеры (reconfigurable computers, RC), в которых объединяются возможности процессоров общего назначения (general purpose processor, GPP) и программируемых
логических схем (FPGA), стали реальностью. FPGA можно конфигурировать таким образом, что, по сути, они становятся специализированными сопроцессорами. Кроме того, программировать для RC теперь можно с
использованием традиционных языков программирования высокого уровня (HLL), применяя компиляторы этих языков на языки описания аппаратуры (HDL).
Исследователи Центра инженерных исследований и разработок Армии США и университета Южной Калифорнии сосредотачивают свою работу на алгоритмах и архитектурах, способствующих развитию
высокопроизводительных реконфигурируемых научных приложений. Эти работы посвящаются устройствам плавающей арифметики, соответствующим стандарту IEEE 754; ядрам для поддержки приложений молекулярной
динамики; алгоритмам линейной алгебры и библиотекам для обработки разреженных матриц. В данной статье более подробно обсуждается последнее направление исследований.
Приложениям, связанным с обработкой разреженных матриц, свойственна существенная деградация производительности при выполнении на GPP. Классическим примером является задача умножения разряженной
матрицы на вектор (sparse matrix-vector multiply, SMVM), при решении которой возникает гораздо больше обращений к памяти, чем операций с плавающей точкой, и отсутствует регулярный характер
обращений к памяти. Более того, при больших значениях n вектора длины n не помещаются в кэш GPP, и поэтому мала вероятность повторного использования данных.
В течение последних 30 лет исследователи пытались ослабить проблему плохой производительности вычислений над разреженными матрицами, применяя различные подходы: переупорядочивание данных для
сокращения числа обращений к памяти; модификация алгоритмов для повышения вероятности повторного использования данных в кэше; создание специализированных контроллеров основной памяти. Однако,
несмотря на все усилия, эффективность операций над разреженными матрицами на GPP по-прежнему зависит от структуры разреженной матрицы.
В отличие от этого рабочая среда конвейерного компьютера с FPGA, в которой обращение к памяти происходит за один такт, не зависит от структуры разреженной матрицы. Таким образом, если
исследователи разрабатывают конвейерные архитектуры и обеспечивают ускорение выполнения за счет параллелизма, они могут показать преимущества использования RC для выполнения вычислений над
разреженными матрицами.
Разработки авторов статьи, основанные на использовании FPGA, позволили постичь ускорения матричных вычислений более чем в два раза. Эксперименты производились с применением чисто программной
реализацией операций над разреженными матрицами и с использованием аппаратуры FPGA. Применялись одни и те же алгоритмы, один и тот же компилятор, одна и та же платформа и одни и те же входные данные.
Несмотря на ограничения RC, существующих в настоящее время, исследования авторов свидетельствуют о том, что RC с FPGA являются существенным шагом на пути поиска средств повышения эффективности
приложений с плавающей арифметикой.
Авторами последней статьи тематической подборки являются Садаф Алам, Пратул Агарвал, Мелисса Смит, Джеффри Веттер (Sadaf R. Alam, Pratul K. Agarwal, Melissa C. Smith, Jeffrey S. Vetter, Oak Ridge National Laboratory) и
Дэвид Калига (David Caliga, SRC Computers). Статья называется "Использование устройств FPGA для ускорения биомолекулярных имитационных моделей" ("Using
FPGA Devices to Accelerate Biomolecular Simulations").
Несмотря на громадный потенциал, гибкость и высокий коэффициент полезного действия программируемых логических схем (FPGA), их использование в научных высокопроизводительных вычислениях в
значительной степени ограничено числовыми функциями и ядрами, реализованными, главным образом, на языке описания аппаратуры (HDL) и изредка на языках высокого уровня (HLL).
Характерные особенности HDL и ограниченная поддержка плавающей арифметики затрудняют портирование приложений и их оптимизацию для разных FPGA. Кроме того, методология программирования на HDL
ориентирована на проектирование электронных схем и не рассчитана на программирование крупномасштабных научных приложений. Использование HLL позволяет разработчикам кода научных приложений добиться
ускорения их выполнения на основе возможностей FPGA без потребности становиться экспертами в области HDL.
Авторы статьи использовали HLL для выполнения анализа и реализации на основе FPGA метода Эвальда (particle-mesh Ewald method, PME), биомолекулярного алгоритма, применяемого в широко
используемой среде моделирования молекулярной динамики Amber. Эта среда используется учеными для проведения вычислительных экспериментов в целях
исследования динамики крупных макромолекул, включая белки, нуклеиновая кислоты и мембраны.
Исследователи применяют различные стратегии для ускорения вычислений PME при проведении крупномасштабного имитационного моделирования на традиционных параллельных суперкомпьютерных платформах. Тем
не менее, в настоящее время даже самые быстрые компьютеры обеспечивают вычислительные возможности, на порядок уступающие потребностям пользователей. Исследователи установили факторы, ограничивающие
производительность и масштабирование алгоритмов PME на массивно-параллельных системах. Анализ среды Amber, проведенный авторами статьи, показал, что на сегодняшних наиболее мощных суперкомпьютерах,
включая системы IBM Blue Gene/L и Cray XT3, алгоритм PME масштабируется не более чем на 64 процессора.
В отличие от предыдущих работ, ориентированных на повышения уровня масштабируемости алгоритма PME в среде Amber, авторы исследовали возможности ускорения метода PME за счет применения систем с
FPGA. Сложность приложения (десятки тысяч строк кода) делала непрактичным использование HDL для его переноса на устройства FPGA. Вместо этого авторы реализовали алгоритм в аппаратуре с использованием
языка Fortran 90, основного языка разработчиков среды Amber.
Среди всех доступных в настоящее время реконфигурируемых систем с FPGA только для платформ компании SRC Computers имеется согласованный стек программного обеспечения, позволяющий пользователям
эффективно программировать для FPGA с использованием традиционных языков Fortran и C. Поэтому в качестве целевой системы была выбрана SRC-6E MAPstation. В этой системе используются пары из
двухпроцессорного узла Xeon с рабочей частотой 2.8 Ггц и процессора MAP, включающего управляющее устройство, две FPGA Xilinx XC2VP100 с частотой 100 Мгц и семь банков статической оперативной памяти
по 4 Мб.
Авторы выполнили профилирование и оценочные испытания существующих микропроцессоров и параллельных систем, чтобы оценить требования к вычислительным ресурсам и памяти при выполнении алгоритма PME.
В соответствии с логическими возможностями устройств FPGA в SRC-6E ускорялась только часть вычислений PME, занимающих более 80% общего времени выполнения в большинстве изучавшихся биомолекулярных
моделях. На первом этапе для двух биологических систем было достигнуто чисто вычислительное ускорение более чем в три раза при использовании плавающей арифметики с одинарной точностью. Затем, после
тщательного исследования требований к памяти, удалось сократить накладные расходы на пересылку данных и получить общее трехкратное ускорение работы приложений по сравнению со временем их выполнения
на микропроцессорах. При вычислении PME независимые задачи распределялись между основным процессором и двумя FPGA.
Поскольку производительность устройств FPGA растет гораздо быстрее производительности традиционных микропроцессоров, авторы разработали модель, позволяющие предсказать производительность имеющейся
реализации на будущих системах с FPGA. На основе этой модели удалось показать, что устройства FPGA следующего поколения позволят ускорить выполнение имеющегося приложения еще в два раза.