Hascol
Download
1 / 20

????????? ???????????? ????? ?? ???? ??? ?????? HaSCoL - PowerPoint PPT Presentation


  • 193 Views
  • Uploaded on

Ускорение выравнивания строк на ПЛИС при помощи HaSCoL. Олег Медведев (Ланит-терком, НИИ ИТ СПбГУ) SECR , 02.11. 2011. Множественное выравнивание. MRKMSEEEFYLFKNISSVGPWDGPQYHIAPVWAFYLQAAFMGTV MNGTEGNNFYVPLSNRTGLVRSPFEYPQYYLAEPWQFKLLAVYM MKQVPEFHEDFYIPIPLDINNLSAYSPFLVPQDHLGNQGIFMAM

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '????????? ???????????? ????? ?? ???? ??? ?????? HaSCoL' - kordell


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Hascol

Ускорение выравнивания строк на ПЛИС при помощи HaSCoL

Олег Медведев

(Ланит-терком, НИИ ИТ СПбГУ)

SECR, 02.11.2011


Hascol
Множественное выравнивание ПЛИС при помощи

MRKMSEEEFYLFKNISSVGPWDGPQYHIAPVWAFYLQAAFMGTV

MNGTEGNNFYVPLSNRTGLVRSPFEYPQYYLAEPWQFKLLAVYM

MKQVPEFHEDFYIPIPLDINNLSAYSPFLVPQDHLGNQGIFMAM

*

FLIGFPLNAMVLVATLRYKKLRQPLNYILVNV

FFLICLGLPINGLTLICTAQHKKLRQPLNFILVNL

SVFMFFIFIGGASINILTILCTIQFKKLRSHLNYILVNL


Hascol
Множественное выравнивание ПЛИС при помощи

---MRKMS--EEEFYL-----FKNISSV--GPWDGPQYHIAPVWA

---MNGTE--GNNFYVP----LSNRTGLVRSPFEYPQYYLAEPWQ

---MKQVPEFHEDFYIPIPLDINNLS--AYSPFLVPQDHLGNQGI

* * * * **

---------FYLQAAFMGTVFLIGFPLNAMVLVATLRYKKLRQPLNYILVNV

---------FKLLAVYMFFLICLGLPINGLTLICTAQHKKLRQPLNFILVNL

---------FMAMSVFMFFIFIGGASINILTILCTIQFKKLRSHLNYILVNL

* * * * **** ** ****


Hascol
Множественное выравнивание ПЛИС при помощи

  • Задача формализуется несколькими способами

  • В любом случае точно решается экспоненциальными алгоритмами

  • Поэтому на самом деле решается приближенно

  • Например, при помощи open source средства MAFFT


Mafft
Производительность ПЛИС при помощи MAFFT

  • Не очень хорошая (для самого «точного» варианта)

  • При этом 90% времени тратится в процедуре выравнивания двух строк

  • Её было решено ускорить аппаратно


Hascol
Общий вид системы ПЛИС при помощи

PC

FPGA

(ПЛИС)

100MBit/s

Ethernet

Эмулирует любую цифровую

синхронную интегральную схему


Hascol
Боремся за 10х и более ускорение ПЛИС при помощи

PC

FPGA

(ПЛИС)

Intel Core Duo 1.8GHz,

оптимизированый код

на Си

Virtex5 xc5vlx50t-1

код на HaSCoL, написанный

за 10 дней.

Выравнивание двух строк

Работает в 10 раз быстрее


Hascol
В чем сложность подхода? ПЛИС при помощи

PC

FPGA

(ПЛИС)

Программируется на одном из множества языков

Программируется на низкоуровневых VHDL/Verilog, либо средствами HLS


High level synthesis
Средства ПЛИС при помощи high-level synthesis

  • Синтез из Си-подобных языков, либо подмножеств Си (CatapultC, HandelC, SpecC, MitrionC, …)

  • Попытки предложить свой язык (Bluespec, наш HaSCoL)


Hascol1
HaSCoL ПЛИС при помощи – набор вложенных расширяемых языков

Не тактово-аккуратные расширения

Конвейер, поток управления

Поддержка обмена сообщениями

Базовый уровень языка

(типа VHDL/Verilog)

Тактово-аккуратные расширения языка (уже реализованы


Hascol
Целевая функция для выравнивания двух строк

  • Даны (как-то выравненные) строки , над алфавитом

  • Дана функция

  • Целевая функция такова:


Hascol
Примерное устройство решения выравнивания двух строк


Hascol
Матрица возвратов выравнивания двух строк


Hascol
Примерное устройство решения выравнивания двух строк: конвейер вычислителей


Hascol
Один вычислитель -- реализация выравнивания двух строк

data previousValue : tWeight;

data previousLeftValue : tWeight;

in nextLeftValue(nextLeftValue : tWeight) {

nextOurValue = someExpression(value,

previousValue, previousLeftValue)

| previousOurValue := nextOurValue

| previousLeftValue := nextLeftValue

;

send propagateToTheRight(nextOurValue)

}


Hascol
Сложность 1: короткий конвейер выравнивания двух строк


Hascol
Соответствующий управляющий код выравнивания двух строк

while colPos < s2len do

inform initialCol(colPos, 0)

| colPos = colPos + AlignerSize

| reccoldiv := reccoldiv + 1 ;

wait(AlignerSize);

let lastCol = colPos >= s2len in {

rowPos = (0 : int(16)) | lastCol = lastCol

| rowWritePos := 0

| skipHead := if lastCol then

s1lenModAlignerSizeR else 0 fi

};

while rowPos <= s1len + (

if lastCol

then (ext(s1lenModAlignerSizeR, 16) : int(16))

else (0 : int(16)) fi

) do

rowPos = rowPos + 1

| inform pushRowSymb(rowPos)

done;

wait(AlignerSize)

done;


Hascol
Сложность 2 выравнивания двух строк

  • Необходимость делать обратный проход по матрице, перевычисляя вертикальные полосы в обратном порядке, потому что матрицу возвратов сохранить невозможно

  • Эту сложность мы преодолеваем примерно таким же образом


Hascol
Еще раз результаты выравнивания двух строк

  • Примерно за 10 дней на HaSCoLреализовано устройство вычисления попарного выравнивания

  • Оно протестировано на нескольких десятках тысяч тестов в симуляции

  • Синтезировано для FPGA Virtex-5 xc5vlx50t-1, по результатам синтеза получена оценка: устройство будет работать примерно в 10 раз быстрее программной реализации попарного выравнивания


Hascol
Контакты, ссылки выравнивания двух строк

  • Язык называется HaSCoL

  • Скачать тулы, статьи про HaSCoLhttp://oops.math.spbu.ru/projects/coolkit

  • GNU код на HaSCoL(разное – магистры ГУАП, студенты, аспирант, я сам) http://code.google.com/p/hascolplayground

  • Oleg.Medvedev@lanit-tercom.com


ad