распараллеливание вычислений между двумя Arduino
- Войдите на сайт для отправки комментариев
Чт, 30/11/2017 - 15:11
Всем доброго дня,
Сегодня мы начали пилить новый проект и столкнулись с проблемой. Вычисления на одной ардуино заимают слишком много времени.
У меня появилась идея вынести часть вычислений на вторую ардуино, но на данный момент я не понимаю как это сделать. В интернете много информации про распараллеливание процессов, но про распараллеливание вычислений ничего. Буду очень рад, если вы дадите ссылку на источник, в котором можно пичитать про (костыль) данную тему.
Как минимум стоит почитать: https://www.ozon.ru/context/detail/id/3505961/
зачем? отдай часть функций одной, часть другой. параллельно какой смысл. все равно одна должна собирать данные
В интернете много информации про распараллеливание процессов, но про распараллеливание вычислений ничего.
Хм... а разве вычисление - это не процесс?
Ну а вообще - задача параллельных вычислений на ардуино - это что-то из области юмора, кмк
Вот здесь есть список литературы - https://parallel.ru/info/books_rus.html
Но для начала неплохо бы понять причину, почему не хватает производительности. Потому как. если алгоритм хреновый, то ...
Ну и, наконец, надо смотреть на задачу. Если она плохо параллелится, Вы много от двух ядер не выиграете, т.к. закон Амдала никто не отменял, а можете даже и потерять, т.к. накладные расходы тоже никто не отменял.
задача параллельных вычислений на ардуино - это что-то из области юмора, кмк
Кск сказать. Вот распбери уже и в Лос-Аламосе служит.
Всем доброго дня,
Сегодня мы начали пилить новый проект и столкнулись с проблемой. Вычисления на одной ардуино заимают слишком много времени.
Привет.
Вы бы подробней расказали о проекте, что да как. Потому как оно конечно может и не хватает производительности, но чаще из-за кривого подхода к задаче такое. Чел алгоритмы отстойные заложит и/или накосячит в коде, вот и тормозня идет. А основанием для такого моего предположения в данном случае служит какраз ваша идея о распаралеливании. Фигня все это. Если реально контролер не тянет задачу - берется более мощный контроллер, а не два чахлых связываются, т.к. связь их будет вечным узким местом и ресурсов займет тоже существенно.
ПС. Ссылки выше Вам нипомогутниразу. Ничем. Прогноз на попытку "пичитать" - начнете но ни кончите и ,обломаетесь проект делать.
Мда. Блинк с выносом вычислений на другую ардуину это жесть. Мол я не успеваю, у меня delay стоит, а еще куча работы. В общем сообщишь, когда мне светодиод переключить.
И сайтик хороший и список литературы интересный. Тоже спасибки, далеко не всё читал оказывается.. :)
Автору: Вам верно пишут. Если задача подлежит распараллеливанию, то опишите хотя-бы в общих чертах. Если это косой алгоритм или реализация, то "мертвому припарка". Ну и ещё: дуньки - все-таки управляющие машинки, а не счетные. Проще взять камень мощнее, собирая в него инфу из нескольких управляющих дунек.
Как пример исключительно (жду приезда деталек, не делал ещё): с сыном собираем "Луноход", возможно пойдет на кубок РТК, но уже не уверены. Там запланировано 4 пары ведущих колес. Каждый такой блок будет иметь пару BLDC моторов + электромагнит блокировки качалки пары колес + эл.магнит вытаскивания грунтозацепов из под колесной шины + 2 серводвигателя для изменения положения в пространстве этой пары колес + датчики давления на грунт на каждом колесе + ИК датчики, смотрящие вперед по ходу и вбок между парой. Всем этим барахлом на каждой паре будет управлять своя ATmega128a (ног много и стоит недорого). Связь с "главным процессором" по I2C или SPI, не определились ещё. Плюсом у Лунохода планируется 2 руки, "багажник" с люками, датчики дыма, газа, ультразвуковые, цвета, манипуляторы и по камере на каждой "руке".
В качестве главного камня пока взята плата "Искра" от амперки (она просто есть, разбираемся что и как может). Это будет "командный" процессор и он будет отправлять команды и собирать данные с датчиков и периферийных дунек. А каждая из них будет сама решать как ей крутить колеса согласно текущей ситуации и команде (в т.ч и функции ESC-контроллера пары бесколлекторников) .. или фиксировать вращение и "шагать" колесами на сервах.
Это как пример распараллеливания задачи.