Аннотация:
В данной работе рассмотрена аппаратная реализация расчета деполимеризации белковой микротрубочки методом броуновской динамики на кристалле программируемой логической интегральной схеме (ПЛИС) Xilinx Virtex-7 с использованием высокоуровневого транслятора с языка Си Vivado HLS. Реализация на ПЛИС сравнивается с параллельными реализациями этого же алгоритма на многоядерном процессоре Intel Xeon и графическом процессоре Nvidia K40 по критериям производительности и энергоэффективности. Алгоритм работает на броуновских временах и поэтому требует большого количества нормально распределенных случайных чисел. Оригинальный последовательный код был оптимизирован под многоядердную архитектуру с помощью OpenMP, для графического процессора - с помощью OpenCL, а реализация на ПЛИС была получена посредством высокоуровневого транслятора Vivado HLS. В работе показано, что реализация на ПЛИС быстрее CPU в 17 раз и быстрее GPU в 11 раз. Что касается энергоэффективности (производительности на ватт), ПЛИС была лучше CPU в 227 раз и лучше GPU в 75 раз. Ускоренное на ПЛИС приложение было разработано с помощью SDK, включающего готовый проект ПЛИС, имеющий PCI Express интерфейс для связи с хост-компьютером, и софтверные библиотеки для общения хост-приложения с ПЛИС ускорителем. От конечного разработчика было необходимо только разработать вычислительно ядро алгоритма на языке Си в среде Vivado HLS, и не требовалось специальных навыков ПЛИС разработки.