Как я могу определить, достаточно ли Raspberry Pi достаточно для запуска моего кода? - PullRequest
0 голосов
/ 07 мая 2019

Возможно, я написал это с неправильными тегами, но, надеюсь, кто-то может мне помочь. Я инженер, который все глубже погружается в автоматизацию. Недавно я разработал автоматизированную систему на Raspberry Pi. Я написал довольно простой код, который был продублирован для одновременного считывания значений датчиков с разных последовательных портов. Я сделал это таким образом, чтобы в случае необходимости отключить один скрипт, не ставя под угрозу другие. Теперь он работает очень хорошо, но у меня были проблемы с перегрузкой моего процессора при первом запуске (я полагаю, это потому, что я открыл весь код сразу, а не по одному за раз).

Мой вопрос: Как я могу определить, сколько вычислительной мощности требуется для написанного мной кода? Как мне определить компьютер для запуска моего кода, прежде чем я начну собирать робота?

1 Ответ

0 голосов
/ 07 мая 2019

Три ресурса, которыми вы, вероятно, будете ограничены на любом компьютере, - это диск, ОЗУ и ЦП (ядра).Карты MicroSD являются дешевыми и их легко заменить, поэтому более важными являются последние два.

В зависимости от языка, на котором вы пишете, вы будете в большей или меньшей степени контролировать использование памяти.В частности, Python «экономит» разработчика, «обрабатывая» память автоматически.В Python есть несколько хороших статей по управлению памятью, например , эта .При запуске простого сценария (например, активации этих выводов ввода-вывода) на машине с гигабайтами памяти это редко является проблемой.При работе с приложениями, интенсивно использующими данные (например, делайте линейную алгебру в этом гигантском массиве), вам нужно беспокоиться о том, сколько памяти вам нужно для вычислений и действительно ли интерпретатор освобождает их, когда вы закончите.Это не всегда легко вычислить, но если вы профиль своего программного обеспечения на другом компьютере, вы можете оценить его.

Загрузка ЦП сравнительно легко подготовить.Зарезервируйте 1 ядро ​​для ОС и других функций, а остальные доступны для вашего программного обеспечения.Если вы пишете однопоточный код, этого должно быть достаточно.Если у вас параллельная обработка, то либо придерживайтесь N-1, либо вам нужно проявить творческий подход к разработке программного обеспечения.

Редактировать: все это с учетом Raspberry Pi.Pi представляет собой полноценный компьютер небольшого форм-фактора: ОС, BIOS, время загрузки и т. Д. Многие встроенные проблемы можно решить с помощью Arduino или какого-либо другого контроллера, который имеет другой набор соображений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...