LINUX.ORG.RU

Ответ на: комментарий от yetanother

Если у тебя во входном буфере системы n отсчетов из разных источников (а эти отсчеты зависимые, поскольку относятся к одной системе), то ты не можешь запустить их обработку

Я чего-то не понял: ты пишешь про то, что в разные моменты времени разные датчики присылают показания? Какой смысл тогда вообще запускать «сразу на n ядрах» то, что не «сразу» происходит?

Если речь идет про одновременное получение сигнала из сразу большого числа датчиков, то до момента суммирования они прекрасно считаются независимо (умножение матриц, сложение, вычитание), обычны чем-то вроде SIMD, поскольку там не особо и много считать нужно. Если выходных оцениваемых параметров несколько, вроде «координата, скорость, ускорение», то каждую из них на одном шаге можно считать независимо, что, опять же, делается через SIMD обычно.

Зачем мне это делать?

См. выше

Ответа по прежнему нет. Зачем это делать? Какова конечная цель? Написать диссертацию? Сдать экзамен и пойти работать грузчиком?

Настройка ФК это порой уже грань между наукой и искусством, как выразился мой коллега, там далеко не все однозначно, нужно знать предметную область в которой применяется фильтр. Твоя категоричность только убеждает в том, что ты не владеешь темой в которой пытаешься рассуждать

Я практически ничего не рассказывал про фильтр Калмана, и ты не особо пытался спросить. Я абсолютно согласен с тем. что в подборе параметров фильтра Калмана не так много рациональности, и многочисленные печатные материалы по теоретическим расчетам усиления Калмана через расчет ковариаций главным образом годятся для того, чтобы хорошенько продристаться и подтереться. Собственно, как и многие материалы, упоминающие нормальное распределение в контексте фильтра Калмана, да и вообще большая часть всех научных работ. Потому что в реальном мире корреляции оказываются нелинейными, а распределение — негауссовым. И внезапно вся безумная теоретическая сложность скатывается до немного расширенного варианта альфа-бета фильтра, который, в свою очередь, является чуть расширенным вариантом усреднения с экспоненциальным затуханием весов.

Фильтр Калмана используется очень широко на практике

... но не тобой. а написание курсовых или диссертаций не является практическим применением.

За неимением аргументов неудачники переходят на личности

А другие неудачники за неимением собственного опыта прикрываются чужим опытом.

byko3y ()
Ответ на: комментарий от byko3y

Если речь идет про одновременное получение сигнала из сразу большого числа датчиков, то до момента суммирования они прекрасно считаются независимо (умножение матриц, сложение, вычитание), обычны чем-то вроде SIMD, поскольку там не особо и много считать нужно. Если выходных оцениваемых параметров несколько, вроде «координата, скорость, ускорение», то каждую из них на одном шаге можно считать независимо, что, опять же, делается через SIMD обычно.

Зачем писать о том, что знаешь поверхностно? Во-первых суммирование в ФК не одно, а их несколько, во-вторых «координата, скорость, ускорение» и так считаются независимо и одновременно - это вообще-то следует из алгоритма фильтра. Вектор состояния ФК содержит переменную/переменные состояния (экстраполированные) и ее/их первые n производных (n определяется порядком фильтра), которые и есть ничто иное как скорость и ускорение. И это очередной твой слив, двоечник.

Если же ты решил что отчеты можно обработать параллельно, а потом их результат «просуммировать» - то ты даже не двоешник, а еще хуже.

Я практически ничего не рассказывал про фильтр Калмана, и ты не особо пытался спросить.

Да по тебе и так видно, что ты просто по верхушкам нахватался и теперь модные слова просто повторяешь без их понимания. Тебя и спрашивать нужды нет, в ФК ты плаваешь и не понимаешь сути рекурсивных фильтров в целом, иначе бы не писал весь этот бред про то, что ФК это чуть-чуть лучше чем «усреднение с экспоненциальным затуханием весов». Занавес.

yetanother ()
Ответ на: комментарий от yetanother

