Jump to content

    
Sign in to follow this  
Студент заборстроительного

Принять и ПАРАЛЛЕЛЬНО распарсить поток 10Гбит/с. Как решаются такие задачи?

Recommended Posts

если потери не сильно критичны, то даже DPDK с 10 Гбитами справится, без необходимости изучения ПЛИС.

Во блин :wacko:

Как я отстал от прогрессу.

Я думал что поток 10Гбит/с не сможет даже i7 в реалтайме "переварить".

И что это вообще очень сложная задача. Возможно не решаема так как я описал.

А оказывается сейчас с ней любой студент справится и даже DPDK (правда не знаю, что значит эта аббревиатура).

Ну если парсить 10Гигабитный поток в реалтайме в 1000 потоков - это рядовая задача, с которой даже студент справится, то смело буду закладывать такое решение в ТЗ :beer:

 

 

при проектировании в ПЛИС, нужно знать "сколько вешать в граммах", т.е. считать биты и такты.

ваша проблема в том, что вы рисуете 1000 одновременных обработчиков, без четкого понимания в их необходимости.

может, будет достаточно одного? или десяти? или ста? почему 1000? как считали и чем обосновываете необходимость?

Я уже говорил. Что есть 1000 ОДИНАКОВЫХ удаленных девайсов.

Поэтом алгоритм обработки данных, поступающих от них один и тот же.

 

krux

А по поводу всего остального .... Отвечу позже.

Мне нужно время, что "переварить" и осмыслить все что вы сказали.

Спасибо за большой и развёрнутый ответ.

Share this post


Link to post
Share on other sites
Во блин :wacko:

Как я отстал от прогрессу.

Я думал что поток 10Гбит/с не сможет даже i7 в реалтайме "переварить".

И что это вообще очень сложная задача. Возможно не решаема так как я описал.

А оказывается сейчас с ней любой студент справится и даже DPDK (правда не знаю, что значит эта аббревиатура).

производительность DPDK на специфических задачах:

http://fast.dpdk.org/doc/perf/DPDK_16_11_I...ance_report.pdf

Share this post


Link to post
Share on other sites
далее про память. в ПЛИС не надо ничего хранить, нужно всё обрабатывать "на лету". если по алгоритму обрабатывать "на лету" невозможно, и рисуется необходимость хранить - нужна внешняя память.

"На лету" обрабатывать - это значит за наносекунды закончить всю обработку?

Не. Не получится. На обработку где-то несколько тысяч тактов уйдет.

 

доступ в память - всегда "бутылочное горлышко" с точки зрения пропускной способности.

Вы хотите сказать, что памяти, к которой ПАРАЛЛЕЛЬНО/ОДНОВРЕМЕННО могут обращаться 1000 узлов ПЛИС, не бывает? Ну т.е. невозможно, чтобы каждый схемный узел ПЛИС читал данные из своего дампа параллельно с 999-ю другими узлами, читающими из своих дампов?

Edited by Студент заборстроительного

Share this post


Link to post
Share on other sites

Приветствую!

 

"На лету" обрабатывать - это значит за наносекунды закончить всю обработку?

Не. Не получится. На обработку где-то несколько тысяч тактов уйдет.

 

Вы хотите сказать, что памяти, к которой ПАРАЛЛЕЛЬНО/ОДНОВРЕМЕННО могут обращаться 1000 узлов ПЛИС, не бывает? Ну т.е. невозможно, чтобы каждый схемный узел ПЛИС читал данные из своего дампа параллельно с 999-ю другими узлами, читающими из своих дампов?

Да такое сделаеть что забор покрасить - берете 1000 FPGA к каждой цепляете свою DDR4/QDRII, 10G/100G роутите на каждую FPGA и вперед - считайте все в паралель. Делов то ...

 

 

Удачи! Rob.

 

Share this post


Link to post
Share on other sites
Приветствую!

 

 

Да такое сделаеть что забор покрасить - берете 1000 FPGA к каждой цепляете свою DDR4/QDRII, 10G/100G роутите на каждую FPGA и вперед - считайте все в паралель. Делов то ...

 

 

Удачи! Rob.

 

Воблин :wacko:

 

А мне чуть выше писали, что это реализовать любой студент может.

А по Вашему получается, что теоретически решить задачу теоретически вроде бы можно, но вот практически задача не имеет решения.

 

И кому мне верить? :1111493779:

 

Share this post


Link to post
Share on other sites

Приветствую!

 

Воблин :wacko:

 

А мне чуть выше писали, что это реализовать любой студент может.

А по Вашему получается, что теоретически решить задачу теоретически вроде бы можно, но вот практически задача не имеет решения.

 

И кому мне верить? :1111493779:

Никому, (мне можно ...) -=

Где я написал что задачу решить нельзя ? Как раз вполне ПРАКТИЧНОЕ и реализуемое решение в полном соответствии поставленной задаче! Да к тому же и легко масштабируемое - вдруг Вам 10000 устройств надо будет обслуживать?

 

Удачи! Rob.

Share this post


Link to post
Share on other sites

Мне говорили, что можно обойтись одной (ОДНОЙ, Карл) ПЛИСиной.

Просто прошить её так, чтобы внутри неё было 1000 узлов

