成员自2020年以来

了解更多

灵感来自世界上最快的软件技术:高频交易,Klepsydra开发了一种轻量级,平台 - 无人机软件开发工具集,用于嵌入式系统。作为设计嵌入的可用性和互操作性,Klepsydra的平台是一种易于使用的可访问框架,旨在实现下一代高性能空间,智能移动性,机器人和IOT嵌入式应用程序。

内容提交:

行业:
航空航天和汽车航空航天,汽车,军事/防御等

应用:
N / A.

看更多

Klepsydra Otroid XU4性能基准技术报告

发表于11/10/2020.

摘要

边缘设备越来越大,专门在机器人/物联网/ UAV扇区中处理边缘上的大量数据,而不是在云中。原因主要是成本,需要实时回应数据事件。

目前的Edge数据处理解决方案低于应对应用的要求,并最终落入数据丢失,长期延迟和软件的整体不可靠性。

在本报告中,我们提出了一种高性能数据处理解决方案,可以大大加速数据处理,同时降低CPU使用率(即能量消耗)。全部包含云或硬件更新。

概要

此技术报告包含对计算机ODROID XU4执行的基准测试结果。该基准测试包括在使用和不涉及的ROS的不同方法的情况下测试增加的板载数据处理方案。
结果表明,Klepsydra优于50%的传统并行数据处理技术。

基准框架

基准申请包括序列化到500×100双倍的JSON矩阵。该矩阵由100个通过生产者 - 消费者模式到达的100个双向矢量之内。消费者不断聆听填补要序列化的下一个矩阵的消息。矩阵群体和序列化过程在相同的单线中顺序发生。

该软件用C ++ 11写入,并具有以下配置参数:

  • 线程计数。生产者线程数量。
  • 发布频率。每秒发送多少条消息。

并行数据处理方法。

这份报告有四种不同的方法是基准测试:

单线程安全队列。在这种情况下,所有发布者以并发方式填充单个队列。一个消费者处于接收端填充矩阵的矩阵。

多个线程安全队列。与以前的方法相反,在这种情况下,每个发布者都填写它拥有关联的队列,并具有相关的消费者。每个消费者将竞争矩阵和序列化服务。

事件循环。Klepsydra的主要数据处理方法。在这种情况下,发布者同时填写事件循环内存,而单个消费者接收所有数据并安全地填充矩阵。

图1。线程安全队列和事件循环图。

其中一些方法需要访问矩阵的线程安全,其中一些没有,下表总结了这一点:

ROS基准

表1。需要线程安全代码的数据处理方法。

上述方法仅在内存中运行,也在ROS两种不同的数据交付方法中:

  • ROS SpinOnce方法。这是ROS Core C ++ API提供的单线机制
  • ROS异步方法。其中可配置的线程数正在侦听ROS主题以接收消息传递数据。

图2。ROS发布绩效基准的订阅设置。

图3.。ROS向ROS订阅者提供数据的两种主要方法。

基准标准

三个标准用于解决测试数据处理方法的性能:

  1. 数据处理量。以两种方式测量:生产者线程数量和Hz的出版率。
  2. CPU消费。这是针对数据处理速率来衡量的。即,给出某些处理数据卷所需的CPU需要多少。
  3. 确定主义。测量作为处理每个数据实例所需的处理时间的标准偏差。

基准技术规范

该测试在Otroid XU4计算机上运行,​​用Ubuntu 18.04和ROS Melodic自然运行。

测试执行在以下配置设置下:


表2.基准配置参数

绩效结果

性能结果显示在本报告的最后一页中。他们表明,对于三个评估的标准,Klepsydra SDK优于所有其他方法。下表总结如下:


表3.基准测试结果摘要

绩效结果

左手图表仅用于内存基准,右手,是ROS。
传奇是:
Klepsydra,多安全队列,单一安全队列