В многоядерном процессоре как найти время симуляции самого медленного ядра?
(Извините, если я неправильно сформулировал вопрос)
Я запускаю некоторые приложения на 16-ядерной плате Parallella, и мне было интересно, есть ли способ рассчитать количество времени, затрачиваемое самым медленным ядром?
Я думаю, что если я добавлю user
+ sys
раз, я получу сумму времени выполнения для всех ядер, правильно?
Вот некоторые из результатов:
real 0m1.927s
user 0m3.190s
sys 0m0.080s
1 ответ
Disambiguation
Существует сильная разница между многоядерным режимом операций, скомпонованным "параллельным" способом, и обработкой в параллельном режиме.
На плате Parallella, если говорить о Zynq
- двухъядерный процессор ARM Cortex-A9 / серия Xilinx 7 на чипе FPGA - за это вы можете получить user
+ sys
значения из бортового linux. Не то же самое для Epiphany MPPA
( Massive Parallel Processor Array) аппаратное устройство или дополнительный параллелизуемый FPGA
- загружаемое программное обеспечение софт-процессорных ядер.
Также обратите внимание, что в действительно параллельной системе слово "медленное" или "медленное" ядро теряет свое значение, поскольку все процессоры запускаются и заканчивают параллельно, для получения подробной информации см. PAR
синтаксический конструктор в occam-pi
(даже ценой ожидания альтернативного пути обработки, так как все они заканчиваются параллельно).
Как?
Можно включить некоторые данные сигнализации для хранения во время выполнения кода MPPA значения счетчика тактовых импульсов / позднее полученного со стороны Linux/ARM, и использовать эти данные телеметрических записей для оценки после записи времени выполнения кода, предварительно записанного "внутри MPPA".
Выполнение того же в реальном времени может быть возможным для инструмента отслеживания in-vivo / State-Diagnostics / Inspect-Analyze-Tool, но для такого Real-Time-SysMONITOR потребуются большие усилия по проектированию системы.
Однако это выполнимо. Аналогичный подход был использован для визуальной проверки переходов состояний в FSA-дизайн / проверка.
Хорошее объяснение концептуальной и эксплуатационной разницы между PARALLEL
, SERIAL
а также CONCURRENT
режим выполнения кода.