CN103870324A - 异构多处理器环境中人机接口应用的有效执行 - Google Patents
异构多处理器环境中人机接口应用的有效执行 Download PDFInfo
- Publication number
- CN103870324A CN103870324A CN201310678120.2A CN201310678120A CN103870324A CN 103870324 A CN103870324 A CN 103870324A CN 201310678120 A CN201310678120 A CN 201310678120A CN 103870324 A CN103870324 A CN 103870324A
- Authority
- CN
- China
- Prior art keywords
- hmi
- application
- information
- knowledge base
- engineering
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
Abstract
本发明涉及异构多处理器环境中人机接口应用的有效执行。提出了一种用于在各种异构计算和通信环境中创建和执行人机接口(HMI)应用的布置。该布置包括用于基于已知HMI元素的库来设计HMI应用的工程系统、用于确定用于执行所设计的HMI应用的最优配置的运行时系统以及与工程系统和运行时系统二者通信的知识库。知识库存储与已知HMI元素中的各种HMI元素相关的信息以及由应用开发者创建的信息和在运行时系统执行HMI应用期间生成的信息。因此,知识库可以与工程系统交互用于更新关于所选择的元素的信息,并与运行时系统交互以收集执行信息来用在后续应用开发中。
Description
技术领域
本发明公开了用于改进在可以包括不同类型的处理器和通信元素的异构环境内执行人机接口(HMI)应用的效率的系统、方法和程序。
背景技术
在当今的复杂工业系统世界中,使用人机接口(HMI)设备来为人员提供监视和控制工业工厂的各种方面的手段。诸如监视温度和压力的设置、启动和停止处理、审查传感器读数以及设置致动器值等等的活动都可以通过HMI设备来控制。其他操作也可以落入工业控制人员的权限内。一种HMI设备是计算机控制的部件,其必定要求使用各种图形可视化(向操作人员提供图形用户接口或GUI),并且必须对来自人员的输入进行响应。给定其中一般地使用这些HMI设备的工业环境,它们的基于计算机的处理需要实时操作、识别警报条件以及在相对极端的环境(例如,高温)中继续操作。
目前,HMI设备已经基于使用是常规的单核心多处理器作为用于设备的主计算引擎,其中HMI应用开发者按照需要使用已知的HMI元素来构建应用。
沿着单独开发的道路,近年来已经通过创造多核心处理器——从其中将两个单独处理器集成在单个集成电路内的双核心配置开始,推进了处理能力的增加。当今,后文有时称为“多处理器”的这些处理器用各种不同的形式来配置:具有多个核心的单个处理器、多个单核心处理器、“众多”核心处理器(其包括多个多核心处理器)或以上的任意组合。
为了本发明的目的,“异构”多处理器环境因此意图定义这样的系统,其中形成完整的一套处理能力的多个核心可以包括不同类型的处理器,每种类型的处理器具有其自己的操作参数集,诸如一个或多个处理核心的大小、速度、吞吐量等。
特别是作为它们相对于常规单核心处理布置的改进的性能的结果,多处理器(中央处理单元(CPU)和图形处理单元(GPU)二者)正成为现代工业计算机系统中的标准计算元素。例如,与传统单核心CPU相比,基于多处理器的CPU更节能并且生成更少的热。因此,与调整大小以在相同条件下执行的对应单处理器CPU系统相比,基于多处理器的CPU的冷却更容易并且较不昂贵。此外,作为其并行执行能力的结果,基于多处理器的CPU具有在给定时间段中处理更多指令的能力。
为了最佳地利用多处理器系统的并行执行属性,应用程序员必须能够标识和定义程序的可以在不同处理核心内同时执行的数据无关的片段。尽管该原理在概念上简单,但是标识数据无关的片段的能力在实践中非常困难,对于诸如上述的HMI应用这样的需要实时运行的程序而言尤其如此。
图形用户接口(GUI)是HMI应用的常见示例,由于这些GUI操作的实时要求,其难以跨多个处理器执行。此外,并行执行并不总是导致更快的计算。在实践中,应用程序员还必须考虑同步不同处理单元(可能以不同速率操作)和将数据从一个处理单元传送到另一个的代价。实际上,该传送代价可能减轻由于并行执行而产生的任何性能增益,并且对于应用的性能有时可能是有害的。
在解决该问题的尝试中,软件和硬件厂商已经能够加速一些GUI原语操作的执行。传统地,这些加速的操作用系统在(与软件相对的)专用硬件中执行的库来实现。例如,视频卡厂商提供用于在GPU中执行共同GUI操作的库。尽管硬件加速工作得好并且减少了一些GUI操作的执行时间,但是HMI应用不能依赖于这些假设来满足它们的实时期限,因为加速库必定是硬件特定的并且随系统改变。即,HMI应用不能在以下假设上开发,可能期望运行所开发的应用的所有HMI系统均包括硬件加速库,因为已知HMI系统从非常高端的布置(例如,具有GPU和64位多核心CPU)到低端系统(例如,具有最小图形能力、很少或没有存储器以及16位嵌入式处理器)自始至终在改变。
因此,仍然期望找到不同于硬件加速的方法来改进多处理器环境中HMI应用的效率。
发明内容
通过本发明来解决现有技术中仍然存在的需要,本发明涉及用于改进跨可以包括不同类型的处理器的多处理器环境执行人机接口(HMI)应用的效率的系统、方法和程序。
根据本发明,提供了HMI创建和执行架构,其使用单独的工程和运行时系统,并且还包括累积关于各种HMI应用元素的信息的“知识库”。知识库通过查询和更新与HMI工程系统和HMI运行时系统二者交互以建立关于对于供工程和运行时系统使用而言可用的各种HMI元素的细节的信息的数据集。
在一个实施例中,本发明采取用于在各种异构计算和通信环境中创建和执行人机接口(HMI)应用的系统的形式,其包括用于基于已知HMI元素的库来设计HMI应用的工程系统、用于确定用于执行工程系统设计的HMI应用的最优配置的运行时系统以及与工程系统和运行时系统二者通信的知识库。根据本发明,知识库存储与已知HMI元素中的各种HMI元素相关的信息以及由应用开发者创建的信息和在运行时系统执行HMI应用期间生成的信息。因此,知识库可以与工程系统交互用于更新关于所选择的元素的信息,并与运行时系统交互以收集执行信息来用在后续应用开发中。
附图说明
现在参照附图,
图1是根据本发明的用于实现异构计算环境中的HMI应用的执行的架构的图;
图2包含根据本发明的用于在异构环境中执行HMI应用的示例性过程的流程图;
图3是示出在图2中所概述的过程期间与知识库的示例性交互的流程图;
图4是用于估计异构系统环境中的HMI应用的最优性能配置的示例性过程的流程图;
图5是基于理想性能的一个示例性配置计算的图;
图6示出了本发明的方法的实现,具体示出了示例性HMI运行时系统的并行呈现;以及
图7是示出如图6中所示的HMI运行时系统的示例性实现的流程图。
具体实施方式
如下文将详细描述的,本发明提供了用于以有效使用多个异构计算和通信元素来提供对GUI操作的实时响应的方式来创建和执行HMI应用的系统、方法和程序。本发明的系统包括“知识库”,其可由应用开发者、工程系统和运行时系统访问来收集和共享与在HMI应用的形成中使用的各种元素有关的信息。在HMI应用的生成中涉及的三个实体(开发、工程和执行)之间的该信息的共享产生能够在异构环境中——以及在其中可以执行应用的不同配置的环境中有效执行HMI应用的程序。
图1是根据本发明的用于实现异构计算环境中的HMI应用的执行的架构的图。该系统架构包括三个主要元素:HMI工程系统10、HMI运行时系统20和知识库30。如下文将详细讨论的,知识库30的创建和使用是根据本发明来实现异构多处理器系统中的HMI应用执行中的关键部件。单独的专用HMI工程系统10的使用意在允许应用开发者关注于HMI应用的特定设计,而无需知道或者担心作为HMI运行时系统20的适当关注的任何系统相关的约束(例如,与诸如存储器、硬件加速库、CPU、GPU等部件有关的规范和细节)。
尽管HMI应用开发者可能没有经历创建可执行程序中涉及的实际工程,但是他/她可能确实具有系统要求形式的有用信息和可能在工程过程中有用的其他“暗示”。迄今为止,该信息不一定将被传送给用于实际创建HMI应用的可执行代码的其他组织。根据本发明,将该基于开发者的信息传递到并保留在知识库30中。还可以将该信息作为与从HMI工程系统10发送到运行时系统20的应用文件一起递送的信息的部分直接传输到HMI运行时系统20。在过程中随后的点处,HMI系统的其他方面中涉及的工程师将能够访问知识库30并使用该信息。
HMI工程系统10运转以理解应用开发者定义的系统级要求并为正使用的特定HMI系统(其可以是低端HMI系统、高端HMI系统或一些其他类型的布置)创建实时执行要求的集合。这些具体细节由运行时系统20以“主机系统信息”的形式提供给工程系统10,如图1中所示。
如下文所详细描述的,HMI运行时系统20被具体配置为提供异构多处理器的有效使用并因此减少HMI应用的整体执行时间,跨形成异构资源的给定集合的各种计算元素平衡工作负载和调度计算。
根据本发明,HMI工程系统10和HMI运行时系统20结合从知识库30获得的信息来工作,以找到最优方式来在异构计算元素中执行应用同时最小化响应时间并遵守实时应用要求。HMI运行时系统20被配置为实例化HMI工程系统10传递的应用,从而在可用的硬件和网络资源中执行应用。系统20需要能够解释接收到的知识标注并对这些标注做出有效使用以跨多个资源执行应用的负载平衡和调度。如下文所描述的,静态和动态的调度与负载平衡二者均被考虑。HMI运行时系统20的工作是作为硬件资源的管理者,并以如下这样的方式进行监管,该方式即尽可能快地执行应用并遵守明确的实时要求。
另外,HMI运行时系统20管理和维持以下元素的控制:(1)当前系统中可用的计算单元(这些可以包括多核心处理器、众多核心处理器、GPU、数字信号处理器(DSP)、传感器、致动器、可编程逻辑控制器(PLC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)以及能够执行数据的计算的任何其他设备);(2)这些各种计算单元之间的互连网络;(3)GUI库;以及(4)对视频驱动器和屏幕设备的访问。HMI运行时系统20还维持和监视应用的根据时间的执行状态。该执行状态信息然后用于用简档信息、频率分析等来更新知识库30。
具体而言,HMI运行时系统20负责以如下这样的方式将应用划分成在可用的硬件和网络资源中执行的数据无关的片段,即优化执行时间、响应时间、负载平衡、资源使用、功耗、热分布、容错、错误处理以及任何其他期望的度量。
参照图1的细节,HMI工程系统10被示出为包括第一接口部件11,其可由开发者访问并用于将原始应用概念导入HMI工程系统10。系统10可以经由接口11将请求和其他提示传输回开发者。第二接口12包括在HMI工程系统10内并示出为创建在HMI工程系统10与知识库30之间的通信路径。可以从HMI工程系统10向库30发送查询以请求诸如以可以允许并行化、硬件加速器的使用等的特定原语为例的对于开发HMI应用的工程方面有用的信息。知识库30的这些各种操作将在下文与图2和3的流程图相关联地详细描述。
继续HMI工程系统10的描述,上下文推断模块13运转来接收和审查来自相关联的HMI运行时系统20的主机系统信息。该主机系统信息包括诸如以下的元素:特定系统中在该情况下正用于执行HMI应用的处理器的数量、每个处理器的核心数量、系统中GPU的数量、关于处理元素(诸如高速缓冲存储器组织)的规范、系统中自动化元素(例如,PLC、其他HMI设备、传感器、致动器等)的数量和类型、系统中每个计算元素的性能特性、互连网络信息(例如,时延、带宽、协议类型等)、针对特定硬件部件加速或“调整”的GUI库的可用性、系统中的当前工作负载和工作负载的分布,以及——如果HMI应用正在运行——该应用的性能特性。
基于所有该信息,系统10内的工程模块14开发用于HMI应用的多处理器调度,包括供HMI运行时系统20使用的与可以利用并行化、加速库等的特定HMI功能性有关的执行规则。
在HMI应用工程过程结束后,将应用文件15从HMI工程系统10传递到HMI运行时系统20,其评估可用的计算和网络资源以及可以用来加速标识的原语中的某些的库。示例性HMI运行时系统20的细节在图1中示出为包括运行时模块21,其提供在HMI运行时系统20内表现为“实例”的HMI应用文件的调度和负载平衡。HMI运行时系统20内的GUI库22与示例性多核心处理器24、众多核心处理器25和GPU 26相关联地运转以经由视频驱动器接口28向屏幕设备27呈现选择的HMI元素。
与HMI工程系统10一样,HMI运行时系统20与知识库30交互以获得响应于特定查询的信息,以及用运行时期间“学习”的反馈(例如,简档数据、频率分析、系统的性能特性等)来更新知识库30。
根据本发明,知识库30被配置为通过查询和更新与HMI工程系统10和HMI运行时系统20二者交互,从而根据不同准则对其中存储的“知识”进行分类。图1中示出了存储的知识的一种示例性组织,其将知识库30示出为包括以下划分:并行性能力划分31、时间要求划分32、用户要求划分33、应用要求划分34、系统要求划分35、简档数据划分36、历史数据划分37、频率数据划分38以及热点数据划分39。应当理解,该特定的划分组织仅仅是示例性的,知识元素的各种其他组织可以被使用并更好地适用于其他特定应用。
将知识库30从HMI工程系统10和HMI运行时系统20解耦合是本发明的重要方面。通过作为独立实体来操作,知识库30并不限于其中执行HMI应用的各种系统的特定硬件和软件元素的架构和/或能力。实际上,设想将以以下方式来开发知识库30:允许其与多个不同工程和运行时系统交互,从而不断分发和接收信息以建立不断更新并可用来用在各种异构多处理器环境中的鲁棒的库。
知识库30还被配置为保留供HMI工程系统10和HMI运行时系统20使用的设计模式,示出为图1中的知识库30的段30-2。例如,诸如TCP/IP实现的HMI运行时系统20的基本操作可以用特定执行细节来标注并存储在知识库30中(即,“并行化”部分中),使得运行时系统可以利用并行化框架。因此,在其中HMI运行时系统在低端HMI设备中执行的环境中,关于TCP/IP实现的并行化能力的该知识可以由HMI运行时系统内核用于使用该相同并行化框架来调度系统级操作。类似地,HMI工程系统10可以利用该特征来并行化系统级工程任务(例如,多线程化和并行化用户接口)。
在对本发明的系统架构的该理解的情况下,下面将与图2-4中示出的流程图相关联地详细讨论在异构环境中开发和有效执行HMI应用的示例性过程。
首先由应用开发者(人或自动化)创建HMI应用以实现要由HMI设备执行的特定功能或功能集合。特定HMI应用的细节与本发明的主题并不密切相关,其替代地查看在提供用于在异构环境中开发和执行这些HMI应用的系统、方法和程序的更高级别处的过程,注重的是给定应用的具体功能性。
在大多数情况中,应用创建过程从开发者从HMI元素(HMI元素被定义为基于工业控制系统的监视功能、警报、传感器、致动器等等)的库中选择一个或多个元素开始(示出为步骤200)。在可视编程环境中,将任何期望的HMI元素(压力值、温度传感器、警报等)“剪切并粘贴(cut-and-pasted)”、拖动或以其他方式放置到屏幕上。然后将用于实现每个元素的代码与其可视表示进行关联,如步骤205中所示。
根据本发明,应用开发者有能力为放置在HMI应用上的每个HMI元素提供附加的帮助信息(暗示)或要求(步骤210),将该信息与其相关的HMI元素相关联地存储在知识库30中(步骤215)。例如,如果将HMI元素放置在屏幕中以提供视频源,则开发者可以创建诸如以下的注释:“视频处理是可以利用专用信号处理库的CPU密集的应用”和/或“视频处理包含大量并行性”。这些注释然后以与特定视频源元素的链接关系存储在知识库30中。
在另一示例中,在将表示警报的HMI元素放置在屏幕上时,开发者可以创建注释“该警报元素应当以最高优先级来处理——与系统的安全关键操作相关”。其他示例包括诸如“该操作必须在少于50ms内完成”的实时要求,或诸如“该操作将很少发生”的设计经验。然后将HMI应用自身和(开发者所已知的)相关联的知识也存储在知识库30中(步骤220)。后文与图3的流程图相关联地描述知识库30的细节。
继续图2中概述的过程的描述,然后将开发者创建的HMI应用加载到HMI工程系统10中(步骤225)。HMI工程系统10然后开始分析形成该应用的HMI元素(步骤230),并且还向知识库30查询关于特定HMI元素的附加信息,以及更新知识库30的关于这些HMI元素的记录。图3包含流程图,其示出可以由HMI工程系统10用于获取关于当前包括在正开发的应用中的各种HMI元素的信息的示例性过程,并且将在下文中详细描述该示例性过程。
一旦HMI工程系统10已经从知识库30获取了所有已知信息,考虑来自HMI运行时系统20的特定主机系统信息(步骤235)并使用其来创建该HMI应用的特定“上下文”。
HMI工程系统10然后创建特定HMI应用文件并将所有该信息传递到HMI运行时系统20(步骤240)。该传递必须包括对于HMI运行时系统20以最有效方式执行应用必要的知识标注。存在三种不同的其中发生该传递的情景:(1)HMI运行时系统20未在运行并且没有应用是活跃的;(2)HMI运行时系统20在运行,并且不同的应用是活跃的;以及(3)HMI运行时系统20在运行并且与正被传递的应用相同的应用已经是活跃的。
该过程中最重要的步骤之一是估计异构系统中应用的最优性能配置,在图2的流程图中标识为步骤245并且在图4的流程图中详细示出。理想的性能步骤基于各种度量来确定使用HMI应用的执行的资源的最佳方式。可以在应用的执行之前、在应用的执行期间或者甚至在应用的执行之后计算理想性能配置。可以将理想性能配置与实际性能进行比较,然后将该信息存储在知识库30中以供将来在为另一应用开发执行计划时参考。
一旦在步骤245中选择了所确定的光学性能配置,HMI运行时系统20就继续基于可用于在特定硬件配置中有效执行HMI应用的核心、GPU等的特定数量和容量来将HMI元素和动作中不同的一些分配给不同线程(步骤250)。然后以最佳地提供数据无关的程序片段之间的负载平衡和调度的方式将开发的线程分配给CPU(步骤255)。然后执行HMI应用(步骤260),其中在简档信息和频率分析方面的运行时数据可以在执行期间从HMI运行时系统传到知识库30。
如上文所提及的,图3包含流程图,其示出可以由HMI工程系统10用于获取关于当前包括在正开发的应用中的各种HMI元素的信息的示例性过程。如图3中所示的查询过程在逐个元素的基础上执行——也可以使用用于获得信息的其他布置。如所示出的,该过程从查询以确定应用开发者(称为“用户”)是否已经存储任何对于工程过程有用的信息开始(步骤300)。如果找到开发者信息,则将该信息返回到HMI工程系统10(步骤305),并且处理移动到下一查询(步骤310)。如果不存在与当前HMI元素相关联的开发者信息,则处理也移动到在步骤310处的该下一查询,其在该情况中是用于确定原始HMI应用是否是(与由开发者创建相对的)自动生成的应用的查询。如上文所提及的,具体HMI应用可以由应用工程师从头开始创建,或者采取针对当前任务而被重用的之前创建的应用的形式。
如果应用是自动生成的,则获取与该信息相关的之前存储在知识库30中的信息并将其发送给HMI工程系统10(步骤315)。接下来的查询是要针对任何历史数据来搜索知识库30(步骤320),该历史数据被认为包括从相同HMI元素的之前执行发展来的任何信息,其中也将该数据传到HMI工程系统10(步骤325)。可以是可用的任何运行时数据(步骤330中的查询)被类似地传送到HMI工程系统10(步骤335)。与运行时数据紧密相关的是(与接下来的步骤340中的查询相关联的)“频率数据”,其是通过分析各种HMI元素和动作随时间的使用模式而得到的信息。例如,如果确定具体元素被频繁“调用”来使用但仍花费相对长的时间来执行,则可以将该元素标记为其中程序可以在执行期间停顿(bog down)的“热点”。在开发HMI应用的细节中,该类型的频率信息对于工程系统通常非常有用。默认地,如果知识库30不包含任何其他信息(即,如果对这些查询中的每一个的响应都已经是否定的),则数据流和控制分析信息保持可用并被返回到HMI工程系统10(步骤350)。
存在若干其中HMI工程系统10与知识库30之间的“查询/更新”通信为可能的场景,其中这些场景中的每一个将采用如上所概述并且在图3的流程图中示出的步骤。
例如,在一种情景中,开发者向HMI工程系统10仅提供HMI元素和要由这些元素执行的动作——开发者不提供其他特定知识。在该情况中,HMI工程系统10将查询知识库30以查看对于定义的HMI元素和动作中的每一个是否存在任何其他可用的知识。
可替代地,开发者可以为应用中的少数HMI元素提供一些附加知识,但是许多元素是在没有附加信息的情况下被提交的。HMI工程系统10然后将与知识库30交互以首先更新与其接收的知识相关的任何信息,同时还发起对关于剩余元素的信息的查询,开发者未提供针对其的附加信息。
开发者提交的一些“新”信息是错误的也是可能的。在该情况中,HMI工程系统10必须管理错误的信息并用来自知识库30的最合适的选择来替代它。在一个实施例中,错误的信息之后可以存储在知识库30中,但是标记为“错误的”、“不可靠的”或者类似的限定符。该信息可以在系统开发的后面的阶段中用于细调HMI工程系统10、HMI运行时系统20的设计,或者用于向新HMI应用的开发者提供指导。
在其中自动创建HMI应用的情景中,HMI工程系统10应当评价与应用一起提交的任何新知识、否决(override)错误的知识或者为定义的HMI元素和动作提供默认知识。用于自动生成的HMI应用的令人感兴趣的特征是使用关于元素的知识来细调设计的能力。例如,来自知识库30的输入可以由自动化开发者用于找到HMI元素和动作的最合适的绝对和相对位置。
如上文所提及的,HMI应用创建过程中最重要的步骤之一涉及估计异构系统中应用的最优性能配置。该步骤被称为步骤245并且在图4的流程图中详细示出。参照图4,一种用于计算理想性能配置的方法考虑与可以分析来量化应用的执行效率的特定测量相关的准则集合中的一个或多个。
应当理解,在该情况中的“一个或多个”被认为定义了这样的情景,其中理想性能配置仅使用这些测量中的一个、这些测量中的两个或者测量的任何其他子集(包括所有测量)。在图4的流程图中,第一查询400询问最优性能配置是否将“基于该HMI系统的将运行HMI应用的资源”。如果确实要使用这些资源(即,对查询400的肯定响应),则过程移动到步骤405以确定诸如核心数量、处理器、域特定的硬件和GPU的数量等的量词,考虑计算元素和互连这些元素的网络二者的时延和能力。
此时,做出是否要考虑其他准则的决定(步骤410)。如果响应是“否”,则基于该资源信息来确定最优性能配置结果并将其返回到图2的流程图中示出的过程。另一方面,如果要考虑其他准则,则来自决定步骤410的输出移动到查询步骤415。如图4中所示出的,来自关于研究可用的资源的原始查询的“否”输出也将移动到查询步骤415。定义为“计算理想性能”的该手段是用于确定最优性能配置的暴力手段(其可能是耗时的)。“暴力”手段(如步骤420中所示)创建不同配置并执行HMI应用,直到找到导致最短执行和周期时间(或考虑中的优化准则)的配置为止。
再一次,做出检查(步骤410)以确定是否要考虑任何其他准则,其中过程或者结束或者其移动到下一查询——在步骤425中示出为预计算手段,其使用根据各种性能度量来表征应用的性能的查找表。如果选择该基于度量的方法(步骤430),则HMI运行时系统30运转以选择对理想配置的良好近似。此时,过程再次通过检查步骤410并且或者结束或者继续到步骤435处的下一查询。在该情况中,最优性能准则被定义为基于事件的估计,其考虑应用必须响应的事件的频率,其中这些事件包括用户事件、网络事件、传感器/致动器事件、中断等(步骤440)。
图4中示出的作为用于确定最优性能配置的示例性方法的最后准则被定义为基于“热点”的估计(步骤445),其参考程序的消耗最多资源的片段的特性。标识这些片段对于优化是非常有用的。例如,如果热点在浮点运算中,则该程序片段可以从CPU卸载到其中可以并行执行浮点运算的GPU。
在任何替代中,将图4的最优性能配置过程的结果返回到如图2中所示出的系统流程图的步骤245,其中HMI运行时系统20使用该配置信息来以最优布置分配任务。
图5是基于理想性能的一种示例性配置计算的图。该图表征了根据工作负载(即,必须呈现的总数据大小)和绘制(draw)整个工作负载所需的调用数量的HMI应用的执行时间。使用如图5中所示出的该具体特性,对于在值160与1280之间的任何给定工作负载,可以找到平衡用于绘制该工作负载的调用数量的最优点。该分析确定用于将工作负载划分为可用资源的并获得在最短时间量(或任何其他性能度量)内执行整个应用的最佳方式。
图6示出了本发明的方法的实现,具体示出了HMI运行时系统20的并行呈现。GUI应用具有作为在GUI对象后面的关键功能动作的绘制原语60,如图6的框A中所示。为了并行化这些动作,将原语60分配给来自线程池64的不同线程62。该分配必须考虑这些原语60的使用如框B中所示的策略确定的无关或相关性质。如所示出的,框B包括对原语60的分析并检测任何相关对象。在检测到相关对象之后,如框B中所示的过程将相关对象分组在一起并之后将它们作为单个“对象”来处理。该分组确保这些原语将不被分离开并且将被分配给相同线程。
一旦标识相关性并且将相关原语分组到一起,就执行聚类步骤,其以最优方式(即,基于诸如每线程相等数量的元素、每线程的元素大小、每元素的近似计算等的准则)对无关原语进行分组,并将这些组分配给线程(如上面图2的流程图中的步骤250所标识的)。这些线程现在可以同时执行而彼此没有任何相关性,如图6的框C中所示。在该特定实现中,GUI元素的绘制和呈现在内部存储器缓冲器中发生。
图7是示出HMI运行时系统20的示例性实现的流程图。第一循环700被定义为用于处理所有用户触发的事件的用户事件循环。这些事件在步骤705中解码并然后入队710到GUI事件队列中以由工作者线程进行处理,该工作者线程处理GUI元素及它们相关联的动作的执行。第二循环715被定义为I/O循环(有时也称为通信中断循环)并处理与HMI运行时系统20相关联的所有通信。如果由工作者线程或者系统级线程进行的动作是必要的,则中断处理可以使事件入队。在图7的过程中示出的最后分支720是调度分支,其首先确定是需要静态还是动态调度。如果做出以静态调度继续的决定,则处理移动到步骤725,其跨异构计算元素执行一次负载平衡和事件的调度。线程被创建(步骤730),与处理资源进行关联(步骤735),并且将初始工作分派给工作者线程(步骤740)。
运行时性能由单独线程(未示出)来监视,并且如果当前性能不满足一组预定的性能要求,则执行重新度量并使用监视周期来检测执行中的任何异常,或者替代地,断定满足性能度量并且过程可以继续。
如果替代地确定应用要求动态调度,则创建线程池(步骤745)并且开始第一执行循环,包括负载平衡和调度(步骤750)、工作的分派(步骤755)以及对该执行的性能的监视(步骤760)。如果在该第一循环中满足了性能度量,则程序循环回到步骤755以继续分派工作(如果有其他分配剩下的话)。替代地,如果性能不太令人满意,则过程返回到步骤750以尝试用于负载平衡和调度的不同配置。
应当理解,实现本发明的功能性所使用的各种异构资源可以用各种形式的硬件、软件、固件、专用处理器、通用处理器或它们的任意组合来实现。一些实施例用软件实现为有形地体现在非暂态程序存储设备上的程序。通过用系统或程序来实现,为在不同线程中并行处理而进行的元素和/或动作的分配可以被提供作为HMI应用的创建的部分。
实际上,诸如处理器和/或存储器的部件可以是计算机、个人计算机、服务器、工作站、网络处理器或其他现在已知或今后开发的处理系统的部分。诸如以显示器、盘存储设备、键盘等为例的各种外围设备可以耦合到处理器。程序可以在包括任何适当架构的处理器中上传或者由包括任何适当架构的处理器来执行。
指令、用户输入、规则和/或其他信息存储在可以是外部存储器或者嵌入在计算机内的成员元素的非暂态计算机可读存储器中。用于实现本文讨论的过程、方法和/或技术的指令提供在计算机可读存储介质或存储器上,诸如高速缓存、缓冲器、RAM、可移除介质、硬盘驱动器或其他计算机可读存储介质。响应于在计算机可读存储介质中或上存储的一个或多个指令集而执行附图中示出或者本文中描述的功能、动作或任务。这些功能、动作或任务独立于具体类型的指令集、存储介质、处理器或处理策略,并且可以由独立或组合操作的软件、硬件、集成电路、固件、微代码等来执行。
实际上,本文描述的各种改进可以一起或者分开使用。尽管本文已经参照附图描述了本发明的说明性实施例,但是应当理解,本发明并不限于那些精确实施例,并且各种其他改变和修改可以在此受本领域技术人员的影响而不偏离所设想的发明的范围或精神。
Claims (10)
1. 一种用于在各种异构计算和通信环境中创建和执行人机接口(HMI)应用的系统,所述系统包括:
工程系统,用于基于已知HMI元素的库来设计HMI应用;
运行时系统,用于确定执行工程系统设计的HMI应用的最优配置;以及
知识库,其与工程系统和运行时系统二者通信,知识库用于存储与已知HMI元素中的各种HMI元素相关的信息以及由应用开发者创建的信息和在运行时系统执行HMI应用期间生成的信息,知识库与工程系统交互以更新关于所选择的元素的信息,并与运行时系统交互以收集执行信息来用在后续应用开发中。
2. 如权利要求1所限定的系统,其中,工程系统聚集和编码包括要求、拓扑、配置目的、频率和简档的信息以创建用于特定包的HMI应用。
3. 如权利要求1所限定的系统,其中,工程系统创建执行规则以与所创建的HMI应用一起传输到运行时系统。
4. 如权利要求1所限定的系统,其中,运行时系统运转以评估可用来处理工程系统设计的HMI应用的可用的计算和网络资源。
5. 如权利要求1所限定的系统,其中,运行时系统运转以评估可用来加速所设计的HMI应用中包括的一个或多个原语GUI操作的执行的库。
6. 如权利要求1所限定的系统,其中,运行时系统在执行期间收集简档数据、频率分析和性能特性信息并将该信息传递到知识库。
7. 如权利要求1所限定的系统,其中,知识库根据与执行HMI应用的方面相关联的特定准则来对其中存储的知识进行分类。
8. 如权利要求7所限定的系统,其中,特定准则是从由以下构成的组中选择的:并行性、时间要求、用户要求、应用要求、系统要求、简档数据、历史数据、频率数据和热点数据。
9. 如权利要求1所限定的系统,其中,知识库还包括用于存储频繁使用的设计模式的划分。
10. 一种在异构计算机和通信环境中创建和执行HMI应用的方法,所述方法包括以下步骤:
使用工程系统来基于已知HMI元素的库来设计HMI应用;
使用单独的运行时系统来确定执行工程系统设计的HMI应用的最优配置;以及
开发从工程系统和运行时系统二者解耦合但与这二者通信的知识库,知识库用于存储与已知HMI元素中的各种HMI元素相关的信息以及由应用开发者创建的信息和在运行时系统执行HMI应用期间生成的信息,知识库与工程系统交互以更新关于所选择的元素的信息,并与运行时系统交互以收集执行信息来用在后续应用开发中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/714,969 US8799858B2 (en) | 2012-12-14 | 2012-12-14 | Efficient execution of human machine interface applications in a heterogeneous multiprocessor environment |
US13/714,969 | 2012-12-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103870324A true CN103870324A (zh) | 2014-06-18 |
Family
ID=49765296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310678120.2A Pending CN103870324A (zh) | 2012-12-14 | 2013-12-13 | 异构多处理器环境中人机接口应用的有效执行 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8799858B2 (zh) |
EP (1) | EP2743867A1 (zh) |
CN (1) | CN103870324A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105511403A (zh) * | 2014-10-10 | 2016-04-20 | 西门子公司 | 生产机床或机床以及用于运行这种机器的方法 |
WO2018058451A1 (zh) * | 2016-09-29 | 2018-04-05 | 西门子公司 | 一种人机界面生成方法、组件以及电子设备 |
CN108351804A (zh) * | 2015-11-12 | 2018-07-31 | 西门子股份公司 | 基于模型的人机界面(hmi) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140359590A1 (en) * | 2013-05-30 | 2014-12-04 | National Instruments Corporation | Development and Deployment of Parallel Floating-Point Math Functionality on a System with Heterogeneous Hardware Components |
US9135591B1 (en) * | 2014-05-15 | 2015-09-15 | Linkedin Corporation | Analysis and assessment of software library projects |
US9582254B2 (en) * | 2014-05-22 | 2017-02-28 | Oracle International Corporation | Generating runtime components |
US9652213B2 (en) * | 2014-10-23 | 2017-05-16 | National Instruments Corporation | Global optimization and verification of cyber-physical systems using floating point math functionality on a system with heterogeneous hardware components |
EP3281881B1 (en) * | 2015-04-08 | 2019-08-14 | Fujimori Kogyo Co., Ltd. | Tubular container |
US11212344B1 (en) * | 2020-08-31 | 2021-12-28 | Verizon Patent And Licensing Inc. | Systems and methods for utilities-based workload management in a communication network |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU5025600A (en) * | 1999-05-17 | 2000-12-05 | Foxboro Company, The | Process control configuration system with parameterized objects |
US6577323B1 (en) * | 1999-07-01 | 2003-06-10 | Honeywell Inc. | Multivariable process trend display and methods regarding same |
US20020073141A1 (en) * | 2000-12-12 | 2002-06-13 | Dewhurst Sebastian John | Computational fluid dynamics software |
EP1296207B1 (de) | 2001-09-25 | 2014-08-27 | Siemens Aktiengesellschaft | HMI Gerät und Verfahren zur Bedienung einer technischen Einrichtung, Automatisierungssystem mit HMI Gerät und Computerprogrammprodukt mit Programm zur Durchführung des Verfahrens in einem HMI Gerät oder Automatisierungssystem |
US6981242B2 (en) * | 2002-01-11 | 2005-12-27 | Hewlett-Packard Development Company, L.P. | System and method for developing custom operator-specific software-applications |
EP1387261A1 (fr) * | 2002-07-30 | 2004-02-04 | Sereneo | Logiciel de generation de code d'application informatique et langage de description de logiciel |
US7350188B2 (en) * | 2002-07-31 | 2008-03-25 | Sap Aktiengesellschaft | Aggregation of private and shared workflows |
US7711670B2 (en) | 2002-11-13 | 2010-05-04 | Sap Ag | Agent engine |
US7624375B2 (en) * | 2003-06-12 | 2009-11-24 | National Instruments Corporation | Automatically configuring a graphical user interface element to bind to a graphical program |
EP1501062B1 (de) | 2003-07-22 | 2012-01-04 | Siemens Aktiengesellschaft | Verfahren und HMI System zur Bedienung und Beobachtung einer technischen Anlage |
US20110046754A1 (en) | 2003-09-25 | 2011-02-24 | Rockwell Software, Inc. | Industrial hmi automatically customized based upon inference |
US7194446B1 (en) | 2003-09-25 | 2007-03-20 | Rockwell Automation Technologies, Inc. | Location-based execution of software/HMI |
US7581207B2 (en) * | 2003-12-04 | 2009-08-25 | Alcatel Lucent | Method of configuring managed entities in a communications network using configuration templates |
US7661088B2 (en) * | 2004-10-20 | 2010-02-09 | Microsoft Corporation | Systems and methods to efficiently and automatically effect population of custom controls onto a visual designer toolbox |
US20060206827A1 (en) | 2005-03-10 | 2006-09-14 | Siemens Medical Solutions Usa, Inc. | Live graphical user interface builder |
US7657868B2 (en) * | 2005-03-14 | 2010-02-02 | Research In Motion Limited | System and method for applying development patterns for component based applications |
US20070260982A1 (en) | 2006-04-11 | 2007-11-08 | Invensys Systems, Inc. | Runtime human-machine interface for process control having enhanced graphical views of detailed control information |
US7844942B2 (en) * | 2006-06-12 | 2010-11-30 | International Business Machines Corporation | System and method for model driven transformation filtering |
EP1873634A3 (en) | 2006-06-29 | 2013-10-09 | Rockwell Automation Technologies, Inc. | HMI framework for extensible automation system engineering platforms |
US8181157B2 (en) * | 2006-09-29 | 2012-05-15 | Rockwell Automation Technologies, Inc. | Custom language support for project documentation and editing |
US7913228B2 (en) * | 2006-09-29 | 2011-03-22 | Rockwell Automation Technologies, Inc. | Translation viewer for project documentation and editing |
US8566780B2 (en) * | 2007-06-26 | 2013-10-22 | Microsoft Corporation | Object model based mapping |
US8484615B2 (en) * | 2007-12-20 | 2013-07-09 | Ncr Corporation | Software framework to build an executable scheme in a GUI environment |
US8407661B2 (en) | 2008-07-28 | 2013-03-26 | Abb Research Ltd. | Method and system for creating HMI applications for an automation process |
US8359573B2 (en) * | 2008-09-30 | 2013-01-22 | Rockwell Automation Technologies, Inc. | Application builder for industrial automation |
US8726236B2 (en) * | 2009-10-26 | 2014-05-13 | International Business Machines Corporation | Determining context specific content |
WO2012112302A2 (en) | 2011-02-17 | 2012-08-23 | Siemens Aktiengesellschaft | Parallel processing in human-machine interface applications |
-
2012
- 2012-12-14 US US13/714,969 patent/US8799858B2/en not_active Expired - Fee Related
-
2013
- 2013-12-03 EP EP13195410.9A patent/EP2743867A1/en not_active Withdrawn
- 2013-12-13 CN CN201310678120.2A patent/CN103870324A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105511403A (zh) * | 2014-10-10 | 2016-04-20 | 西门子公司 | 生产机床或机床以及用于运行这种机器的方法 |
US10139798B2 (en) | 2014-10-10 | 2018-11-27 | Siemens Aktiengesellschaft | Production machine or machine tool and method for operating such a machine tool |
CN105511403B (zh) * | 2014-10-10 | 2019-09-13 | 西门子公司 | 生产机床以及用于运行这种机器的方法 |
CN108351804A (zh) * | 2015-11-12 | 2018-07-31 | 西门子股份公司 | 基于模型的人机界面(hmi) |
CN108351804B (zh) * | 2015-11-12 | 2022-06-07 | 西门子股份公司 | 基于模型的人机界面系统和方法 |
WO2018058451A1 (zh) * | 2016-09-29 | 2018-04-05 | 西门子公司 | 一种人机界面生成方法、组件以及电子设备 |
US11513508B2 (en) | 2016-09-29 | 2022-11-29 | Siemens Aktiengesellschaft | Method, component, and electronic device for creating human machine interface |
Also Published As
Publication number | Publication date |
---|---|
EP2743867A1 (en) | 2014-06-18 |
US8799858B2 (en) | 2014-08-05 |
US20140173558A1 (en) | 2014-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103870324A (zh) | 异构多处理器环境中人机接口应用的有效执行 | |
KR102300984B1 (ko) | 작업 서버를 사용한 대규모 분산형 시스템의 기계 학습 모델의 훈련 | |
EP3425849B1 (en) | State control method and device | |
US9946563B2 (en) | Batch scheduler management of virtual machines | |
US9965322B2 (en) | Scheduling tasks in a distributed processing system with both reconfigurable and configurable processors | |
Qian et al. | Jade: Reducing energy consumption of android app | |
CN106557369A (zh) | 一种多线程的管理方法及系统 | |
JP2010140357A (ja) | ストリームデータ処理方法、及びシステム | |
CN105378668B (zh) | 多处理器系统中的操作系统管理的中断引导 | |
Qian et al. | An energy-saving task scheduler for mobile devices | |
Qian et al. | Reducing mobile device energy consumption with computation offloading | |
CN111209077A (zh) | 深度学习框架设计方法 | |
US10171295B2 (en) | Distributed remote execution | |
Maruf et al. | Extending resources for avoiding overloads of mixed‐criticality tasks in cyber‐physical systems | |
Incerto et al. | Symbolic performance adaptation | |
Sun et al. | Learning-based Adaptation Framework for Elastic Software Systems. | |
Caglar et al. | Towards a performance interference-aware virtual machine placement strategy for supporting soft real-time applications in the cloud | |
Harichane et al. | KubeSC‐RTP: Smart scheduler for Kubernetes platform on CPU‐GPU heterogeneous systems | |
CN114091672A (zh) | 分布式模型推理方法及装置、电子设备和介质 | |
US20190391553A1 (en) | Control Program and Method for Operating an Engineering System for an Industrial Process Automation System | |
CN111177160B (zh) | 服务更新方法、装置、服务器及介质 | |
US11726758B2 (en) | Efficient scaling of a container-based application in a distributed computing system | |
Fleeman et al. | Quality-based adaptive resource management architecture (qarma): A corba resource management service | |
WO2023154051A1 (en) | Determining root causes of anomalies in services | |
Tsoutsouras et al. | Job-arrival aware distributed run-time resource management on intel scc manycore platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140618 |