Биометрические алгоритмы в эпоху параллельных вычислений

10/05/2013
Compartir!

Традиционно, производители полупроводников использовали удвоенное количество транзисторов в каждом новом поколении устройств, чтобы повысить рабочую частоту компьютеров. К большому сожалению, чрезмерное расходование энергетических ресурсов привело к тому, что частота процессоров практически не изменилась в течение последнего десятилетия, а все крупнейшие производители начали предлагать многоядерные решения. Современные графические ускорители продолжают свое развитие, и уже сегодня могут предложить несколько сотен простых вычислительных ядер по доступной цене. Именно поэтому, разработчики программного обеспечения стремятся адаптировать имеющиеся последовательные алгоритмы для использования на новых устройствах. Эта задача по одновременному выполнению различных заданий не так проста, как может показаться. Стоит отметить, что даже люди привыкли думать обо всем последовательно. Сможете ли вы выполнить несколько сотен уникальных действий (некоторые из них неразрывно связаны друг с другом) одновременно? Этого не смогут сделать даже самые светлые умы и талантливые программисты. Каждый из нас буквально сходит с ума, получая девять или десять одинаково важных заданий одновременно. Другими словами, становится очевидно, что наш мозг не предназначен для одновременного выполнения нескольких операций. Чем больше заданий мы выполняем в один момент времени (например, отвечаем на письмо, разговаривая по телефону), тем выше шанс совершить ошибку из-за недостаточного внимания. Именно поэтому процесс написания надежного и масштабируемого программного кода, который может использоваться совместно с графическими ускорителями, является весьма нетривиально задачей. Код, написанный для подобных архитектур, изобилует ошибками, которые крайне трудно найти и искоренить. На написание эффективного кода для параллельных вычислений может уйти несколько месяцев, хотя для создания аналогичного последовательного решения нужно не больше пары дней.

В эпоху параллельных вычислений каждая компания, которая хочет выпустить по-настоящему современный продукт, использующий последние достижения в области параллельных вычислений, должна инвестировать гораздо большее количество средств и ресурсов, чем несколько лет назад. Компания Herta Security приступила к разработке параллельных решений с самого первого дня своей работы. Очень скоро мы поняли, что эффективность биометрических алгоритмов повышается при распараллеливании высокого уровня и использовании вычислений с параллелизмом данных. Многочисленные этапы традиционной биометрической обработки, такие, как процесс извлечения характерных признаков, осуществляются в параллельном режиме. Стоит отметить, что сложный механизм доступа к памяти делает такие процессы, как повторное использование данных, кэширование и предварительная загрузка, крайне сложными. Благодаря развитию вычислений с использованием графических ускорителей, программистам приходится работать с миллионами ветвей кода, синхронизируя их, и активно используя неоднородную архитектуру подобных устройств, добиваясь максимального сокращения времени простоя. Даже несмотря на то, что такие задачи требуют много времени и ресурсов, именно они позволяют создавать продукты и решения высокого качества, которые легко масштабируются, и отвечают требованиям самых современных аппаратных решений, повышая общий уровень удовлетворенности клиента и пользователя.