Local Sequence Alignment by Using Onchip Parallelism

Большинство алгоритмов, используемых в биоинформатике, по определению предназначены для работы с данными большого размера. Поэтому их эффективность является ключевым фактором.
Один из возможных вариантов ее увеличения -- это использование дополнительных возможностей процессора, позволяющих ускорять некоторые элементарные операции за счет использования внутрирегистровой векторизации вычислений.
Целью данного проекта являлось изучение потенциала векторизации комбинаторного алгоритма для поиска наибольшей общей подпоследовательности строк (the seaweed algorithm) при использовании современных расширений систем инструкций для процессоров Intel (AVX2, AVX-512). В результате для процессоров с поддержкой AVX-2 с помощью специальных библиотек С++ (из модуля immintrin.h) была реализована векторизованная версия алгоритма, на реальных тестах показавшая производительность почти в два раза большую, чем стандартная скалярная реализация.
Исследовать потенциальные возможности более современного расширения инструкций AVX-512 при помощи Intel Development Simulator, что было одной из начальных целей проекта, к сожалению, на данный момент не удалось.

Студент:
   Артем Купчинский
Куратор:
   Александр Тискин
Время выполнения проекта: Sep 2014 — Dec 2014
Файлы:
   kupchinskiy_13122014.pdf