本發(fā)明涉及一種用于優(yōu)化由多個處理器單元進(jìn)行的對包括多個應(yīng)用(anwendungen)的處理(prozesses)的實(shí)施的方法。
背景技術(shù):
1、在實(shí)施基于計(jì)算機(jī)的處理時(shí),通常會努力于盡可能快地和節(jié)省資源地實(shí)施所述處理。在使用多個處理器單元時(shí),如果處理的結(jié)構(gòu)允許并行的實(shí)施,則存在著對所述處理的應(yīng)用并行地實(shí)施的可能性。在具有多個應(yīng)用和用于實(shí)施所述應(yīng)用的多個處理器單元的復(fù)雜的處理中,將所述處理劃分到不同的處理器單元上以便由處理器單元實(shí)施所述處理的應(yīng)用可能是一項(xiàng)復(fù)雜的任務(wù)設(shè)置。
技術(shù)實(shí)現(xiàn)思路
1、因此,本發(fā)明的任務(wù)是,提供一種改進(jìn)的方法,其用于優(yōu)化由多個處理器單元進(jìn)行的對包括多個應(yīng)用的處理的實(shí)施。
2、該任務(wù)通過獨(dú)立權(quán)利要求1的、用于優(yōu)化由多個處理器單元進(jìn)行的對包括多個應(yīng)用的處理的實(shí)施的方法來解決。有利的構(gòu)型是從屬權(quán)利要求的主題。
3、根據(jù)本發(fā)明的一方面,提供一種用于優(yōu)化由多個處理器單元進(jìn)行的對包括多個應(yīng)用的處理的實(shí)施的方法,其包括:
4、接收待實(shí)施的處理的在多個處理器單元上待實(shí)施的多個應(yīng)用,其中,由所述處理定義這些應(yīng)用的實(shí)施的順序;
5、通過確定所述多個處理器單元的優(yōu)化的實(shí)施時(shí)間表來優(yōu)化對所述處理的實(shí)施,其中,在用于處理器單元的優(yōu)化的實(shí)施時(shí)間表中,從處理的實(shí)施的開始時(shí)間點(diǎn)開始,定義待由處理器單元根據(jù)處理的實(shí)施順序?qū)嵤┑膽?yīng)用的實(shí)施的時(shí)間順序,并且,其中,所述優(yōu)化的實(shí)施時(shí)間表的特征在于,在由所述處理單元根據(jù)所述優(yōu)化的實(shí)施時(shí)間表對處理的應(yīng)用的并行地實(shí)施中,處理的實(shí)施持續(xù)時(shí)間是最小的。
6、由此可以實(shí)現(xiàn)這樣的技術(shù)優(yōu)點(diǎn):可以提供一種性能強(qiáng)大的方法來優(yōu)化對處理的實(shí)施。通過為每個可供用于實(shí)施應(yīng)用的處理器單元確定優(yōu)化的實(shí)施時(shí)間表(所述實(shí)施時(shí)間表定義了由相應(yīng)的處理器單元對所述處理的應(yīng)用的實(shí)施的時(shí)間順序,其中,使由處理器單元對實(shí)施時(shí)間表的所有的應(yīng)用的實(shí)施的總持續(xù)時(shí)間分別最小化)的方式,可以實(shí)現(xiàn)對處理器資源的優(yōu)化地充分利用和由可供使用的處理器單元對完整的處理的與之相關(guān)聯(lián)地優(yōu)化地并且在時(shí)間上最短地實(shí)施。通過根據(jù)針對處理器單元所求取的實(shí)施時(shí)間表對處理的實(shí)施可以實(shí)現(xiàn)對處理的優(yōu)化地實(shí)施,在所述優(yōu)化地實(shí)施中,實(shí)現(xiàn)對處理器資源的最優(yōu)的充分利用。由此,又可以實(shí)現(xiàn)對處理的盡可能節(jié)省資源的實(shí)施方式。
7、在本技術(shù)的意義下,一個處理是一個計(jì)算機(jī)控制的處理,所述計(jì)算機(jī)控制的處理可以由多個處理器單元實(shí)施。一個處理可以包括多個下屬的子處理。所述處理或者所述子處理包括至少兩個待串行地實(shí)施的應(yīng)用、第一應(yīng)用(處理以該第一應(yīng)用開始)和最后的應(yīng)用(處理以該最后的應(yīng)用的實(shí)施終止)。各個應(yīng)用涉及不同的計(jì)算,所述不同的計(jì)算要由相應(yīng)的處理器單元實(shí)施并且所述不同的計(jì)算共同地構(gòu)成處理的整體。單個的應(yīng)用的計(jì)算結(jié)果可以在對處理的另外的應(yīng)用(所述另外的應(yīng)用在時(shí)間上先后相繼地實(shí)施)的實(shí)施中被進(jìn)一步地使用。使用另外的應(yīng)用的計(jì)算結(jié)果的應(yīng)用串行地實(shí)施??稍跊]有另外的應(yīng)用的計(jì)算結(jié)果的情況下實(shí)施的應(yīng)用可以與另外的應(yīng)用并行地實(shí)施。
8、根據(jù)一種實(shí)施方式,多個應(yīng)用布置在有向的非循環(huán)的圖形中,其中,在有向的圖形中,應(yīng)用構(gòu)造為節(jié)點(diǎn),對應(yīng)用的實(shí)施的順序通過使節(jié)點(diǎn)連接起來的邊定義。
9、由此可以實(shí)現(xiàn)這樣的技術(shù)優(yōu)點(diǎn):實(shí)現(xiàn)對處理的緊湊的表示。
10、根據(jù)一種實(shí)施方式,所述優(yōu)化包括:
11、將有向的非循環(huán)的圖形的第一應(yīng)用分配給第一處理器單元,以便由第一處理器單元從對處理的實(shí)施的開始時(shí)間點(diǎn)開始實(shí)施第一應(yīng)用,并且將應(yīng)用的實(shí)施的結(jié)束點(diǎn)定義為第一決策時(shí)間點(diǎn);
12、分別將空閑應(yīng)用分配給另外的處理器單元,以便由處理器單元從處理的實(shí)施的開始時(shí)間點(diǎn)實(shí)施,直至第一決策時(shí)間點(diǎn)為止,其中,在實(shí)施空閑應(yīng)用期間,使相應(yīng)的處理器單元處于休眠狀態(tài);
13、從有向的非循環(huán)的圖形的第一應(yīng)用開始計(jì)算經(jīng)由有向的非循環(huán)的圖形具有最短的實(shí)施持續(xù)時(shí)間的實(shí)施路徑,其中,實(shí)施路徑包括在有向的非循環(huán)的圖形中與第一應(yīng)用連接并且相互間分別通過相應(yīng)的邊連接的應(yīng)用,并且,其中,對實(shí)施路徑的實(shí)施持續(xù)時(shí)間形成為實(shí)施路徑的應(yīng)用的實(shí)施持續(xù)時(shí)間的總和;
14、將在具有最短的實(shí)施持續(xù)時(shí)間的實(shí)施路徑中與第一應(yīng)用直接地連接的第二應(yīng)用分配給第一處理器單元,以便由第一處理器單元從第一決策時(shí)間點(diǎn)開始實(shí)施,并且將第二應(yīng)用的實(shí)施的結(jié)束點(diǎn)定義為第二決策時(shí)間點(diǎn);
15、在有向的非循環(huán)的圖形除了具有最短的實(shí)施持續(xù)時(shí)間的實(shí)施路徑之外包括另外的、從第一應(yīng)用開始并且與具有最短的實(shí)施持續(xù)時(shí)間的實(shí)施路徑并行地布置的實(shí)施路徑的情況下,將另外的、在有向的非循環(huán)的圖形中與第一應(yīng)用直接地連接并且不屬于具有最短的實(shí)施持續(xù)時(shí)間的實(shí)施路徑的應(yīng)用分配給另外的處理器單元,以便由另外的處理器單元從第一決策時(shí)間點(diǎn)開始實(shí)施,并且將另外的應(yīng)用的實(shí)施的結(jié)束點(diǎn)定義為另外的決策時(shí)間點(diǎn);
16、在有向的非循環(huán)的圖形除了具有最短的實(shí)施持續(xù)時(shí)間的實(shí)施路徑之外不包括任何另外的、從第一應(yīng)用開始并且與具有最短的實(shí)施持續(xù)時(shí)間的實(shí)施路徑并行地布置的另外的實(shí)施路徑的情況下,或者,在另外的處理器單元的數(shù)量大于另外的實(shí)施路徑的數(shù)量的情況下,將空閑應(yīng)用分配給另外的處理器單元,以便由另外的處理器單元從第一決策時(shí)間點(diǎn)開始實(shí)施空閑應(yīng)用直至第二決策時(shí)間點(diǎn)為止或者直至第二決策時(shí)間點(diǎn)與另外的決策時(shí)間點(diǎn)的組中的在時(shí)間上最早的決策時(shí)間點(diǎn)為止;
17、對于待由第一處理器單元實(shí)施的第二應(yīng)用和待由另外的處理器單元與第二應(yīng)用并行地實(shí)施的另外的應(yīng)用,分別從有向的非循環(huán)的圖形的第二應(yīng)用或者另外的應(yīng)用開始計(jì)算經(jīng)由有向的非循環(huán)的圖形分別具有最短的實(shí)施持續(xù)時(shí)間的實(shí)施路徑,并且,將在具有最短的實(shí)施持續(xù)時(shí)間的實(shí)施路徑中與第二應(yīng)用或者另外的應(yīng)用直接地連接的另外的應(yīng)用分配給第一處理器單元或者另外的處理器單元,以便由第一處理器單元或者另外的處理器單元從第二決策時(shí)間點(diǎn)或者另外的決策時(shí)間點(diǎn)開始實(shí)施,并且將另外的應(yīng)用的實(shí)施的結(jié)束點(diǎn)定義為另外的決策時(shí)間點(diǎn);
18、將空閑應(yīng)用分配給所有這樣的處理器單元以便實(shí)施所述空閑應(yīng)用直至從相應(yīng)的決策時(shí)間點(diǎn)開始在時(shí)間上緊接著的決策時(shí)間點(diǎn)為止:對于所述處理器單元,針對相應(yīng)的決策時(shí)間點(diǎn)沒有分配任何應(yīng)用;
19、繼續(xù):計(jì)算用于另外的應(yīng)用的實(shí)施路徑,并且將所計(jì)算的實(shí)施路徑的另外的應(yīng)用分配給相應(yīng)的處理器單元以便實(shí)施應(yīng)用,并且將空閑應(yīng)用分配給處理器單元直至到達(dá)有向的非循環(huán)的圖形的最后的應(yīng)用為止,并且針對每個處理器單元,將待由相應(yīng)的處理器單元實(shí)施的應(yīng)用和空閑應(yīng)用的這類針對處理器單元所求取的順序定義為相應(yīng)的處理器單元的實(shí)施時(shí)間表。
20、由此可以實(shí)現(xiàn)這樣的技術(shù)優(yōu)點(diǎn):實(shí)現(xiàn)對優(yōu)化的實(shí)施時(shí)間表的結(jié)構(gòu)化的計(jì)算。通過將應(yīng)用分配給各個處理器單元以便由相應(yīng)的處理器單元實(shí)施(其中,考慮,在應(yīng)用的并行地實(shí)施通過處理能夠?qū)崿F(xiàn)的情況下,進(jìn)行這樣的并行地實(shí)施),可以實(shí)現(xiàn)多個處理器單元的最優(yōu)的負(fù)荷程度并且可以實(shí)現(xiàn)處理的與之相關(guān)聯(lián)的優(yōu)化的實(shí)施。通過計(jì)算具有相應(yīng)的實(shí)施路徑的應(yīng)用的在時(shí)間上最短的實(shí)施持續(xù)時(shí)間的實(shí)施路徑可以實(shí)現(xiàn)對用于分別所選擇的和被分配給相應(yīng)的處理器單元的應(yīng)用的實(shí)施持續(xù)時(shí)間的精確的估計(jì)。由此實(shí)現(xiàn)對分配給相應(yīng)的處理器單元的多個應(yīng)用的最短的總實(shí)施時(shí)間的精確地確定。通過分配空閑應(yīng)用可以實(shí)現(xiàn),如果對于相應(yīng)的處理器單元對于任意的可確定的時(shí)段沒有發(fā)現(xiàn)任何待實(shí)施的應(yīng)用,則對于該時(shí)段,暫時(shí)使處理器單元處于休眠狀態(tài)。通過休眠狀態(tài)可以使由一個處理器單元對應(yīng)用的實(shí)施在時(shí)間上與由其他的處理器單元對其他的應(yīng)用的實(shí)施相協(xié)調(diào)。通過這種協(xié)調(diào),一方面,可以遵循在處理中所定義的、應(yīng)用的實(shí)施的順序,并且另一方面可能可以實(shí)現(xiàn)比當(dāng)應(yīng)用的直接地實(shí)施發(fā)生時(shí)更短的總實(shí)施持續(xù)時(shí)間。由此可以在總體上實(shí)現(xiàn)對處理的實(shí)施的改進(jìn)的優(yōu)化。
21、在本技術(shù)的意義下,實(shí)施路徑是在處理的圖形表示以內(nèi)的處理的待串行地先后相繼地實(shí)施的應(yīng)用。實(shí)施路徑可以是例如處理的子處理。
22、根據(jù)一種實(shí)施方式,在將待實(shí)施的應(yīng)用分配給處理器單元時(shí),考慮,實(shí)施有向的非循環(huán)的圖形的所有的應(yīng)用。
23、由此可以實(shí)現(xiàn)這樣的技術(shù)優(yōu)點(diǎn):實(shí)施完整的處理,并且將該處理的所有的應(yīng)用分配給相應(yīng)的處理器單元以便實(shí)施。
24、根據(jù)一種實(shí)施方式,在將待實(shí)施的應(yīng)用分配給處理器單元時(shí)以及在計(jì)算最短的實(shí)施路徑時(shí),考慮,應(yīng)用是可由任意的處理器單元實(shí)施還是要由特定的處理器單元實(shí)施,尤其是當(dāng)多個處理器單元包括不同的處理器類型的處理器單元時(shí)。
25、由此可以實(shí)現(xiàn)這樣的技術(shù)優(yōu)點(diǎn):必要時(shí),不同的應(yīng)用可能只由特定的處理器單元實(shí)施或者應(yīng)該根據(jù)處理實(shí)施。例如,可以設(shè)置,單個的應(yīng)用應(yīng)由圖形處理器gpu而不是中央處理單元cpu實(shí)施。通過在計(jì)算實(shí)施路徑時(shí)考慮這一點(diǎn)的方式,可以將這些應(yīng)用分配給相應(yīng)的cpu或者gpu。某些應(yīng)用只能在特定的處理器上實(shí)施的限制是對可能的實(shí)施時(shí)間表的限制和總體上是對處理的實(shí)施的優(yōu)化的限制。因此,通過考慮單個的應(yīng)用的實(shí)施的限制,可以實(shí)現(xiàn)對處理的實(shí)施的改進(jìn)的優(yōu)化。
26、根據(jù)一種實(shí)施方式,優(yōu)化通過優(yōu)化算法在有向的非循環(huán)的圖形上的應(yīng)用來實(shí)現(xiàn)。
27、由此可以實(shí)現(xiàn)這樣的技術(shù)優(yōu)點(diǎn):可以實(shí)現(xiàn)精確的和快速的優(yōu)化。
28、根據(jù)一種實(shí)施方式,優(yōu)化通過搜索算法、尤其是a*算法在有向的非循環(huán)的圖形上的應(yīng)用來實(shí)現(xiàn)。
29、由此可以實(shí)現(xiàn)這樣的技術(shù)優(yōu)點(diǎn):可以實(shí)現(xiàn)精確和快速的優(yōu)化。在這里,a*算法設(shè)置用于,為處理器單元中的每個處理器單元找到一個優(yōu)化的實(shí)施時(shí)間表,該優(yōu)化的實(shí)施時(shí)間表具有待實(shí)施的應(yīng)用的最小的實(shí)施持續(xù)時(shí)間。為此,a*算法為每個處理器單元找到經(jīng)由有向的非循環(huán)的圖形具有最短的實(shí)施持續(xù)時(shí)間的實(shí)施路徑。
30、根據(jù)一種實(shí)施方式,多個處理器包括中央處理單元cpu和/或圖形處理器gpu。
31、由此可以實(shí)現(xiàn)這樣的技術(shù)優(yōu)點(diǎn):可以優(yōu)化處理,在所述處理中,要在cpu和/或gpu上實(shí)施應(yīng)用。
32、根據(jù)一種實(shí)施方式,該處理是車輛的控制處理。
33、由此可以實(shí)現(xiàn)這樣的技術(shù)優(yōu)點(diǎn):可以提供精確的車輛控制,所述車輛控制由于優(yōu)化的控制處理而需要降低的計(jì)算能力。
34、根據(jù)本發(fā)明的一個另外的方面,提供一種計(jì)算單元,該計(jì)算單元設(shè)置用于,實(shí)施根據(jù)以上實(shí)施方式中任一項(xiàng)所述的、用于優(yōu)化由多個處理器單元進(jìn)行的對包括多個應(yīng)用的處理的實(shí)施的方法。
35、根據(jù)本發(fā)明的一個另外的方面,提供一種包括指令的計(jì)算機(jī)程序產(chǎn)品,在由數(shù)據(jù)處理單元實(shí)施程序時(shí),所述指令促使所述數(shù)據(jù)處理單元,實(shí)施根據(jù)以上實(shí)施方式中任一項(xiàng)所述的、用于優(yōu)化由多個處理器單元進(jìn)行的對包括多個應(yīng)用的處理的實(shí)施的方法。