CN106802878A - 通过数据挖掘优化的任务划分 - Google Patents

通过数据挖掘优化的任务划分 Download PDF

Info

Publication number
CN106802878A
CN106802878A CN201611007463.6A CN201611007463A CN106802878A CN 106802878 A CN106802878 A CN 106802878A CN 201611007463 A CN201611007463 A CN 201611007463A CN 106802878 A CN106802878 A CN 106802878A
Authority
CN
China
Prior art keywords
task
core
storage location
live load
ecu
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
Application number
CN201611007463.6A
Other languages
English (en)
Inventor
S·王
S·曾
S·G·卢斯科
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of CN106802878A publication Critical patent/CN106802878A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Abstract

一种方法,该方法用于对多核心ECU上的任务进行划分。在存储器中提取链接映射文件的信号列表。从ECU获取与执行的任务相关的存储访问踪迹。识别每个任务访问存储位置的次数。在每个任务与每个访问的存储位置之间生成关联图。该关联图识别每个任务与每个存储位置之间的链接关系度。对该关联图重新排序以便使具有较大链接关系度的相应任务和相关联的存储位置彼此邻近。在ECU上将任务划分为相应数量的核心。按照在相应核心中使具有最少交叉核心通信的工作负荷大体上平衡的函数来履行在相应数量的核心之间分配任务和存储位置。

Description