Share this post


Link to post
Share on other sites

Приветствую!

 

Мне говорили, что можно обойтись одной (ОДНОЙ, Карл) ПЛИСиной.

Просто прошить её так, чтобы внутри неё было 1000 узлов

Ааа... Ну если так то тогда Вам все ж придется как студенту, засесть за расчеты как выше советовал уважаемы krux. А может даже как прилежному студенту еще и доки по FPGA почитать :wacko: . Тогда не придется беспокоится заранее о 1000 головой гидр.. RAM. Скукота...

 

Эх! а можно было такое ТЗ сваять - домашний аналог Amazon F1 !

 

Удачи! Rob.

Share this post


Link to post
Share on other sites
Приветствую!

 

 

Ааа... Ну если так то тогда Вам все ж придется как студенту, засесть за расчеты как выше советовал уважаемы krux. А может даже как прилежному студенту еще и доки по FPGA почитать :wacko: . Тогда не придется беспокоится заранее о 1000 головой гидр.. RAM. Скукота...

 

Эх! а можно было такое ТЗ сваять - домашний аналог Amazon F1 !

 

Удачи! Rob.

:lol:

Share this post


Link to post
Share on other sites
"На лету" обрабатывать - это значит за наносекунды закончить всю обработку?

Не. Не получится. На обработку где-то несколько тысяч тактов уйдет.

здесь мне видится рассуждение программиста, у которого за один такт может выполняться только одна вычислительная операция.

для ПЛИС это тупиковый путь, и поэтому так не делают.

этот вычислительный алгоритм должен быть полностью перелопачен для того чтобы его можно было эффективно реализовать на ПЛИС.

Share this post


Link to post
Share on other sites
Приветствую!

 

 

Ааа... Ну если так то тогда Вам все ж придется как студенту, засесть за расчеты как выше советовал уважаемы krux. А может даже как прилежному студенту еще и доки по FPGA почитать :wacko: . Тогда не придется беспокоится заранее о 1000 головой гидр.. RAM. Скукота...

 

Эх! а можно было такое ТЗ сваять - домашний аналог Amazon F1 !

 

Удачи! Rob.

Ваш сарказм означает, что насчёт "любой студент сможет" и "можно обойтись одной ПЛИСиной" меня тупо обманули?

Вы мне просто скажите одно: можно ли на ПЛИС реализовать такую память, к которой можно было с одной стороны обращаться как к единому целому, а с другой как к 1000 независимых дампов памяти в 1000 потоков одновременно?

 

Если нет, то как на серверах обрабатываются потоки даже не 10Гбит/с, а в терабиты и более?

Как там паралеллят обработку принятых данных?

Edited by Студент заборстроительного

Share this post


Link to post
Share on other sites

Приветствую!

Ваш сарказм означает, что насчёт "любой студент сможет" и "можно обойтись одной ПЛИСиной" меня тупо обманули?
Я бы сказал что тонко пошутили :)

Вы мне просто скажите одно: можно ли на ПЛИС реализовать такую память, к которой можно было с одной стороны обращаться как к единому целому, а с другой как к 1000 независимых дампов памяти в 1000 потоков одновременно?
Можно!

 

Если нет, то как на серверах обрабатываются потоки даже не 10Гбит/с, а в терабиты и более?

Как там паралеллят обработку принятых данных?

Вы сами уже ответили "... паралеллят обработку принятых данных ..." и обычно сервер для "любого студента" выглядит как на картинке внизу - на таком запросто(тонкая шутка!) можно обрабатывать поток 4 x 10G Ethernet.

Успехов! Rob.

Supermicro-X9DRH-7TF-Block-Diagram.png

 

Share this post


Link to post
Share on other sites

Я на всякий случай добавлю, вдруг поможет - если одинаковые пакеты приходят и на них формируются "ответки" по одному алгоритму, то может можно и не параллелить - можно отвечать на фреймы, используя очередь, это если вдруг формирование "ответок" реализовано не в процессорном стеке а в железе. Я делал нечто похожее. Все зависит от сложности формирования этих самых "ответок"(точнее throughput этого алгоритма). А, ну собственно примерно это уже и советовал krux

Share this post


Link to post
Share on other sites
Я на всякий случай добавлю, вдруг поможет - если одинаковые пакеты приходят и на них формируются "ответки" по одному алгоритму, то может можно и не параллелить - можно отвечать на фреймы, используя очередь,

Не успеет.

Данные поступают со скоростью 10 Гбит/с, а обрабатываются (если обрабатывать в один поток) со скоростью 10 Мбит/сек

Share this post


Link to post
Share on other sites
Не успеет.

Данные поступают со скоростью 10 Гбит/с, а обрабатываются (если обрабатывать в один поток) со скоростью 10 Мбит/сек

Я чего-то не понимаю, но откуда Вы взяли 1000 потоков ? Данные то приходят последовательно.... Не думаю, что одновременно данные приходят сразу от 1000 устройств. А раз данные приходят последовательно, то почему бы их так-же последовательно не обрабатывать ?

Расписали бы примерную блок схему проекта. И как замешаны данные в потоке.

Да и отдавать данные Вы сможете так-же последовательно....

Edited by Flip-fl0p

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this