2016年5月3日, 西米奇

The Power of Simulation - Modeling and analysis Intel Edge Analytics with Intel®CoFluent™Studio,采访Sangeeta Ghangam

作者:Jakob Engblom,英特尔产品管理工程师

jakob-for-wr-jive

正确的系统和软件架构对于产品的成功非常重要。当您正在构建的系统具有较长的预期寿命时,这一点尤其重要。物联网(IoT)边缘分析就是这样一个系统,一旦你部署了智能分析网关,你就不得不忍受硬件和软件的限制长达十年左右。正确地进行设计非常重要,越早评估和分析设计的性能,就越容易进行更改。如果等到完成所有代码和硬件设计集之后再进行操作,那么系统中所剩的灵活性就微乎其微了。有一种更好的方法,那就是用仿真来做软件的架构预码。在过去,这样的架构和分析工作通常是使用餐巾纸上的数字或在Excel表中完成的,但随着现代系统日益复杂,您需要以更聪明的方式来完成这一工作。的英特尔®CoFluent™工作室提供一种方法来在代码之前工作,但比Excel表中的数字更具体地说。通过使用不同的输入参数构建模型并运行模拟,可以探索更大的设计空间。

在这次采访中,Sangeeta Ghangam讲述了她和她的团队如何使用Intel CoFluent Studio建模和模拟Intel Edge分析系统,以分析和改进系统架构。

Jakob Engblom (JE):请介绍一下你自己!

SGblog

Sangeeta Ghangam (SG):我叫Sangeeta Ghangam,在英特尔物联网集团(IOTG)工作,担任产品解决方案负责人,过去负责物联网分析,现在负责下一代边缘应用平台(EAP)。我已经在英特尔工作了5年多,在2014年开始IOTG之前,我在英特尔的平台工程组与存储设备驱动程序一起工作。

JE:你在英特尔做什么?

SG:我是产品开发团队的一员,专注于EAP开发和推动月球岛平台和边缘计算软件之间的协同作用。我的背景是软件工程,目前我是EAP的产品解决方案领导,这是一个软件和系统的重点角色。

我:月亮岛,我认得这个名字。这是英特尔的硬件和风河的软件。尤其是风河智能设备平台(IDP)。当我在风河的时候,我帮助IDP运作风河系统公司西米奇*月亮岛的一种硬件的模型。看看这些东西是怎么组合在一起的真有趣。有时世界真小。

我:为了更具体,我认为我们必须首先介绍您使用英特尔CoFluent Studio制作模型时所使用的物联网系统。

SG:该系统是一个运行实时边缘分析和决策代码的网关。该网关将使用少量传感器节点来收集信息,并向相当大的工业机器发出控制命令。我的团队正在处理网关上运行的软件,这是这个项目中客户价值的主要驱动因素。最后,为了运行Intel edge分析软件,我们不得不向客户提供购买和部署硬件的建议。

系统看起来是这样的(传感器节点和网关的数量会有所不同):

SGblog2

JE:在设计和架构这个系统时遇到的问题是什么?

SG:我们需要了解如何在给定一组边缘分析模块的情况下确定系统的规模。这里有许多变量:连接到单个网关的传感器数量、传感器和网关之间连接的性质、网关中的计算能力以及运行在网关上的实际软件模块集。

我们需要找到一种解决方案,既能让我们运行目前所需的工作负载,又能留出一定的增长空间。一旦部署了网关和传感器,硬件升级将需要5到10年,但软件将在系统的生命周期内多次升级。因此,我们需要确保我们有一些空间,但不浪费能源和成本。

我:这确实是相当多的变量要处理…我想没有什么是你可以即兴做的。

SG:不,随口说不过去。我们还需要在软件以系统的方式为目标进行编码之前做到这一点。因此,我们决定使用Intel CoFluent Studio来构建系统及其软件的模型。

Intel CoFluent Studio工作在比代码更高的抽象级别上,因此我们可以在硬件和软件确定之前就开始实验。通过在模型中添加参数,可以模拟不同类型硬件对整体性能的影响。由于不涉及实际的代码,更改架构也容易得多,因为您不必重写代码以不同的方式进行通信或使用不同的算法进行计算。

我:那么这个模型是什么样的呢?

SG:下面是模型的一小部分,显示了传感器连接和数据处理管道

SGblog3

它是一个图形建模系统,我们的主要内部和外部组件包括一个边缘系统如我们有传感器,网关平台,可编程逻辑控制器(PLC)至于外部组件,然后各种处理模块内部的每一个元素。