通过数据挖掘优化的任务划分
背景技术
实施例涉及对电子控制单元上的一组任务进行划分。
多核心处理器集成在单个芯片内并且通常指具有两个或者更多个独立处理单元的单个计算单元,该处理单元一般称为核心。该核心通常实施读取以及执行编程指令。该指令的实例是添加数据以及移动数据。多核心处理器的效率在于核心可以并行地同时运行多个指令。
存储布局影响电子控制单元(ECU)的缓存启动架构的存储宽带。例如,如果多核心处理器的设计无效,则在多核心间的任务未得到恰当平衡的情况下可能在检索数据时出现瓶颈,这也会影响通信成本。
发明内容
实施例的优点在于:对全局存储器中的数据的访问进行优化,以便使储存在相应位置中的且由相应任务访问的数据由同一相应核心来处理。此外,核心间的工作负荷在多核心处理器的相应数量的核心之间达到平衡,从而使每个相应核心均履行类似的工作负荷量处理。本文描述的实施例基于重新排序技术生成了多个排列,该重新排序技术用于基于访问存储位置来将相应任务与相应存储位置进行配对。基于期望的核心数量来对该排列进行分割和细分,直到标识在核心间生成平衡工作负荷的以及使通信成本最小化的相应排列。
实施例设想了一种用于对多核心电子控制单元(ECU)上的任务进行划分的方法。在存储器中提取链接映射文件的信号列表。该链接映射文件包括对在全局存储装置内访问数据的位置进行详细说明的文本文件。获取来自信号列表的与执行的任务相关的存储访问踪迹。标识每个任务访问存储位置的次数以及ECU上的相应任务工作负荷。在每个任务与每个访问的存储位置之间生成关联图。该关联图标识每个任务与每个存储位置之间的链接关系度。对该关联图重新排序以便使具有较大链接关系度的相应任务和相关联的存储位置彼此邻近。将多核心处理器划分为相应数量的核心,其中,按照使相应核心中工作负荷的大体上平衡的函数来履行在相应数量的核心之间分配任务和存储位置。
附图说明
图1是用于优化任务划分的硬件的框图。
图2是示例性加权关联矩阵。
图3是初始排列的示例性二分图。
图4是重新排序的排列和划分的示例性二分图。
图5是用于优化任务划分的方法的流程图。
具体实施方式
图1是用于优化任务划分的硬件的框图。在电子控制单元(ECU)10上对执行应用代码的相应算法进行执行。所执行的算法是将在生产中被执行的那些程序(例如,车辆发动机控制器、计算机、游戏、工厂设备、或者利用电子控制单元的任何其他电子控制器)。将数据写入全局存储装置12内的多个地址并且进行读取。
映射链接文件14是文本文件,该文本文件对储存在全局存储装置12内的可执行文件内部的数据和代码的位置进行详细说明。映射链接文件14包括包含事件日志的跟踪文件,该事件日志描述了针对代码和数据的储存位置在全局存储装置12内出现的事务。因此,可以获取对当应用代码由ECU 10执行时访问的所有任务和相关联的存储地址进行标识的链接文件映射14。
挖掘处理器16用于履行如下操作:来自全局存储装置12的数据挖掘18、对任务和相关联的存储位置重新排序20、标识排列的工作负荷22、以及对任务和相关联的存储位置进行划分24以便设计多核心处理器。
关于数据挖掘,针对每个任务(例如,A、B、C、D)构建如图2中图示的存储访问命中次数表。术语“命中次数”指的是相应任务传递信号以访问全局存储器的相应存储地址的次数。基于命中次数来构建矩阵X。如在图2中示出的,矩阵的水平行中列出了任务,并且矩阵的纵列中列出了表示访问全局存储装置的存储位置的信号。如在矩阵中示出的,任务A访问sa五次并且访问sd二十次。任务B访问sa十次、访问sb一次、访问sd六次、方位se一次以及访问sf一次。矩阵使每个任务与每个存储位置相关联,并且标识相应任务访问存储位置以储存和读取数据的次数。
在生成矩阵X之后,挖掘处理器生成排列,该排列用于对提供最有效的划分以均匀地分布ECU的工作负荷的相应排列进行标识。
排列是排序任务和存储位置的多个列表。如在图3中示出的,构建了关联图,诸如,二分图。应理解,在不偏离本发明的范围的情况下,可以使用其他类型的图或者工具。如在图3中示出的,二分图的左侧上的纵列中列出了任务(例如,字母顺序)。二分图的右侧上的第二纵列中列出了访问的存储位置。为了二分图的目的,任务将称为任务节点,并且访问的存储位置将称为存储节点。当在相应任务节点与相应存储节点之间出现命中时,画一条线来连接相应任务节点与相应存储节点。基于命中次数来对连接任务节点和存储节点的线进行加权,如图3中示出的。在二分图中,线的权重越重,任务节点与存储节点之间的命中次数就越大。在如图3中示出的初始排列中,连接任务节点和存储节点的线可以是远侧的,意味着在第一纵列的顶部处的任务节点可以连接至在第二纵列的底部处的存储节点。如果在两个纵列的中途点处均匀地划分该排列,则可能在两个核心之间出现大量通信(例如,交叉通信),这可以是无效的并且增加通信成本,并且更加具体地,如果两个核心之间的那些相应交叉通信链路是加权严重的通信链路,则可以导致更大的无效度。此外,如果那些计算密集的任务被分配至相应核心,则相应核心可以实施更多工作负荷处理。因此,通过对任务节点和存储节点进行重新排序制作了多个排列。
图4图示了在已经对存储位置进行重新排序的情况下的相应排列。多个技术可以用于对存储节点进行重新排序以便实现效率并且使通信成本最小化。一个这种技术可以包括但不限于,对任务节点和存储节点进行重新排序,以便使与所有其他配对相比具有严重加权线(例如,多次命中)的相应任务节点和相关联的存储节点在二分图中彼此邻近。
使用加权的邻近矩阵来履行对二分图的顶点的重新排序,该加权的邻近矩阵是使用图2中的矩阵X来构建的。关于矩阵W,通过找出顶点的排列{1,...,N}来实现任务节点和存储节点的期望顺序,从而图中的邻近顶点是最相关联的顶点。这种排列表示由同一组任务频繁访问的数据可以适应局部数据缓存。算术上,期望的重新排序的排列可以表达为:
这等于找出逆排列π(-1),从而使如下能量函数最小化:
解决上述问题大概是通过使用第二最小本征值针对如下本征方程计算本征矢量(q2)来完成:
(D-W)q=λDq
其中,拉普拉斯矩阵L=D-W,次数矩阵D是对角线的,并且被定义为
因此获取的q2按照升序进行分类。在分类之后的顶点的索引是期望排列{π1,...,πN}。然后通过如下方式来推导出任务节点和存储节点的顺序:根据排列结果来重新布置二分图中的任务节点和存储节点。
如在图4中图示的,有效地对该列表进行了重新排序。任务节点A和存储节点sd处于最高命中(例如,20)之间并且因此彼此邻近。类似地,图4中示出了,任务节点B邻近存储节点sa,并且任务节点C和任务节点D邻近存储节点sb。此外,任务节点A与存储节点sa具有多次命中,并且任务节点B与存储节点sd具有多次命中。因此,自此任务节点A和任务节点B在第一纵列中彼此邻近,存储节点sa和存储节点sb定位为在第二纵列中彼此邻近。该重新排序通过消除核心之间的交叉通信而提供有效的通信。
为了使工作负荷均等以确保核心的工作负荷进行均匀地分布,使多个任务节点间具有最高工作负荷的任务节点和相关联的存储节点的前两个配对分离并且定位在二分图的相对端处。这确保了多个任务间具有最高工作负荷的这两个相应任务节点将不会处于同一核心内,如若不然这将使单个核心的工作负荷超载。在对这两对任务重新排序之后,使剩余任务节点和存储节点间具有下一最高工作负荷的任务节点和相关联的存储节点的下一配对分离并且定位为紧挨着先前分离的任务节点和存储节点。该过程继续在可用的任务节点和相关联的存储节点间具有下一最高工作负荷的任务节点和相关联的存储节点的下一相应配对中进行,直到将所有可用的任务节点和相关联的存储节点都分配在二分图内。这产生了工作负荷的均匀分布,从而可以如所示出那样在中间均等地分割该二分图,并且大体上类似地在相应核心之间分布工作负荷。如在图4中的二分图中示出的,划分线26使二分图的相应任务节点和相关联的存储节点分离以便标识应将哪些任务分配至相应核心。图示了针对每个相应任务节点的示例性工作负荷百分比。任务A代表15%的工作负荷用量,任务B代表40%的工作负荷用量,任务C代表30%的工作负荷用量,并且任务D代表15%的工作负荷用量。因此,在该实例中,55%的工作负荷用量将由第一核心履行,并且45%的工作负荷将由第二核心履行。应注意,任务节点和相关联的存储节点的相应最重工作负荷将保留在相应核心中,与核心之间的交叉通信截然相反。即是说,具有升高的命中的任务节点和相关联的存储节点将处于同一核心内。应理解,一些任务节点将与不同核心中的存储节点交叉通信;然而,与核心内保持的严重加权通信相比,这种通信将较少。
此外,一旦两个核心已经被划分,如果核心需要进行附加划分(例如,4个核心),则可以在不进行重新排序的情况下基于使工作负荷平衡和使通信成本最小化来对划分的核心进行再次细分。可替代地,若需要,则可以将重新排序技术应用于已经被划分的核心,以便对相应任务和其中的存储器进行重新排序并且然后进一步细分核心。
可以应用划分的多个排列来找出最有效的划分,最有效的划分在处理器的核心之间产生最平衡的工作负荷并且还使通信成本最小化。
图5图示了用于对多核心ECU上运行的任务进行划分的技术的流程图。在步骤30中,通过相应电子控制单元来执行作为任务的软件程序的应用代码。在全局存储装置(例如,未在挖掘处理器上的存储器)上执行读取操作和写入操作两者。
在步骤31中,从全局存储器中的链接映射文件提取信号列表。该信号列表对应用代码执行的任务命中的存储位置的踪迹进行标识。
在步骤32中,通过挖掘处理器来收集存储访问踪迹。
在步骤33中,针对每个存储位置构建包括任务存储访问次数(即,命中)的矩阵。应理解,相应任务和相应存储位置可以没有任何命中,并且在这种情况下,条目将显示为“0”或者保留为空白以指示任务未访问相位置。
在步骤34中,生成包括关联图(例如,二分图)的多个排列,该关联图示出了由应用代码执行的任务节点与任务节点访问的相应存储节点之间的链接关系。每个排列均利用最佳排序算法来确定任务节点和相关联的存储节点的相应顺序。任务节点与彼此间具有命中的那些存储节点相关联并且彼此邻近。任务节点和相关联的存储节点最佳地定位在关联图中,从而使处理器的核心内的工作负荷用量在被划分时大体上平衡。
在步骤35中,对该关联性进行划分以便标识当在ECU上执行任务时哪些任务与哪个核心相关联。该划分将基于平衡工作负荷和最小化的通信成本针对相应任务节点和相关联的存储节点选择分离点。基于ECU中需要核心数量来履行附加划分。
在步骤36中,使用所选择的排列来设计和产生多核心ECU的任务划分。
尽管已经详细地描述了本发明的某些实施例,但本发明所涉及领域的技术人员将意识到用于实践如通过如下权利要求书定义出的本发明的多种替代设计和实施例。