Зачем писать о том, что знаешь поверхностно? Во-первых суммирование в ФК не одно, а их несколько, во-вторых «координата, скорость, ускорение» и так считаются независимо и одновременно - это вообще-то следует из алгоритма фильтра. Вектор состояния ФК содержит переменную/переменные состояния (экстраполированные) и ее/их первые n производных (n определяется порядком фильтра), которые и есть ничто иное как скорость и ускорение. И это очередной твой слив, двоечник

Эй, несливающийся отличник, ты забыл рассказать, каким образом твой ответ противоречит моему. Потому что пока я вижу твое согласие. Но тогда к чему были твои рассказы про неотъемлимую последовательность расчетов, если ты подтверждаешь их параллельность?

Тебя и спрашивать нужды нет, в ФК ты плаваешь и не понимаешь сути рекурсивных фильтров в целом, иначе бы не писал весь этот бред про то, что ФК это чуть-чуть лучше чем «усреднение с экспоненциальным затуханием весов»

Вычти из координат приращения скорости (ускорения, рывка, и т.д.) — получишь корм для типичного фильтра низких частот, который по таблице коэффициентов считается для любых скалярных n отсчетов во времени. Да, значения не будут идеально совпадать с оригинальным Калманом, но этого и не нужно, потому что фильтр фундаментально неточен.

byko3y ()
Ответ на: комментарий от byko3y

Но тогда к чему были твои рассказы про неотъемлимую последовательность расчетов, если ты подтверждаешь их параллельность?

Я подтверждаю что ты, двоечник, умудрился распараллелить операции над матрицами, которые уже и без тебя давным давно распараллелены. А сам фильтр Калмана ты не можешь распараллелить, потому что его уравнения должны вычисляться последовательно, для тех кто в танке пишу еще раз - последовательно. И итерации выполняются тоже последовательно. Нельзя запустить итерацию n на одном процессоре и одновременно итерацию n+1 - на другом. НЕЛЬЗЯ В ПРИНЦИПЕ. Потому что на итерации n+1 нужно использовать данные из итерации n. Еще раз тебе пишу черным по белом - не рассуждай о том, чего не знаешь.

Вычти из координат приращения скорости (ускорения, рывка, и т.д.) — получишь корм для типичного фильтра низких частот, который по таблице коэффициентов считается для любых скалярных n отсчетов во времени. Да, значения не будут идеально совпадать с оригинальным Калманом, но этого и не нужно, потому что фильтр фундаментально неточен.

Не нужно забалтывать тему. Зачем ты пишешь здесь то, что не относится к теме нашего спора? Я тебе еще раз повторяю, что рекурсивный фильтр по сути своей не поддается параллелизации. И поэтому для рекурсивного фильтра важно быстродействие ядра, потому что в общем случае нельзя фильтр запустить на нескольких ядрах и недостаточную мощь в пересчете на ядро нельзя компенсировать увеличением ядер.

yetanother ()
Ответ на: комментарий от yetanother

А сам фильтр Калмана ты не можешь распараллелить, потому что его уравнения должны вычисляться последовательно, для тех кто в танке пишу еще раз - последовательно. И итерации выполняются тоже последовательно. Нельзя запустить итерацию n на одном процессоре и одновременно итерацию n+1 - на другом. НЕЛЬЗЯ В ПРИНЦИПЕ. Потому что на итерации n+1 нужно использовать данные из итерации n. Еще раз тебе пишу черным по белом - не рассуждай о том, чего не знаешь

Ты до сих пор так и не ответил, зачем тебе фильтр Калмана, почему именно он — с какого перепугу ты возомнил себя непререкаемым гуру? Фильтр Калмана разработан под вполне конкретную прикладную задачу, и условие поочередного вычисления является одним из условий этой задачи, диктующим особенности алгоритма — но ты этого не понимаешь, потому что ты абстрактный теоретик, для тебя теория является самоцелью, диктующей условия решения. Однако, эта же задача в прикладном мире вполне себе решается более чем одним способом.

byko3y ()
Ответ на: комментарий от byko3y

Ты до сих пор так и не ответил, зачем тебе фильтр Калмана, почему именно он — с какого перепугу ты возомнил себя непререкаемым гуру?