我:如何在这种设置中对软件进行建模——是实际计算结果,还是仅仅将其保留在消耗时间并生成令牌以放入队列的抽象任务中?

SG:上面显示的软件是使用具有代表性的边缘分析工作负载的非常精确的系统测量建模的。我们在英特尔软件和服务集团(SSG)的同事通过找出每条指令的周期(CPI)、指令计数、CPU和内存使用情况来描述系统,这些数字被英特尔Cofluent技术建模团队用来抽象事务。由于我们已经有了基本的操作统计数据,我们现在可以很容易地推断任何内部操作模块的添加或删除,以扩展此模型。

我:因此,明确地说,软件被建模为在处理器上消耗一定数量的资源,以及足够的细节来预测运行一个特定计算任务需要多长时间?

SG:是的,我与SSG的客户端系统优化团队一起工作,使用内部开发的工具以及Vtune来描述工作负载。我们收集了CPI、指令数和详细的CPU/内存使用情况的指标,以准确地建模工作负载。

我:你把实际的分析算法引入模型了吗?

SG:是的,我们确实将边缘分析模型作为一个起点,但是未来我们可以使用Intel Cofluent Studio中的Matlab/R插件来集成分析,比目前1年以上的周期更快。我们运气不错。算法设计者在Matlab中工作,英特尔CoFluent Studio有一个Matlab集成。这样,我们就可以像在Intel CoFluent Studio生成的模型中那样运行Matlab算法,而不需要将它们转换为实际的代码。通过这种方式,我们可以在实际平台上拥有实际运行代码的一年之前使用软件功能,这显然很方便。

我:您模拟的结果是什么?您实际运行了多少种不同的配置?

SG:对于一组给定的输入变量和传感器数据吞吐量,该模型估计了平台资源使用情况,以便我们清楚地知道哪个网关最适合所考虑的工作负载。另一方面,在网关是固定变量的情况下,我们设计了一种更好的方式来管理数据处理,它也提供了架构输入

我:你如何校准模型以获得对结果的信任?

SG:为了进行初始校准,我们在实际硬件上使用实时传感器数据和处理时间轴,并将其作为变量添加到模型中。这意味着我们可以将模型的结果(运行一组特定任务的结果)与硬件的结果进行比较,从而增加我们对模型的信心。

我:你有没有可能用硬件来做这件事?

SG:不是真的。在我们的实验室里,我们有几个通道和几个传感器。在实验室平台上评估体系结构将限制我们使用该硬件集所能构建的配置。我们还必须等待最终的软件进行任何类型的性能分析和估计。我们本可以尝试不同的分析模块集,但如果想要改变网关硬件的容量去运行它就太晚了,所以我们只能将所有我们拥有的内容打包到一个特定的盒子中。不是很建筑。或左移位

相比之下,使用Intel CoFluent Studio,我们可以在拥有硬件之前研究这个问题,而且不受实验室中可用的硬件配置的限制。最终,我们确实在真正的机器上运行代码——但那时,我们对什么可行,什么不可行有了一个很好的想法。

我:你今天还在用这个模型吗?

SG:是的,没有。项目已经结束,所以我们不再使用这里讨论的模型。另一方面,我们从这个项目中学到的东西正在应用到我们的下一个项目中。在这个新项目中,我们遥遥领先于硬件可用性。英特尔CoFluent Studio模型和模拟让我们在有任何代码之前就可以做架构工作,在我们有实际的代码之前。

我们扩展和改进了该模型,使其更容易改变使用的边缘分析模块集,允许更快的实验,探索更大的建筑空间。

我:听到这个消息真是太好了!没有什么能证明一个工具的价值,比如用户在第一个测试项目结束后继续使用它。在我的职业生涯中,我一直在销售和推销开发工具,从现在开始,没有什么比一个用户决定您的工具是标准工具箱的一部分更好的了。

我想这是最后一个问题了。非常感谢您的宝贵时间和见解,桑吉塔!这是一个很好的例子,说明了如何使用仿真更快地构建更好的系统,以及为什么仿真应该被认为是系统、硬件和软件开发人员的必备工具!

SG:感谢您提供更多关于建模项目的机会,我认为在这里学到的经验教训可以应用到其他几个领域,所以我们实际上有支持特定产品愿景的性能数据!

*其他名称和品牌可能被认为是他人的财产。

没有任何计算机系统是绝对安全的。英特尔技术的特性和优势取决于系统配置,可能需要启用硬件、软件或服务激活。在intel.com了解更多,或从OEM或零售商。

以前的指纹安全漏洞:Linux注意事项
下一个OpenStack在虚拟CPE中可行吗?