Claims (10)

1.一种用于对多核心电子控制单元(ECU)上的任务进行划分的方法,所述方法包括如下步骤:
在存储器中提取链接映射文件的信号列表,所述链接映射文件包括对在全局存储装置内访问数据的位置进行详细说明的文本文件;
从所述信号列表获取与执行的任务相关的存储访问踪迹;
识别每个任务访问存储位置的次数以及所述ECU上的相应任务工作负荷;
在每个任务与每个访问的存储位置之间生成关联图,所述关联图识别每个任务与每个存储位置之间的链接关系度;
对所述关联图重新排序以便使具有较大链接关系度的所述相应任务和相关联的存储位置彼此邻近;
将所述多核心处理器划分为相应数量的核心,其中,按照使所述相应核心中的的工作负荷大体上平衡的函数来履行在所述相应数量的核心中分配任务和存储位置。
2.根据权利要求1所述的方法,其中,将多核心ECU上的所述任务划分给偶数个核心。
3.根据权利要求1所述的方法,其中,通过使所述多个核心中的所述工作负荷达到平衡来在一次划分中将多核心ECU上的所述任务划分给所述多个核心。
4.根据权利要求1所述的方法,其中,首先基于平衡工作负荷来将所述任务分离为初始核心对,并且其中,基于平衡工作负荷来反复地分离所述初始核心对,直到获取期望的核心数量。
5.根据权利要求1所述的方法,其中,生成了加权矩阵,所述加权矩阵对每个任务访问存储位置的次数进行识别。
6.根据权利要求5所述的方法,其中,所述关联图包括二分图,其中,所述二分图是根据所述加权矩阵来生成。
7.根据权利要求6所述的方法,其中,重新排序是基于每个任务的标识的工作负荷,其中,基于访问所述相应存储位置的所述相应任务来将所述二分图的所述第一纵列中的所述相应任务定位为邻近所述二分图的第二纵列中的所述相应存储位置。
8.根据权利要求7所述的方法,其中,从与所述相应任务具有链接关系的多个存储位置中选择哪个存储位置来定位为邻近所述相应任务的优先级是基于所述相应任务访问所述每个存储位置的次数来确定,其中,将所述相应任务访问最多的所述相应存储位置定位为邻近所述相应任务。
9.根据权利要求7所述的方法,其中,重新排序是基于每个任务的标识的工作负荷,其中,使所述多个任务中具有最高工作负荷的任务对分离并且定位在所述二分图的相对端处,其中,使所述可用任务中具有下一最高工作负荷的下一任务对分离并且定位为在顺序上紧挨着具有所述最高工作负荷的所述任务对,以及其中,使所述可用任务中具有下一最高工作负荷的下一相应任务对分离并且定位为在顺序上紧挨着先前定位的任务,直到将每个可用任务均分配在所述二分图中。
10.根据权利要求1所述的方法,其中,生成了多个排列以对所述关联图重新排序,其中,选择所述多个排列中提供最平衡的工作负荷的相应排列来进行划分。
CN201611007463.6A 2015-11-25 2016-11-16 通过数据挖掘优化的任务划分 Pending CN106802878A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/951,645 US20170147402A1 (en) 2015-11-25 2015-11-25 Optimized task partitioning through data mining
US14/951645 2015-11-25