Я уж точно не гуру. Но вот ты - клоун. Т.е. тебе нечего ответить по существу того, что рекурсивные фильтры трудно (как минимум) поддаются параллелизации. И теперь ты начинаешь ныть, что дескать да кто сказал, что эти фильтры вообще нужны? Ты не просто двоечник, ты - позорище позорное.

yetanother ()
Ответ на: комментарий от yetanother

Ты до сих пор так и не ответил, зачем тебе фильтр Калмана, почему именно он — с какого перепугу ты возомнил себя непререкаемым гуру?

Я уж точно не гуру. Но вот ты - клоун. Т.е. тебе нечего ответить по существу того, что рекурсивные фильтры трудно (как минимум) поддаются параллелизации.

Эй. несливатор, ты так и продолжишь в тупую морозиться на прямой вопрос? На который ты, конечно же, не ответишь, и мы оба это понимаем, но почему-то до сих пор ведем подобие разговора.

byko3y ()
Ответ на: комментарий от byko3y

Эй. несливатор, ты так и продолжишь в тупую морозиться на прямой вопрос? На который ты, конечно же, не ответишь, и мы оба это понимаем, но почему-то до сих пор ведем подобие разговора.

Ты на базаре «эйкай», клоун. Нет никакого подобия разговора, есть твой безусловный слив на 100% в споре что все ли алгоритмы можно параллелить на несколько ядер или не все. Я тебе сказал, что не все алгоритмы позволяют это. Ты попросил назвать такой алгоритм, я тебе назвал фильтр Калмана, и даже объяснил, почему его нельзя распараллелить на несколько ядер. Теперь ты, еще раз повторяю, клоун, начал задавать вопрос - а зачем использовать ФК? Т.е. ты не можешь не согласиться, что ФК не параллелится, и теперь виляешь хвостом что не нужно использовать ФК. Так вот, мой цирковой друг, ФК является оптимальным фильтром и в общем случае показывает лучшие результаты чем альфа-бета фильтр и тем более экспоненциальное сглаживание. Поэтому его и используют. Продолжай позориться.

yetanother ()
Последнее исправление: yetanother (всего исправлений: 1)
Ответ на: комментарий от yetanother

Успокойся хлюпик, ты как будто бибизяна в первый раз тут видишь, он любит поспорить просто ради спора. Он прекрасно понимает что далеко не все можно и нужно выполнять в режиме параллельного исполнения. Что ты развыступался, что ты отыгрываешь силача из того же цирка, может по тебе проехать автомобилем чтобы ты успокоился, может гирю потаскаешь? У тебя трико то в полоску есть? А усы ты отрастил? Прими уже таблетку успокаивающую перорально, да водички холодненькой попей.

anonymous ()
Ответ на: комментарий от yetanother

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

Нет, я не говорил, что все алгоритмы можно параллелить. Ты упорно продолжаешь путать алгоритм и задачу — задачу можно решать разными способами, а алгоритм является уже конкретным решением. Потому что ты теоретик, и упорно отказываешься это признавать. Напомню исходные тезисы:

Индусы тут вообще не причем. Есть класс задач, которые решаются рекуррентными алгоритмами. Эти алгоритмы в принципе работают последовательно. Вы не можете начать итерацию номер n+1 пока не завершена итерация n. Все что можно распараллелить это собственно текущую итерацию, если есть что. Несколько итераций одновременно запустить нельзя. Точка

Назови мне этот алгоритм. «Есть, есть» — где есть, я не вижу таких задач. Выше чел говорил, что сортировку не умеют делать параллельно — почему-то оказалось, что прекрасно умеют. Не путай «я не умею» с «нельзя так сделать»

В данном случае «класс задач» может решаться и не рекуррентными алгоритмами, и даже сам фильтр Калмана можно дополнить нерекуррентной оценкой.

ФК является оптимальным фильтром и в общем случае показывает лучшие результаты чем альфа-бета фильтр и тем более экспоненциальное сглаживание

