|
|
  |
Matlab, Ядер много, толку мало. |
|
|
|
Apr 12 2016, 08:28
|
Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243

|
День добрый. Необходимо сформировать большой поток (в идеале >10 Мбит/с) в реальном времени и кидать его в UDP. Формирователь состоит из источника данных, кодера, некая обработка над кодированными данными, добавление шума, формирование пакета. Источник данных, кодер, добавление шума по отдельности работают ~ на 30 Мбит/с. А последовательно ~ 10 мбит/с при этом занято лишь одно ядро. Внимание вопрос. Можно ли организовать некий конвейер, когда источник данных занимает одно ядро, кодер другое, шум третье, а в UDP шлет четвертое? Или это даже теоретически нельзя сделать? Всем спасибо.
|
|
|
|
|
Apr 12 2016, 10:48
|
Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243

|
Цитата(litv @ Apr 12 2016, 13:29)  Надо на С писать (точно успеете). Пока этот вариант не рассматриваю. Может после того, как в Matlabe запущу на меньшей скорости буду думать про C. Цитата(litv @ Apr 12 2016, 13:29)  А на Matlab - Вы на Simulunk или как, как написано, может все данные в таблицу занести и т.д. ........ ? *.m В той реализации, что хочу использовать зациклить не получиться.
|
|
|
|
|
Apr 12 2016, 20:09
|
ʕʘ̅͜ʘ̅ʔ
    
Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691

|
doc 'parallel computing toolbox' Это чтобы быстрее считать. Если же затея - сделать на matlab систему реального времени с такой пропускной способностью, то это унылая затея. Цитата(Tpeck @ Apr 12 2016, 12:28)  Можно ли организовать некий конвейер, когда источник данных занимает одно ядро, кодер другое, шум третье, а в UDP шлет четвертое?
|
|
|
|
|
Apr 13 2016, 09:54
|
Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243

|
Цитата(jorikdima @ Apr 12 2016, 19:33)  Смотрите хелп по Parallel computing. Распараллелить что-то можно, что-то нет. Генерация вектором происходит? Или каждый сампл генерируется функцией и вызов функции в цикле? Вектором.
|
|
|
|
|
Apr 13 2016, 13:26
|
Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243

|
Цитата(_4afc_ @ Apr 12 2016, 22:59)  В качестве бреда: может 4 матлаба запущенные на разных ядрах и передающие друг-другу данные через локальные UDP? UDP узкое место. Вот вопрос можно ли как-нибудь по другому наладить скоростное взаимодействие между Matlab?
|
|
|
|
|
Apr 14 2016, 05:21
|
Местный
  
Группа: Свой
Сообщений: 307
Регистрация: 14-03-06
Пользователь №: 15 243

|
Цитата(jorikdima @ Apr 14 2016, 05:41)  Так дважды посоветовали уже: parallel computing toolbox - Дяденька милиционер, а можно я Вам анекдот расскажу. - Ты что, я же милиционер! - А я Вам два раза расскажу.  Спасибо.
|
|
|
|
|
Apr 14 2016, 19:20
|
Знающий
   
Группа: Свой
Сообщений: 565
Регистрация: 22-02-13
Пользователь №: 75 748

|
Цитата(jorikdima @ Apr 14 2016, 19:25)  На 100% не скажу, но по-моему это уже давно не так. Лет 5. Матлаб при запуске м файлов компилит их как-бы и исполняет в нативном коде. Зависит всё от исходного m-кода. Если в нем содержатся в основном встроенные функции, а операции выполняются векторно, возможен даже проигрыш от перехода к C. Обычно выигрыш от генерации в 1,5-2 раза. Был у меня случай с реализацией MPA алгоритма, содержащего много вложенных циклов, когда выигрыш составил порядка 15-20 раз. Но это, скорее, исключение.
Сообщение отредактировал Grizzzly - Apr 14 2016, 19:20
|
|
|
|
|
Apr 15 2016, 09:43
|
Профессионал
    
Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368

|
Цитата(jorikdima @ Apr 14 2016, 18:25)  На 100% не скажу, но по-моему это уже давно не так. Лет 5. Матлаб при запуске м файлов компилит их как-бы и исполняет в нативном коде. Тогда зачем им было писать это в описании? Цитата You can also use the generated code within the MATLAB environment to accelerate computationally intensive portions of your MATLAB code.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|