Publications (1)

Publication Number Publication Date
CN106802878A true CN106802878A (zh) 2017-06-06

Family

ID=58692765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611007463.6A Pending CN106802878A (zh) 2015-11-25 2016-11-16 通过数据挖掘优化的任务划分

Country Status (3)

Country Link
US (1) US20170147402A1 (zh)
CN (1) CN106802878A (zh)
DE (1) DE102016122623A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102021209319A1 (de) * 2021-08-25 2023-03-02 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Vermitteln von Datenanforderungen an ein oder mehrere Datenquellen und zur Verarbeitung von angeforderten Daten einer oder mehrerer Datenquellen in einer Anwendung

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102135904A (zh) * 2011-03-11 2011-07-27 华为技术有限公司 一种面向多核目标系统的映射方法及装置
US8407214B2 (en) * 2008-06-25 2013-03-26 Microsoft Corp. Constructing a classifier for classifying queries
CN103488673A (zh) * 2012-06-11 2014-01-01 富士通株式会社 用于执行调和处理的方法、控制器、程序及数据存储系统
US8635405B2 (en) * 2009-02-13 2014-01-21 Nec Corporation Computational resource assignment device, computational resource assignment method and computational resource assignment program
US20140258974A1 (en) * 2006-03-27 2014-09-11 Coherent Logix, Incorporated Programming a multi-processor system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140258974A1 (en) * 2006-03-27 2014-09-11 Coherent Logix, Incorporated Programming a multi-processor system
US8407214B2 (en) * 2008-06-25 2013-03-26 Microsoft Corp. Constructing a classifier for classifying queries
US8635405B2 (en) * 2009-02-13 2014-01-21 Nec Corporation Computational resource assignment device, computational resource assignment method and computational resource assignment program
CN102135904A (zh) * 2011-03-11 2011-07-27 华为技术有限公司 一种面向多核目标系统的映射方法及装置
CN103488673A (zh) * 2012-06-11 2014-01-01 富士通株式会社 用于执行调和处理的方法、控制器、程序及数据存储系统