Нет никакого «общего случая». Доярка из колхоза или задрот WoW всю жизнь проживут и не узнают ни про какой общий случай, где им мог бы пригодиться фильтр Калмана. Этот фильтр нужен для очень специфических общих случаев, широко известных в узких кругах. И особо бесполезен фильтр Калмана при наличии известных будущих зашумленных отсчетов при оценке параметров системы в некой точке. Просто потому, что он эти самые будущие отсчеты не умеет обрабатывать в принципе в силу своей рекуррентной природы.

byko3y ()
Ответ на: комментарий от anonymous

Успокойся хлюпик,

Еще один клоун. Да ты бы глазки тупил в пол при личной встрече и даже бы не вспомнил про свои трико и твои усы (у тебя же они есть, правда?) Ты часом не решил, что раз человек более-менее разбирается в фильтрации, то это недоразвитый ботан-хлюпик? Если вкратце - то в моем случае ты заблуждаешься. Развивать эту тему я не буду, так как это действительно будет нелепо.

ты как будто бибизяна в первый раз тут видишь

Первый. Никогда не следил за его «творчеством».

он любит поспорить просто ради спора

А вот тут ты прав анонимус

yetanother ()
Ответ на: комментарий от byko3y

См. Утверждён стандарт C++20 (комментарий)

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

yetanother ()
Ответ на: комментарий от yetanother

уже человек со стороны

Это может быть как положительным моментом, так и отрицательным.

который явно не питает ко мне симпатии

Питает. Просто ты слишком меланхоличен, и любое резкое словцо принимаешь на свой счёт. Это лол.

А вообще забавно, что у тебя не осталось аргументов, кроме ad-homenium и фантазий о личной встрече. Ты не препод часом?

anonymous ()
Ответ на: комментарий от anonymous

А вообще забавно, что у тебя не осталось аргументов, кроме ad-homenium и фантазий о личной встрече.

ad-hominem просто для профилактики по факту, на всякий случай. Потому что согласен с содержанием твоего поста, но не согласен с формой.

Ты не препод часом?

Разработчик. Преподом никогда не был.

yetanother ()
Ответ на: комментарий от yetanother

Тот пост был не мой, то другой аноним. Просто удивляюсь, как взрослые(вроде бы) люди ещё не усвоили простой принцип «нельзя ничего доказать тому, кто этого не желает». Тезис-то про возможность параллельности очевидный был. Даже больше скажу - больше половины задач нормально не параллелится(или даёт прирост < 5%, что то же самое).

anonymous ()
Ответ на: комментарий от anonymous

Ну я же изначально исхожу из того, что все-таки человек спорит потому что хочет истину выяснить. Это уже потом стало ясно, что он просто хочет отстоять свою «правоту». А если бы вдруг выяснилось, что я чего-то не знаю и эту задачу все таки можно параллелить, то мне бы это здорово пригодилось по работе. Но увы...

yetanother ()
Ответ на: комментарий от yetanother

Аноним хорош, сразу выкупил правильный посыл, а ты чего-то нет и бибизяна ты не распарсил, ты и правда слишком болезненно воспринимаешь любой выпад. На самом деле это просто такая веселая игра среди людей «в теме», не соглашаться с собеседником и ставить его точку зрения под сомнение. Не стоит все воспринимать в штыки, скучно же без баталий и холиваров :)

anonymous ()
Ответ на: комментарий от anonymous

На самом деле это просто такая веселая игра среди людей «в теме», не соглашаться с собеседником и ставить его точку зрения под сомнение.

… посылать «коров доить», …

anonymous ()
Ответ на: комментарий от anonymous

Практика показывает, что есть люди, которые вроде и код могут какой-то писать, но чьи мозги концепцию указателей просто не переваривают почему-то. Какой-то плохо исследованный психологический феномен.

Дело не в указателях, а в ублюдском контекстно-зависимом синтаксисе с постоянным жонглированием * и &.

Сцук, проще писать на Ассемблере, чем на плюсах, хотя бы понятнее что реально в памяти происходит.

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

Только в сях и плюсах сделали один и тот же символ в том же месте относительно имени, но имеющий разный смысл. Молодцы.

Xintrea ★★★★★ ()