Обзор февральского номера журнала Computer (Computer, IEEE Computer Society, Vol. 39, No. 2, February 2007) посвящен сетевой безопасности. В отличие от обычной структуры журнала, когда все статьи тематической подборки подаются под единой рубрикой, в этот раз статьи по теме безопасности разбросаны по нескольким разделам.
Первая статья, озаглавленная «Проблемы обеспечения безопасности сетевых приложений J2ME» (Challenges in Securing Networked J2ME Application) и представлена Андре Клингсхеймом, Вебьерном Моемом и Кьелом Холе.
В смартфонах объединяются возможности полнофункционального мобильного телефона и устройства обработки обычных и мультимедийных данных — большой сенсорный экран и клавиатура, Bluetooth, больший объем памяти, мощный процессор, а также возможность установки дополнительных приложений. Рынок смартфонов быстро растет, стимулируя разработку программ нового типа. В частности, на мировом рынке мобильных игр ожидается рост прибыли от 2,6 млрд. долл. в 2005 году до 11,2 млрд. долл. в 2010-м, причем 20,5% приходится на долю онлайновых игр с несколькими участниками.
Для разработки программного обеспечения смартфонов создано немало различных инструментальных платформ, ориентированных на разных производителей, разные мобильные операционные системы и специфические особенности устройств. Однако наиболее распространена платформа Java 2 Micro Edition (J2ME), использовавшаяся при разработке программного обеспечения 80% смартфонов, представленных на современном рынке. В статье описан опыт, приобретенный авторами при выполнении коммерческих проектов по разработке программного обеспечения для смартфонов на платформе J2ME.
Авторами статьи «Управление перегрузкой электронной почты: решения и будущие проблемы» (Managing E-Mail Overload: Solutions and Future Challenges) являются Дэвид Шафф, Оцгур Туреткен, Джон д’Арси и Дэвид Кросон.
Частью повседневной жизни стало затопление пользователей Internet сообщениями электронной почты; по оценкам IDC, в 2006 году по электронной почте пересылалось 84 млрд. сообщений. Возрастает не объем спама, но и число сообщений, несущих потенциально полезную информацию. Как утверждают авторы статьи, в этом людям следует винить самих себя, поскольку электронная почта используется не так, как это предполагалось изначально. Во-первых, ее часто используют в качестве инструмента архивации; многие пользователи никогда не удаляют письма, поскольку содержащаяся в них информация может пригодиться позже, скажем, в качестве напоминания о будущих событиях. Во-вторых, электронная почта широко используется для общения в реальном времени. Подобно традиционной почте, сообщения электронной почты должны были бы посылаться, накапливаться в некотором хранилище и периодически выбираться и прочитываться получателем. Этот механизм приспособлен к асинхронной передаче информации.
Только недавно появились признаки изменения сложившихся сценариев использования. К примеру, в отчете Pew Internet and American Life отмечается, что многие предпочитают использовать для оперативного общения сервисы мгновенной доставки сообщений, а не электронную почту, которая теперь больше используется для посылки длинных сообщений с более подробной информацией.
Неэффективному использованию электронной почты соблазнительно потворствует ее простота. Многоцелевое использование электронной почты со временем приводит к перегрузке почтового ящика пользователя сообщениями различной природы. Становится невозможно успешно обрабатывать содержание вновь поступающих сообщений, трудно находить в почтовом ящике важные архивные сообщения. Повсеместность электронной почты и ее удобство как средства обмена информацией внушают сомнения в том, что поведение пользователей изменится: требуются новые эффективные методы управления информацией, содержащейся в сообщениях электронной почты.
Один из распространенных методов ручной и часто случайной классификации сообщений по папкам позволяет сократить число информационных объектов, которые пользователь должен обрабатывать в каждый конкретный момент времени. Однако решение, основанное лишь на классификации сообщений вручную, неудовлетворительно по самой своей сути, поскольку имена папок не обязательно точно отражают их содержимое, а их создание и поддержка налагает на пользователей дополнительное бремя. При долговременном использовании неудобства, связанные с поддержанием папок, оказываются сопоставимыми с теми, которые испытывают пользователи при хранении всех сообщений в одном беспорядочно организованном почтовом ящике. В статье приводится обзор существующих методов, отмечаются их сильные и слабые стороны и обозначаются проблемы управления перегрузкой электронной почты и подходы к их потенциальным решениям.
Статья Йенса-Петера Капса, Гуннара Гаубаца и Берка Сунара озаглавлена «Криптография в пылинке» (Cryptography on a Speck of Dust).
Беспроводные сенсорные сети (Wireless Sensor Network, WSN) и устройства радиочастотной идентификации (Radio Frequency Identification, RFID) быстро становятся жизненной частью инфраструктуры, однако критическим фактором соответствующих этих приложений является безопасность. Эти крошечные устройства обладают ограниченными ресурсами электропитания и небольшими вычислительными возможностями, поэтому разработчики средств безопасности сталкиваются с противоречивой проблемой обеспечения облегченных алгоритмов строгой аутентификации, шифрования и других криптографических сервисов.
В узлах современных беспроводных сенсорных сетей используются 4- или 8-разрядные процессоры общего назначения с питанием от батарей. Безопасные коммуникации обеспечиваются на основе программно реализованных криптографических протоколов, таких как Security Protocols for Sensor Networks (Spins, sparrow.ece.cmu.edu/group/pub/perrig_szewczyk_wen_spins_mobicomm.pdf). Авторы статьи предвидят, что сенсорные узлы следующего поколения будут работать без батарей, черпая энергию из внешних источников своей среды размещения. Появление вычислительных устройств с собственным питанием открывает дверь множеству новых приложений, не только в области сенсорных сетей, но и «всепроникающих» вычислений в целом. Для поддержки криптографических функций для этого класса устройств разработчикам, прежде всего, требуется учитывать фактор энергопотребления. До сих пор исследования концентрировались на аспектах WSN и программной реализации криптографических алгоритмов. Лишь недавно появились работы в области аппаратных реализаций.
Потребителем энергии в беспроводном сенсорном узле является радиочастотный приемопередатчик. В аппаратуре, разрабатываемой специально для устройств со связью на радиочастотах, комбинируются низкая скорость передачи данных, низкое энергопотребление и возможность непосредственного соединения с маломощными микроконтроллерами. Для нужного уровня безопасности для WSN и RFID требуется аналогичный подход — специализированная аппаратура, комбинируемая со специализированными алгоритмами.
Авторы из Индии, Ваарун Виджаирагаван, Даршак Шах, Паллави Галгали, Амит Шах, Нихил Шах, Венкатеш Сривасан и Локеш Бхатия представили статью «Создание метода для изоляции граничного маршрутизатора от нарушителя защиты» (Marking Technique to Isolate Boundary Router and Attacker).
От враждебных воздействий, приводящих к отказу в обслуживании (Denial-of-Service, DoS), страдают как госструктуры, так и коммерческие компании. DoS-атаки просто организовать и трудно предотвратить, поэтому их относят к числу враждебных воздействий, с которыми сложнее всего бороться.
К сожалению, механизмы борьбы с DoS-атаками не настолько развиты, как механизмы их организации. Большая часть исследований в этой области посвящена средствам смягчения эффектов таких атак. Этот подход обеспечивает эффективные сиюминутные средства, но не устраняет проблему и не препятствует злоумышленникам.
Идеальным методом прекращения атаки в месте ее зарождения является обратное прослеживание атаки до ее исходной точки. Существенным шагом к опознаванию злоумышленников и пресечению их враждебной деятельности является введение методов «обратной трассировки» (traceback) протоколов Internet, позволяющих надежно установить происхождение пакета в Сети. Однако злоумышленники могут прямо помешать обнаружению точки происхождения атаки, они могут скрыть эту точку путем использования подчиненного им компьютера-«зомби», владелец которого ничего об этом не знает. К примеру, удаленная ведущая машина может посылать пакеты от разных подчиненных компьютеров, находящихся под ее контролем. Злоумышленники могут также косвенно скрыть точку зарождения атаки путем использования «отражателя», отвечающего на ложные запросы, которые посылаются подчиненными компьютерами от имени компьютера-«жертвы».
Существующие методы борьбы с DoS-атаками направлены на нахождение всех маршрутизаторов, через которые прошел пакет злоумышленника. Однако знание реального маршрута пакета в действительности не помогает найти злоумышленника. В подходе авторов статьи, называемом быстрой обратной трассировкой IP (Speedy IP Traceback, SIPT), предпринимается попытка точно определить граничный маршрутизатор, подключенный непосредственно к клиенту. Если известны граничный маршрутизатор и MAC-адрес злоумышленника, то можно определить злоумышленника и найти маршрут атаки.
Статья «Адаптивное качество обслуживания для мобильных Web-сервисов на основе межуровневой коммуникации» (Adaptive QoS for Mobile Web Services through Cross-Layer Communication) написана Мин Тианом, Андеасом Граммом, Хартмутом Риттером, Йохеном Шиллером и Тимо Войтом.
По мере возрастания популярности Web-сервисов все больше организаций основывает свои ИТ-системы на этой технологии. Для поставщиков услуг ключевым аспектом технологии Web-сервисов является качество обслуживания (Quality of Service, QoS). Хотя в некоторых простых случаях приемлемыми оказываются сервисы без гарантированного качества обслуживания, QoS является критическим фактором при выборе Web-сервисов в качестве строительных блоков более сложных бизнес-приложений. По этой причине аспекты безопасности, надежности, доступности и другие аспекты QoS фиксируются в стандартах, в частности, в стандарте Business Process Execution Language for Web Services (BPEL4WS). В спецификациях WS-Interoperability (www.ws-i.org) также затрагивается высокоуровневая поддержка QoS.
Потребность в спецификациях QoS для Web-сервисов диктуется двумя обстоятельствами. С одной стороны, клиентам нужно надежное обслуживание, а с другой,— поставщики услуг стремятся к достижению оптимального баланса между уровнем удовлетворенности пользователей и уровнем загрузки системы. Например, наиболее важные транзакции, такие как обработка платежа, должны выполняться с высоким приоритетом.
Повсеместное распространение мобильных устройств, видимо, приведет к тому, что в будущем большая часть запросов Web-сервисов будет исходить именно от пользователей этих устройств. Однако мобильные устройства обладают ограниченными ресурсами, что создает проблемы для использования Web-сервисов, поскольку при работе с ними возникают накладные расходы, превышающие расходы при традиционном взаимодействии с Web: SOAP порождает длинные сообщения, дополнительные вычисления требуются при разборе XML, требуются методы сжатия информации и т.д. Хотя для компрессии и декомпрессии требуется вычислительная мощность, во многих случаях их использование оказывается полезным, поскольку декомпрессия приводит к почти незаметной потере производительности, а для беспроводной пересылки данных требуется намного больше энергии, чем для выполнения вычислительных операций. Кроме того, провайдеры обычно берут плату в зависимости от объема передаваемых данных, а не от времени соединения.
С точки зрения клиента процесс взаимодействия с Web-сервисом, поддерживающим QoS, состоит из трех фаз: спецификация требований к качеству обслуживания; обнаружение и выбор сервиса, обеспечивающего требуемое качество; вызов сервиса с указанием требуемого качества. Авторы разработали среду WS-QoS, которая поддерживает все фазы. WS-QoS дает возможность клиентам и поставщикам услуг специфицировать запросы и предложения с заданными свойствами и классами QoS, обеспечивает эффективное обнаружение и выборку требуемых Web-сервисов, позволяет поставщикам услуг публиковать и обновлять предложения с разными аспектами QoS, поддерживает эффективный вызов Web-сервиса с требуемым QoS.
Статья «Насколько точно инженеры прогнозируют задачи сопровождения?» (How Accurately Do Engineers Predict Software Maintenance Tasks?) представлена Лесом Хэттоном.
При управлении затратами и рисками в проекте по разработке программного обеспечения важно понимать, как изменяется программное обеспечение, однако в области разработки программного обеспечения все еще отсутствует прочный эмпирический базис, и цена ошибки остается астрономически высокой (www.bcs.org/upload/pdf/complexity.pdf). Как определяется в стандарте IEEE 1219-1993, поддержка программного обеспечения «включает модификацию программного продукта после его выпуска для исправления ошибок, улучшения эффективности или других атрибутов или адаптации продукта к изменившейся среде». Соответственно, сопровождение традиционно подразделяется на три категории: адаптивное (adaptive) сопровождение посвящается добавлению новых функциональных возможностей к изначально незавершенному продукту или в ответ на замечания пользователей; коррекционное (corrective), при котором устраняются дефекты программного обеспечения; совершенствующее (perfective), предназначенное для улучшения эффективности программы без изменения ее функциональности. Коммерческие разработчики часто пренебрегают совершенствующим сопровождением, поскольку выгоды от него не столь ощутимы, однако такое сопровождение является существенным фактором в проектах категории Open Source.
Многочисленные исследования показывают, что распределение времени между этими категориями сопровождения сильно варьируется, что частично обусловливается тем фактом, что многие активности трудно классифицируются. Например, в некоторых организациях отделяют реинжиниринг программного обеспечения от совершенствующего сопровождения. Кроме того, исходное определение типа сопровождения часто оказывается неточным. Например, при адаптивном сопровождении нередко обнаруживаются дефекты или принимается решение, что для добавления новой функциональной возможности необходимо совершенствование кода. Даже при достаточно правильном определении этих категорий для сокрытия коррекционной работы часто предпринимаются адаптивные и совершенствующие действия. Эти исследования, проводившиеся в период c 1985-го под 1996 год, показали, как много времени разработчики посвящают различным задачам сопровождения, но не прояснили, насколько точно разработчики прогнозируют тип и продолжительность сопровождения.
Формальный статистический анализ современных данных по прогнозам и реальным работам в разных категориях сопровождения программного обеспечения привел к некоторым неожиданным результатам. Данные касались 957 запросов на сопровождение или изменение (Change Request, CR), обслуживание которых заняло в целом 5 тыс. часов. Работа выполнялась в период с 14 марта 2001-го по 14 ноября 2005 года над 13 программными пакетами, четыре из которых использовались для построения двух коммерческих продуктов. Около 40% всей работы по сопровождению было потрачено на один из этих продуктов, который был формально выпущен в апреле 2002 года, 20% — на другие 12 продуктов, 10% работы по поддержке ушло на поддержку программного обеспечения с открытыми кодами, а оставшиеся 30% — на разработку Web-сайта и служебных утилит.
Результаты проведенного анализа соответствуют результатам предыдущих исследований относительно существенного перекрытия задач адаптивного, коррекционного и совершенствующего сопровождения в проектах по разработке программного обеспечения. Что же касается прогнозируемых и реальных типов и продолжительности сопровождения, то получены следующие интересные результаты. Во-первых, прогнозы затрат времени на обслуживание запросов всех типов для любого продукта со временем становятся более точными. Кроме того, программисты постоянно переоценивают время, требуемое для выполнения коротких CR, и недооценивают время для более сложных CR. Во-вторых, программистам более свойственны неточные предсказания категории сопровождения для коротких CR. Одно из возможных объяснений этого результата — то, что для коротких CR разработчики менее тщательно обдумывают возможные компоненты сопровождения. Для 77% CR обеспечивалось точное прогнозирование, а для оставшихся — неточное. Наконец, частоты переходов между адаптивным и коррекционным типами сопровождения и между совершенствующим и коррекционным типами существенно различались. Устойчивых шаблонов для условий непредвиденных переходов между разными типами сопровождения найти не удалось.
Ускорение и перестройка — будущее научных приложений
Все основные статьи мартовского номера журнала Computer 2007 года (IEEE Computer Society, Vol. 40, No. 3, March 2007) посвящены одной теме — «Реконфигурируемые компьютерные системы» (Reconfigurable Computing). Приглашенными редакторами номера являются Дункан Бьюэль, Тарек Эль-Газзави, Крис Гай и Владимир Кондратенко, написавшие вступительную заметку High-Performance Reconfigurable Computing.
Высокопроизводительные реконфигурируемые компьютеры (High-Performance Reconfigurable Computer, HPRC) — это параллельные вычислительные системы, содержащие несколько микропроцессоров и программируемых логических матриц (Field Programmable Gate Array, FPGA). Сегодня FPGA используются в качестве сопроцессоров, на которых выполняется небольшая часть приложения, занимающая больше всего времени. Теоретически вместо FPGA можно использовать любые устройства, программно изменяющие свою конфигурацию, однако именно FPGA обеспечивает наивысший уровень реконфигурируемости.
Сегодня многие аппаратные системы напоминают параллельные компьютеры, но когда такие системы только появились, они не были масштабируемыми и состояли из единственной платы с одним или несколькими устройствами FPGA, соединенными через шину микропроцессора или интерфейс памяти с единственной платой с микропроцессорами. В современных параллельных архитектурах SRC-6 и SRC-7 компании SRC Computers используется матричный переключатель, служащий для повышения уровня масштабируемости.
FPGA вначале использовались в качестве соединительных логических схем и со временем обрели популярность в области встроенных систем. При использовании в вычислительных системах FPGA стали играть роль внутренних процессорных элементов, подключаемых к шине центрального процессора. В этом случае центральный процессор не участвовал в вычислениях, а лишь играл роль препроцессора, содействующего работе FPGA. Ограничения подобных сценариев использования FPGA привели к тому, что не были исследованы многие проблемы, имеющие большое значение для HPRC и научных приложений. В число этих проблем входит потребность в средствах программирования, поддерживающих всю параллельную архитектуру. Такие инструменты необходимы для использования синергии аппаратной и программной частей приложения и полезны для изучения и понимания особенностей подобных архитектур.
Требуются исследования и разработка средств профилирования и отладки приложений, выполняемых на реконфигурируемых параллельных архитектурах. Для сокрытия от пользователей сложных деталей аппаратуры нужна соответствующая поддержка со стороны операционной системы и программного обеспечения промежуточного уровня. Заслуживают проработки вопросы переносимости приложений. Необходимо изучение новых архитектур микросхем, поддерживающих требования научных приложений к арифметике с плавающей точкой. Необходимо разрабатывать переносимые библиотеки, поддерживающие научные приложений. Наконец, имеется потребность в более тесной интеграции архитектур микропроцессоров и FPGA для обеспечения интенсивного обмена данными.Было бы полезным создание сообщества, способного решить эти задачи на должном уровне, с учетом потребностей конечных пользователей и опыта предыдущих реализаций. Недавно создан консорциум OpenFPGA (www.openfpga.org), который займется, в основном, вопросами стандартизации.
Первая тематическая статья номера называется «Trident: от языка высокого уровня к аппаратным схемам» (Trident: From High-Level Language to Hardware Circuitry). Статью представили Джастин Трип, Мая Гокхэйл и Кристофер Петерсон.
Реконфигурируемые суперкомпьютеры перспективны в областях биоинформатики, анализа текста и при решении других задач, требующих интенсивной обработки целых чисел небольшого размера. В реконфигурируемых суперкомпьютерах используются FPGA, повышающие возможности высокопроизводительных процессоров в кластерах. Часто применяются FPGA с миллионами системных вентилей, специализированными арифметическими устройствами и мегабитной памятью на одном кристалле. Подходы, основанные на реконфигурируемой логике, развиваются в направлении поддержки задач с вещественной арифметикой. Реализованы несколько библиотек, вычислительные ядра и приложения в FPGA.
Наличие ядер и приложений обеспечивает более высокую производительность, чем при использовании микропроцессоров, однако для их использования требуются большие расходы на программирование на языке описания аппаратуры (Hardware Description Language, HDL). Эта задача утомительна и чревата ошибками, поскольку такие языки не ориентированы на описание алгоритмов, в особенности тех, в которых используются конвейеры операций с плавающей точкой. Более подходящим подходом для отладки функциональных средств и повышения производительности труда программистов является создание компиляторов, транслирующих алгоритмы над данными с фиксированной и плавающей точкой, которые представляются на языке высокого уровня (High Level Language, HLL), прямо в описание схем на HDL. При этом, по существу, происходит синтез схем по их описанию на HLL. Такой подход и был реализован в проекте Trident (sourceforge.net/projects/trident). В рамках проекта разработана открытая среда для применения на FPGA вычислительных алгоритмов, представленных на языке Cи. Это обеспечивается путем отображения операций на языке Cи в аппаратные модели, обрабатывающие данные с плавающей точкой. Пользователи могут выбирать разнообразные стандартные библиотеки, или импортировать свои собственные операции.
Добавление новых аппаратных платформ происходит путем определения новых файлов описания интерфейсов и создания кода для связывания разработки с этими интерфейсами. Открытая природа Trident позволяет быстро создавать прототипы аппаратуры на основе анализа данных и моделирования алгоритмов, представленных на HLL. Компилятор распространяется свободно вместе с исходными кодами. Ни в одном из других существующих в настоящее время исследовательских компиляторов, включая Riverside Optimizing Compiler for Configurable Computing (ROCCC) и Spark, не поддерживаются операции с вещественными числами. В некоторых коммерческих компиляторах, таких как Impulse C и SRC Carte, такие операции поддерживаются на уровне внешних библиотек.
Статья, написанная Николасом Муром, Альбертом Конти, Мириам Лизер и Лори Смит Кинг, называется «Vforce: расширяемая инфраструктура для реконфигурируемых суперкомпьютеров» (Vforce: An Extensible Framework for Reconfigurable Supercomputing).
В области реконфигурируемых суперкомпьютеров мощность реконфигурируемой аппаратуры объединяется с возможностями традиционных суперкомпьютерных архитектур, состоящих из нескольких процессорных узлов, между которыми возможен быстрый обмен данными. В последние годы появился ряд таких архитектур, включая SGI RASC RC100, Cray XD1 и SRC-7. Многие приложения (в частности, приложения обработки изображений и сигналов), для которых при использовании реконфигурируемой аппаратуры обеспечивается ускорение в несколько раз, хорошо распараллеливаются и на суперкомпьютерах. Так, крупнозернистый параллелизм в приложениях обработки изображений часто достигается путем разбиения изображения на разделы и нагрузки каждого узла суперкомпьютера обработкой своей части изображения.
К сожалению, проблему представляет написание кода, переносимого между различными реконфигурируемыми суперкомпьютерными архитектурами — для каждой конкретной платформы приходится писать свой высокоуровневый код. Архитектуры суперкомпьютеров различаются уровнями поддержки программирования, но в большинстве случаев код, специфичный для целевой архитектуры и аппаратуры FPGA, требуется и для обработки данных, и для пересылки данных между приложением и FPGA; этот код переплетается с основным кодом приложения.
Vforce (Vector, Signal, and Image Processing Library for Reconfigurable Computing) представляет собой расширяемую среду для создания переносимых приложений для реконфигурируемых суперкомпьютерных архитектур. Vforce обеспечивает прозрачный доступ к специализированной аппаратуре на уровне приложения, возможность добавления новой аппаратуры на уровне среды, управление ресурсами во время исполнения на уровне системы. Используемая в Vforce библиотека VSIPL++ расширяется для обеспечения таких реализаций на основе реконфигурируемой аппаратуры, в которых в приложения не требуется включать код, зависящий от особенностей аппаратуры. Поскольку программистам не требуется детального знания аппаратуры, сокращается время разработки и повышается уровень мобильности кода.
Кроме того, в среду Vforce в качестве обобщенного аппаратного объекта может включаться новое реконфигурируемое вычислительное оборудование. Среда обеспечивает инфрастуктуру для поддержки специфичных для аппаратуры битовых потоков, прикрываемых интерфейсами уровня приложений и пользовательскими функциями. Это позволяет легко переносить приложения Vforce на новую реконфигурируемую аппаратуру.
Авторами статьи «Достижение высокой производительности с использованием FPGA» (Achieving High Performance with FPGA-Based Computing) являются Мартин Хербордт, Том ван Курт, Йонгфенг Гу, Бхарат Сукхвани, Эл Конти, Джош Модел и Даг Дисабелло.
Ускорение приложений, связанных с объемными вычислениями, с использованием FPGA потенциально может обеспечить гигантскую производительность. Возможно тысячекратное распараллеливание, в особенности при вычислениях с низкой точностью. В то же время при использовании FPGA имеются существенные проблемы. Одна из них — низкая рабочая частота; действительно, частота, на которой работают FPGA, составляет одну десятую от частоты современных микропроцессоров. Другая проблема следует из закона Амдала: для достижения показателей ускорения, требуемых для принятия пользователями новой технологии (предпочтительно ускорение не менее чем в 50 раз), существенному ускорению должно подвергнуться не менее 98% кода целевого приложения. В результате производительность приложений HPC/FPGA является исключительно чувствительной к качеству реализации.
Классической является проблема достижения существенного ускорения на новой архитектуре без непомерного увеличения объема работ разработчиков, с сохранением гибкости, переносимости и удобства сопровождения. В этом случае ускорение высокопроизводительных приложений с применением FPGA похоже на перенос однопроцессорных приложений на массивно-параллельные компьютеры (Massive Parallel Processing, MPP), но имеются два серьезных отличия. Во-первых, FPGA больше отличаются от однопроцессорных машин, чем от них отличаются MPP. Во-вторых, процесс распараллеливания кода для MPP, хотя и вызывает проблемы, является существенно более изученным и поддерживаемым, чем перенос кода на FPGA.
Лоуренс Снайдер определил три аспекта проблемы переноса на MPP. Во-первых, параллельное решение с использованием P процессоров может ускорить наилучшее последовательное решение не более чем в P раз. Во-вторых, типичные задачи для высокопроизводительных систем имеют третий или четвертый порядок сложности, а потому параллельные вычисления, хотя и являются необходимыми, обеспечивают только умеренные преимущества. Наконец, вся сила параллелизма должна быть направлена на решение проблемы, а не размыта в накладных расходах на реализацию.
Виктор Прасанна и Джеральд Моррис представили статью «Вычисления над разреженными матрицами на реконфигурируемой аппаратуре» (Sparse Matrix Computations on Reconfigurable Hardware).
Реконфигурируемые компьютеры (Reconfigurable Computer, RC), в которых объединяются возможности процессоров общего назначения и FPGA, стали реальностью. FPGA можно конфигурировать таким образом, что, по сути, они становятся специализированными сопроцессорами, а программировать для RC теперь можно с использованием традиционных языков программирования высокого уровня HLL, применяя компиляторы этих языков на языки описания аппаратуры HDL.
Исследователи из Университета Южной Калифорнии сосредотачивают свою работу на алгоритмах и архитектурах, способствующих развитию высокопроизводительных реконфигурируемых научных приложений. Эти работы посвящаются устройствам, соответствующим стандарту IEEE 754; ядрам для поддержки приложений молекулярной динамики; алгоритмам линейной алгебры и библиотекам для обработки разреженных матриц. В статье более подробно обсуждается последнее направление.
Приложениям, связанным с обработкой разреженных матриц, свойственна существенная деградация производительности при выполнении на процессорах общего назначения. В течение последних 30 лет исследователи пытались ослабить проблему плохой производительности вычислений над разреженными матрицами, применяя различные подходы: переупорядочивание данных для сокращения числа обращений к памяти; модификация алгоритмов для повышения вероятности повторного использования данных в кэше; создание специализированных контроллеров основной памяти. Однако, несмотря на все усилия, эффективность операций над разреженными матрицами на процессорах общего назначения по-прежнему зависит от ее структуры.
Рабочая среда конвейерного компьютера с FPGA, в которой обращение к памяти происходит за один такт, не зависит от структуры разреженной матрицы. Таким образом, если исследователи разрабатывают конвейерные архитектуры и обеспечивают ускорение выполнения за счет параллелизма, они могут показать преимущества использования RC для выполнения вычислений над разреженными матрицами. Разработки авторов статьи, основанные на использовании FPGA, позволили достичь ускорения матричных вычислений более чем вдвое.
Авторы последней статьи тематической подборки — Садаф Алам, Пратул Агарвал, Мелисса Смит, Джеффри Веттер и Дэвид Калига. Статья озаглавлена «Использование устройств FPGA для ускорения биомолекулярных имитационных моделей» (Using FPGA Devices to Accelerate Biomolecular Simulations).
Несмотря на громадный потенциал, гибкость и высокий коэффициент полезного действия FPGA, их использование в научных высокопроизводительных вычислениях в значительной степени ограничено числовыми функциями и ядрами, реализованными главным образом на языке описания аппаратуры HDL и лишь изредка на языках высокого уровня HLL. Характерные особенности HDL и ограниченная поддержка плавающей арифметики затрудняют перенос приложений и их оптимизацию для разных FPGA. Кроме того, методология программирования на HDL ориентирована на проектирование электронных схем и не рассчитана на программирование крупномасштабных научных приложений. Использование HLL позволяет разработчикам кода научных приложений добиться ускорения их выполнения на основе возможностей FPGA без потребности становиться экспертами в области HDL.
Авторы использовали HLL для выполнения анализа и реализации на основе FPGA так называемого метода Эвальда, биомолекулярного алгоритма, применяемого в широко используемой среде моделирования молекулярной динамики Amber. Эта среда используется учеными для проведения вычислительных экспериментов в целях исследования динамики крупных макромолекул, включая белки, нуклеиновые кислоты и мембраны. Даже самые быстрые компьютеры обеспечивают вычислительные возможности, на порядок уступающие потребностям таких пользователей. Исследователи установили факторы, ограничивающие производительность и масштабирование алгоритмов метода на массивно-параллельных системах. Анализ среды Amber, проведенный авторами статьи, показал, что на сегодняшних наиболее мощных суперкомпьютерах, включая системы IBM Blue Gene/L и Cray XT3, алгоритм масштабируется не более чем на 64 процессора.
В отличие от предыдущих работ, ориентированных на повышении уровня масштабируемости метода Эвальда в среде Amber, авторы исследовали возможности ускорения за счет применения систем с FPGA. Сложность приложения (десятки тысяч строк кода) делала непрактичным использование HDL для его переноса на устройства FPGA. Вместо этого авторы реализовали алгоритм в аппаратуре с использованием языка Fortran 90, основного языка разработчиков среды Amber.
До встречи в следующем месяце, Сергей Кузнецов (kuzloc@ispras.ru).