Also Published As

Publication number Publication date
US20170147402A1 (en) 2017-05-25
DE102016122623A1 (de) 2017-06-01

Similar Documents

Publication Publication Date Title
CN105359103B (zh) 一种存储器资源优化方法和装置
EP2880566B1 (en) A method for pre-processing and processing query operation on multiple data chunk on vector enabled architecture
CN107015868B (zh) 一种通用后缀树的分布式并行构建方法
CN107957976A (zh) 一种计算方法及相关产品
CN111723900A (zh) 一种基于众核处理器的神经网络的映射方法及计算设备
CN115437795B (zh) 一种异构gpu集群负载感知的显存重计算优化方法及系统
CN107315694A (zh) 一种缓存一致性管理方法及节点控制器
CN108108190A (zh) 一种计算方法及相关产品
CN103069396A (zh) 对象布置设备及其方法,计算机程序
CN106708749B (zh) 一种数据查找方法
CN106802878A (zh) 通过数据挖掘优化的任务划分
CN110990299B (zh) 非规整组相联cache组地址映射方法
CN104050189B (zh) 页面共享处理方法及装置
CN108090028A (zh) 一种计算方法及相关产品
CN108052535A (zh) 基于多处理器平台的视觉特征并行快速匹配方法和系统
CN103036796A (zh) 路由信息更新方法及装置
Slimani et al. K-MLIO: enabling k-means for large data-sets and memory constrained embedded systems
CN109901929A (zh) 服务器等级约束下的云计算任务份额公平分配方法
CN105988952A (zh) 为内存控制器分配硬件加速指令的方法和装置
CN113986778A (zh) 一种数据处理方法、共享缓存、芯片系统及电子设备
CN110659286B (zh) 基于弱平衡空间树动态空间索引方法及其存储介质、装置
CN114036084A (zh) 一种数据访问方法、共享缓存、芯片系统和电子设备
CN110347511A (zh) 含隐私约束条件的地理分布式进程映射方法、装置及终端
Cérin An out-of-core sorting algorithm for clusters with processors at different speed
CN106096022B (zh) 多域网包分类规则的划分方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170606