国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      運(yùn)行空間方法、系統(tǒng)和裝置的制作方法

      文檔序號(hào):6360195閱讀:187來源:國知局
      專利名稱:運(yùn)行空間方法、系統(tǒng)和裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明稱為運(yùn)行空間(runspace),大體上涉及計(jì)算系統(tǒng)控制、數(shù)據(jù)處理和數(shù)據(jù)通信領(lǐng)域,并且具體涉及提供節(jié)約型計(jì)算的方法和系統(tǒng),包括執(zhí)行分布在多個(gè)處理元件上的大的多部件任務(wù)。
      背景技術(shù)
      現(xiàn)代高端計(jì)算機(jī)結(jié)構(gòu)包含成千上萬甚至數(shù)百萬個(gè)處理元件、大量分布式存儲(chǔ)器,以及各種級(jí)別的非局部存儲(chǔ)器、網(wǎng)絡(luò)組件和存儲(chǔ)基礎(chǔ)設(shè)施。這些系統(tǒng)為執(zhí)行應(yīng)用所消耗的資源的靜態(tài)和動(dòng)態(tài)優(yōu)化提供了巨大挑戰(zhàn)。傳統(tǒng)上,計(jì)算機(jī)結(jié)構(gòu)努力提供只有單個(gè)、簡單的地址空間的應(yīng)用,并且提供本身合理的語義以進(jìn)行隨后的代碼執(zhí)行和數(shù)據(jù)訪問。產(chǎn)生的范式多年以來使用良好,但當(dāng)通過平行處理而非通過更快的時(shí)鐘率來分布計(jì)算和數(shù)據(jù)并且實(shí)際上實(shí)現(xiàn)所有硬件加速時(shí),所述范式阻礙了優(yōu)化資源分配。本發(fā)明預(yù)測了半導(dǎo)體制造商著手處理減小電路尺寸的物理或成本效率限制的階段,認(rèn)為平行性是性能改進(jìn)的最有前景的途徑。在最大性能至關(guān)重要的應(yīng)用中,傳統(tǒng)的通過中斷和搶占的OS資源分配已經(jīng)妨礙性能。因此,實(shí)現(xiàn)有效分布計(jì)算的主要挑戰(zhàn)在于提供最優(yōu)地使用物理系統(tǒng)的系統(tǒng)軟件,同時(shí)為應(yīng)用編碼器提供計(jì)算的可用抽象模型。

      發(fā)明內(nèi)容
      本發(fā)明提供編譯并運(yùn)行計(jì)算機(jī)程序從而達(dá)成尋求最節(jié)約型程序執(zhí)行的目標(biāo)的系統(tǒng)和方法。這些系統(tǒng)和方法涉及在編譯時(shí),確定稱為小碼的給定程序段的最優(yōu)效率執(zhí)行環(huán)境;和在運(yùn)行時(shí)間,相應(yīng)地放置并調(diào)度小碼到其最優(yōu)效率執(zhí)行環(huán)境進(jìn)行執(zhí)行。本發(fā)明的實(shí)施方案包括用于高效地分配數(shù)據(jù)處理系統(tǒng)資源給應(yīng)用程序任務(wù)的方法。所述方法涉及獲取一組實(shí)現(xiàn)某些數(shù)據(jù)處理任務(wù)的小碼;確定這些小碼間的依賴性;和基于小碼間的依賴性并基于數(shù)據(jù)處理系統(tǒng)資源的可用性和各種資源的相關(guān)使用成本,使用辨識(shí)的資源在給定數(shù)據(jù)處理系統(tǒng)上,動(dòng)態(tài)地放置并調(diào)度小碼進(jìn)行執(zhí)行。根據(jù)本發(fā)明的實(shí)施方案,用于尋求執(zhí)行計(jì)算機(jī)程序的用戶或系統(tǒng)定義目標(biāo)的方法基于將給定計(jì)算機(jī)程序分解成抽象模型集,所述抽象模型包括小碼、合作小碼集、合作抽象模型集和給定抽象模型成員間共享的數(shù)據(jù)。此外,在各種實(shí)施方案中,這些方法包括以下步驟獲取與程序相關(guān)的關(guān)于抽象模型、性能和資源利用的程序運(yùn)行時(shí)間信息;和使用所述程序運(yùn)行時(shí)間信息來指導(dǎo)計(jì)算機(jī)程序或部分計(jì)算機(jī)程序的正在進(jìn)行的或隨后的運(yùn)行中抽象模型的隨后的放置或執(zhí)行調(diào)度。這些方法的另外的實(shí)施方案包括至少部分由運(yùn)行時(shí)間系統(tǒng)實(shí)施的步驟定義存儲(chǔ)器空間或執(zhí)行時(shí)間中抽象模型成員的鄰近目標(biāo);最初放置數(shù)據(jù)并調(diào)度執(zhí)行抽象模型中的小碼,并且,當(dāng)尋求給定用戶或系統(tǒng)定義目標(biāo)有益時(shí),遷移抽象模型的成員,其中以協(xié)調(diào)方式進(jìn)行放置和遷移,以根據(jù)其定義目標(biāo)來最大化抽象模型成員間的實(shí)際鄰近性。本發(fā)明的其它方面包括一種用于最優(yōu)平行放置執(zhí)行軟件程序的方法,所述方法涉及以下步驟a)查詢運(yùn)行時(shí)間系統(tǒng)以發(fā)現(xiàn)執(zhí)行程序可用的處理核的量;b)確定所述程序可分為的處理單元的最大量;c)基于步驟a)和b)中確定的量,將所述程序劃分為最優(yōu)數(shù)目和尺寸的處理單元,例如小碼;和d)根據(jù)每個(gè)步驟c)的劃分,管理程序的平行執(zhí)行。根據(jù)本發(fā)明的實(shí)施方案,系統(tǒng)最優(yōu)地定位并調(diào)度小碼集在給定數(shù)據(jù)處理硬件上的執(zhí)行。這些系統(tǒng)包括基于數(shù)字硬件和軟件的構(gòu)件,所述構(gòu)件用來在處理資源集間交換與度量相關(guān)的信息,所述度量與處理資源間小碼集的最優(yōu)放置有關(guān);確定將所述集中待執(zhí)行的小碼定位于處理資源中哪個(gè)處理資源;和根據(jù)所述確定使用處理資源來放置并調(diào)度小碼的執(zhí)行,其中在系統(tǒng)運(yùn)行時(shí)間期間,動(dòng)態(tài)地運(yùn)用至少一些所述構(gòu)件。本發(fā)明的另外方面涉及一種由多個(gè)核心構(gòu)成的數(shù)據(jù)處理系統(tǒng),其中所述系統(tǒng)包括a)系統(tǒng)管理代理集,所述集包括以下一個(gè)或多個(gè)數(shù)據(jù)滲濾管理器、小碼調(diào)度器、小碼遷移管理器、負(fù)載均衡器、調(diào)功器或性能管理器;和b)供所述代理集以協(xié)作方式異動(dòng)來尋求系統(tǒng)范圍目標(biāo)的構(gòu)件,在各種提供動(dòng)態(tài)運(yùn)行時(shí)間系統(tǒng)行為的實(shí)施方案中,所述目標(biāo)為時(shí)變的。本發(fā)明還包含用于實(shí)施本發(fā)明的方法的各種組合的應(yīng)用和系統(tǒng)軟件程序,以及運(yùn)行這些程序的硬件系統(tǒng)和相關(guān)硬件和軟件產(chǎn)品。

















      I示出示范性運(yùn)行空間結(jié)構(gòu)。
      2示出具有多個(gè)范圍的示范性運(yùn)行空間分配。
      3示出示范性運(yùn)行空間運(yùn)行時(shí)間系統(tǒng)。
      4示出運(yùn)行時(shí)間性能監(jiān)測和分配的示范性案例。5例示了運(yùn)行空間系統(tǒng)中代碼的運(yùn)行時(shí)間行為。6示出示范性交互層次。
      7示出示范性自優(yōu)化操作系統(tǒng)。
      8例示顯式和隱式應(yīng)用指令。
      9示出示范性微存儲(chǔ)器管理單元。
      10示出示范性應(yīng)用使用案例。
      11示出運(yùn)行空間隨時(shí)間的示范性分組。
      12示出使用小碼集的計(jì)算系統(tǒng)。
      13示出小碼集表示系統(tǒng)。
      14示出小碼集轉(zhuǎn)換的實(shí)例。
      15示出元級(jí)別小碼集分布。
      圖16示出小碼集執(zhí)行和遷移。
      圖17示出雙端隊(duì)列并發(fā)訪問機(jī)制寫入/入隊(duì)。
      圖18不出出隊(duì)并發(fā)訪問機(jī)制讀出/出隊(duì)。
      圖19示出通過原子加法數(shù)組(A)的并發(fā)訪問寫入。
      圖20示出通過原子加法數(shù)組(B)的并發(fā)訪問寫入。
      圖21示出通過原子加法數(shù)組(C)的并發(fā)訪問讀出。
      圖22示出鏈表,具體是原子加法數(shù)組(A)。
      圖23示出鏈表,具體是原子加法數(shù)組(B)。
      圖24示出鏈表,具體是原子加法數(shù)組(C)。
      圖25示出鏈表,具體是原子加法數(shù)組(D)。
      圖26示出鏈表,具體是原子加法數(shù)組(E)。
      圖27示出通過具有轉(zhuǎn)向的共享數(shù)組的并發(fā)訪問。
      圖28示出組合網(wǎng)絡(luò)分布增量。
      圖29示出通過原子加法數(shù)組(A)的單任務(wù)和多任務(wù)執(zhí)行并發(fā)訪問。
      圖30示出通過原子加法數(shù)組(B)的單任務(wù)和多任務(wù)執(zhí)行并發(fā)訪問。
      圖31示出通過原子加法數(shù)組(C)的單任務(wù)和多任務(wù)執(zhí)行并發(fā)訪問。
      圖32示出通過原子加法數(shù)組(D)的單任務(wù)和多任務(wù)執(zhí)行并發(fā)訪問。
      圖33示出通過原子加法數(shù)組(E)的單任務(wù)和多任務(wù)執(zhí)行并發(fā)訪問。
      圖34示出小碼集計(jì)算系統(tǒng)場景。
      圖35示出芯片級(jí)通用示范性結(jié)構(gòu)。
      圖36示出板級(jí)/系統(tǒng)級(jí)通用結(jié)構(gòu)。
      圖37示出小碼和小碼集的指派
      圖38示出雙緩沖計(jì)算⑷。
      圖39示出雙緩沖計(jì)算⑶。
      圖40示出雙緩沖計(jì)算(C)。
      圖41示出雙緩沖計(jì)算⑶。
      圖42示出雙緩沖計(jì)算(E)。
      圖43示出雙緩沖計(jì)算(F)。
      圖44示出雙緩沖計(jì)算(G)。
      圖45示出具有SRAM和DRAM的矩陣相乘。
      圖46示出矩陣相乘雙緩沖/DRAM。
      圖47示出計(jì)算LINPACK DTRSM (線性代數(shù)函數(shù))的實(shí)例。
      圖48示出DTRSM情況下小碼集的運(yùn)行時(shí)間初始化。
      圖49示出快速排序?qū)嵗?br> 圖50示出帶有應(yīng)用小碼集的可擴(kuò)展系統(tǒng)函數(shù)。
      圖51示出遺留代碼轉(zhuǎn)換為多任務(wù)。
      圖52示出與多任務(wù)代碼一同運(yùn)行的黑箱代碼。
      圖53示出改進(jìn)的與多任務(wù)代碼一同運(yùn)行的黑箱代碼。
      具體實(shí)施例方式本發(fā)明使用的術(shù)語表·應(yīng)用包含用戶希望執(zhí)行的單個(gè)或多個(gè)相關(guān)特定任務(wù)的指令集 ·應(yīng)用程序編程接口(API):將系統(tǒng)功能供應(yīng)用開發(fā)員所編寫的程序操縱的編程器可訪問程序集,所述應(yīng)用開發(fā)員可能不能訪問系統(tǒng)的內(nèi)部組件,或者可能希望獲得比可通過系統(tǒng)的基本功能獲得的接口更簡單或更一致的接口,或者可能希望獲得符合互操作特定標(biāo)準(zhǔn)的接口?!ば〈a一組在其輸入可用之后大體上能被連續(xù)執(zhí)行到完成為止的指令?!ば〈a集相對(duì)于依賴性分析或執(zhí)行可作為單元來處理的小碼組?!び?jì)算區(qū)域按局部性或功能來分組的處理元件集。這些區(qū)域可分層地包括其它計(jì)算區(qū)域。分層區(qū)域?qū)嵗砂ㄏ到y(tǒng)、節(jié)點(diǎn)、套接口、核心和/或硬件線程?!げl(fā)系統(tǒng)并發(fā)進(jìn)程集和這些進(jìn)程操縱的對(duì)象集。 核心計(jì)算設(shè)備的處理單元。這些處理單元包括但不限于CPU (中央處理單元)、GPU (圖形處理單元)、FPGA (現(xiàn)場可編程數(shù)組)或前述各者的子集?!ひ蕾囆詢蓚€(gè)小碼集之間的表示一個(gè)小碼集結(jié)束另一個(gè)才能開始的有向弧?!し中握{(diào)整結(jié)構(gòu)在系統(tǒng)中多個(gè)量值上安全并可靠地提供資源的高效使用的機(jī)制,其中在每一級(jí)別使用類似策略?!?GACT/廣義角色一個(gè)用戶或一組用戶,或一組用戶和軟件代理,或充當(dāng)用戶以達(dá)成某個(gè)目標(biāo)的計(jì)算實(shí)體。· GCS/廣義計(jì)算系統(tǒng)包括可編程處理器、存儲(chǔ)器、提供數(shù)據(jù)訪問和計(jì)算服務(wù)的I/O設(shè)備的一個(gè)或多個(gè)計(jì)算機(jī)?!?CSIG/小碼信號(hào)小碼之間或監(jiān)測系統(tǒng)與至少一個(gè)小碼之間的通信,所述通信使能依賴性得到滿足的小碼或傳遞狀態(tài)和完成信息?!し謱訄?zhí)行模型其中在若干級(jí)別應(yīng)用被分解,包括在粒度基本級(jí)被分解為小碼的多級(jí)別執(zhí)行模型?!た删€性化在并發(fā)處理系統(tǒng)中似乎同時(shí)發(fā)生的一個(gè)或多個(gè)操作??删€性化通常由連續(xù)(作為一個(gè)群)或被刪除(卷回恢復(fù))的指令達(dá)成,并且由通過特定指令提供“原子”操作或在臨界區(qū)域周圍提供加鎖的系統(tǒng)來達(dá)成。·無鎖同步為確保(至少)系統(tǒng)范圍進(jìn)展的共享資源的無阻塞同步。 局域網(wǎng)(LAN):在相對(duì)較小距離,通常在單個(gè)組織內(nèi)部,連接計(jì)算機(jī)和其它網(wǎng)絡(luò)設(shè)備?!す?jié)點(diǎn)由一個(gè)或多個(gè)計(jì)算機(jī)處理器,且可選地存儲(chǔ)器、網(wǎng)絡(luò)接口和外圍設(shè)備構(gòu)成的設(shè)備?!み^量提供提供超過最小數(shù)目的處理元件和局部存儲(chǔ)器,以允許資源分配有較大余地。例如,將以高時(shí)鐘率運(yùn)行高度順序任務(wù)的小數(shù)目處理元件替換成以低時(shí)鐘率運(yùn)行更分布式的代碼和數(shù)據(jù)的更多的處理元件。·多任務(wù)相對(duì)于計(jì)算資源集可作為單元來處理的一組相關(guān)任務(wù)。通常,多任務(wù)具有類似的資源需求,并且可尋求一批資源的分配。多任務(wù)也可具有互補(bǔ)的資源需求,并且可借助于分布式請(qǐng)求來執(zhí)行負(fù)載均衡。
      ·鄰近如存儲(chǔ)器空間、計(jì)算空間中的局部性,或時(shí)間或依賴性上接近的狀態(tài)。·隊(duì)列可接受入隊(duì)元素和刪除并返回出隊(duì)元素的數(shù)據(jù)結(jié)構(gòu)。元素可在任何位置入隊(duì)或出隊(duì),包括但不限于隊(duì)列的開始處、末尾或中間?!み\(yùn)行時(shí)間系統(tǒng)(RTS):被設(shè)計(jì)來支持計(jì)算機(jī)程序的執(zhí)行的軟件集合。 可擴(kuò)展性計(jì)算機(jī)系統(tǒng)、結(jié)構(gòu)、網(wǎng)絡(luò)或過程的能力,所述能力允許它通過使用另外的處理器、存儲(chǔ)器和連通性來高效地滿足更大量處理的需要?!ぷ灾刂葡到y(tǒng)使用其自身性能和約束的模型,從而允許將高層目標(biāo)相對(duì)于模型屬性而陳述性地表示出來的系統(tǒng)。·信號(hào)使能小碼集的事件。在執(zhí)行期間,信號(hào)可由小碼發(fā)出。 任務(wù)軟件程序中的工作單元?!ぞ€程被限于特定處理元件的歷時(shí)長久的運(yùn)行時(shí)間處理目標(biāo)。·無等待同步保證有系統(tǒng)范圍進(jìn)展和每個(gè)線程進(jìn)展的共享資源的無阻塞同步。·廣域網(wǎng)(WAN):在可能較大的地理區(qū)域,連接計(jì)算機(jī)和其它網(wǎng)絡(luò)設(shè)備。本發(fā)明提供用于表示、操縱和執(zhí)行小碼集的方法和系統(tǒng)。小碼是在其依賴性得到滿足之后通??蛇B續(xù)執(zhí)行到完成為止的一般非搶占式指令群。小碼集是相對(duì)于依賴性分析或執(zhí)行可作為單元來處理的小碼組。小碼集在顯著方面不同于傳統(tǒng)編程和執(zhí)行模型。應(yīng)用被分解成可在需要最少量的系統(tǒng)協(xié)調(diào)的情況下執(zhí)行的獨(dú)立的代碼段。根據(jù)本發(fā)明的實(shí)施方案,不同于集中控制和資源分配,系統(tǒng)代碼(其自身是通過小碼集來實(shí)施)只初始化小碼集的平臺(tái),以通過使能小碼集的初始小碼來運(yùn)行。這些小碼沒有先驗(yàn)依賴性,因此一旦使能小碼集就會(huì)使能這些小碼。小碼集應(yīng)用在它們執(zhí)行期間不必完全保持為文字碼空間。事實(shí)上,即使不確定地,如果特定運(yùn)行或執(zhí)行期間提供的特定數(shù)據(jù)不需要一些不常使用的小碼集元素,那么可推遲這些小碼集元素的轉(zhuǎn)換。小碼集方法的實(shí)施方案的特征包括·將計(jì)算任務(wù)分解成最小化模型間依賴性的抽象模型; 指導(dǎo)初始小碼使能和計(jì)算資源的初始及正在進(jìn)行的分配的抽象依賴性映射的結(jié)構(gòu);·使用具有至少與Petri網(wǎng)絡(luò)相同表達(dá)能力的計(jì)算表示;·遷移正在執(zhí)行或即將執(zhí)行小碼集,以利用例如局部存儲(chǔ)器、特定數(shù)據(jù)和中間結(jié)果的資源的局部性,和合作小碼的局部性,從而最小化通信時(shí)延;·遷移小碼集以獲取資源的更好全局分配,以允許衰減一些處理資源從而節(jié)能或保留容量,或者例如在異構(gòu)系統(tǒng)中利用更適于給定處理任務(wù)的資源;·使用多任務(wù),即相對(duì)于計(jì)算資源集可作為單元來處理或可由表示代理任務(wù)來管理的相關(guān)任務(wù),所述表示代理任務(wù)起作用以獲取所需資源或所述群的另外的任務(wù);·使用原子加法數(shù)組,所述原子加法數(shù)組有效地調(diào)解在共享數(shù)據(jù)或其它處理輸入或資源上工作的小碼的并發(fā)訪問,其中訪問的順序具有潛在重要性;·使用鏈表原子加法數(shù)組,所述鏈表原子加法數(shù)組許可占優(yōu)勢局部訪問的效率同時(shí)支持并發(fā)數(shù)據(jù)存儲(chǔ)的實(shí)質(zhì)上無限成長;·使用多回轉(zhuǎn)/多代原子加法數(shù)組,以維持嚴(yán)格局部存儲(chǔ)的益處同時(shí)支持大量未決的操作;和
      ·組合網(wǎng)絡(luò),以提供級(jí)聯(lián)型增量到存儲(chǔ)器訪問,從而避免單個(gè)全局下一個(gè)函數(shù)的瓶頸。以下結(jié)合附圖描述本發(fā)明的關(guān)鍵概念和方面。注意,在下面的描述中,步驟和步驟的順序是為了說明的目的給定的,但是很多其它的順序、子集和超集在描述本發(fā)明后對(duì)于實(shí)踐者來說是顯而易見的。簡潔的目的防止了列舉每一個(gè)屬于本發(fā)明的合法范圍中步驟的組合。綜沭運(yùn)行空間被建構(gòu)來利用許多處理元件的高度平行的結(jié)構(gòu),其中數(shù)據(jù)和代碼都分布在一致多級(jí)組織中。運(yùn)行空間系統(tǒng)和方法通過維持其中將距離測量應(yīng)用到代碼和數(shù)據(jù)的度量空間模型來達(dá)成處理資源的最優(yōu)使用。任務(wù)分配的良好級(jí)別是小碼級(jí)別,所述小碼是在輸入條件得到滿足后可非搶占性地執(zhí)行到完成為止的指令群。在本發(fā)明的實(shí)施方案中,運(yùn)行空間方法和系統(tǒng)通過執(zhí)行以下一個(gè)或多個(gè)步驟來分配計(jì)算資源給計(jì)算任務(wù)獲取實(shí)現(xiàn)任務(wù)集的小碼集;獲取小碼請(qǐng)求的數(shù)據(jù)規(guī)格集;建構(gòu)表示小碼局部性和它們將訪問的數(shù)據(jù)的度量空間;獲取小碼相對(duì)于度量空間距離的靜態(tài)定義初始排列;使用度量空間表示來初始放置小碼或數(shù)據(jù);獲取小碼和數(shù)據(jù)的動(dòng)態(tài)可用運(yùn)行時(shí)間資源請(qǐng)求;和使用所述度量空間表示來動(dòng)態(tài)地放置或移動(dòng)小碼或數(shù)據(jù)。另外,在實(shí)施方案中,運(yùn)行空間通過以下步驟來準(zhǔn)備分配機(jī)會(huì)并在運(yùn)行時(shí)間利用這些機(jī)會(huì)在編譯時(shí),分析用于操作和指示合并或遷移小碼和數(shù)據(jù)的機(jī)會(huì)的參照的潛在代碼和數(shù)據(jù)分配;然后執(zhí)行這些小碼、合并小碼或數(shù)據(jù)的運(yùn)行時(shí)間遷移,以練習(xí)實(shí)際代碼和數(shù)據(jù)分配所提供的機(jī)會(huì)。另外,為了支持細(xì)粒度執(zhí)行小碼,運(yùn)行空間的實(shí)施方案通過以下動(dòng)作的一個(gè)或多個(gè)來提供安全和有效的局部存儲(chǔ)器訪問將應(yīng)用代碼分解成小碼;提供含有邏輯和物理地址的本地路由表;將確切相關(guān)小碼群的物理地址映射到確切地址空間,其中每個(gè)確切地址空間的相關(guān)小碼確切群可訪問每個(gè)確切地址空間;和將給定確切小碼群到其確切地址空間外部空間的任何訪問處理為錯(cuò)誤。本發(fā)明還提供用于表示、操縱和執(zhí)行小碼集的方法和系統(tǒng)。小碼集是相對(duì)于依賴性分析或執(zhí)行可作為單元來處理的小碼組。小碼集提供用于開發(fā)和執(zhí)行分布式應(yīng)用的機(jī)制,和用于應(yīng)用的可組合性的機(jī)制小碼集可含有小碼集并且它們可被分層建構(gòu)和重用。即使小碼無需搶占也可運(yùn)行到完成為止只要它們的依賴性得到滿足,但是它們也可在搶占式系統(tǒng)上運(yùn)行,任何一種情況都是為了模擬非搶占式多核心結(jié)構(gòu),或者因?yàn)閷?duì)于小碼集所表示的分布式應(yīng)用而言搶占式計(jì)算的一些其它屬性很理想。進(jìn)一步地,可給搶占式OS提示以最小化搶占,例如核心緊密度和過程優(yōu)先。這樣,小碼的運(yùn)行空間可與當(dāng)前計(jì)算機(jī)系統(tǒng)上的其它舊有應(yīng)用共存。根據(jù)本發(fā)明的實(shí)施方案,不同于集中控制和資源分配,系統(tǒng)代碼(其自身是通過小碼集來實(shí)施)只初始化小碼集的平臺(tái),以通過使能小碼集的初始程序來運(yùn)行。根據(jù)本發(fā)明,應(yīng)用程序被分解成可在最少量的系統(tǒng)協(xié)調(diào)的情況下執(zhí)行的獨(dú)立的代碼段。系統(tǒng)利用和管理綜沭在本發(fā)明的實(shí)施方案中,例如下面更詳細(xì)研究的實(shí)例中,運(yùn)行空間執(zhí)行模型遍及所有級(jí)別的系統(tǒng)利用和監(jiān)測。在細(xì)粒度級(jí)別,執(zhí)行模型提供一系列的小碼和它們各自的依賴性。小碼細(xì)粒度本質(zhì)允許運(yùn)行時(shí)間系統(tǒng)有效并動(dòng)態(tài)地分配資源,同時(shí)監(jiān)測性能和能耗并且使調(diào)度改變能夠符合應(yīng)用的性能和功率需求。運(yùn)行空間系統(tǒng)分配可用資源給給定應(yīng)用并提供API以訪問芯片外資源,例如磁盤、外圍設(shè)備、其它節(jié)點(diǎn)存儲(chǔ)器等。應(yīng)用區(qū)域(即應(yīng)用可用的節(jié)點(diǎn))由超管理器定義。小碼細(xì)粒度本質(zhì)允許運(yùn)行時(shí)間系統(tǒng)有效并動(dòng)態(tài)地分配資源,同時(shí)監(jiān)測性能和能耗并且使調(diào)度改變能夠符合應(yīng)用和系統(tǒng)的性能和功率目標(biāo)。在根據(jù)本發(fā)明的實(shí)施方案的系統(tǒng)101中,如圖I中所示,有5個(gè)用于在示范性運(yùn)行空間結(jié)構(gòu)101中系統(tǒng)利用和管理的組件(1)共享長期文件系統(tǒng)和開始應(yīng)用的傳統(tǒng)操作系統(tǒng)(OS),(2)在初級(jí)控制系統(tǒng)資源分配的超管理器,(3)管理芯片外資源的微OS,(4)提供任務(wù)同步性并管理能量消耗和性能的運(yùn)行時(shí)間系統(tǒng),和(5)提供微OS便攜性并允許訪問新外圍設(shè)備的硬件抽象層。根據(jù)這些實(shí)施方案,線程虛擬機(jī)(TVM)代替常規(guī)OS來提供到硬件的直接訪問和小碼之間的細(xì)粒度同步。TVM在這里不應(yīng)理解為單獨(dú)的組件,實(shí)際上,它由運(yùn)行時(shí)間系統(tǒng)和微OS實(shí)施。圖I概述了組件之間的整體交互。軺管理器:超管理器基于用戶參數(shù)和可選地應(yīng)用中指定的參數(shù)來分配全局資源給給定應(yīng)用。這包括應(yīng)使用多少節(jié)點(diǎn),和在某些實(shí)施方案中,節(jié)點(diǎn)的連接度。超管理器設(shè)定應(yīng)用區(qū)域并定義運(yùn)行在每個(gè)節(jié)點(diǎn)上的微OS。然后超管理器載入應(yīng)用特定參數(shù)(例如,命令行參數(shù)、環(huán)境變量等)并指導(dǎo)運(yùn)行時(shí)間系統(tǒng)開始應(yīng)用。運(yùn)行時(shí)間系統(tǒng)通過開始核心上始于主程序開始指針的一個(gè)或多個(gè)小碼來開始用戶應(yīng)用。用戶應(yīng)用可請(qǐng)求在運(yùn)行時(shí)間繁衍更多小碼。另外,用戶應(yīng)用直接與運(yùn)行時(shí)間系統(tǒng)交互來進(jìn)行任務(wù)同步。所有芯片外I/o由微OS調(diào)解,所述微OS串聯(lián)化通過串聯(lián)導(dǎo)線管(例如磁盤I/o、以太網(wǎng)、節(jié)點(diǎn)到節(jié)點(diǎn)通信等)通道的請(qǐng)求和響應(yīng)。另外,微OS幫助運(yùn)行時(shí)間系統(tǒng)在節(jié)點(diǎn)間到其它運(yùn)行時(shí)間系統(tǒng)組件通信。硬件抽象層為獲得微OS便攜性提供公共API到其它平臺(tái)來發(fā)現(xiàn)新外圍設(shè)備。下面的段落概述了系統(tǒng)利用和維護(hù)中涉及的不同組件的整體結(jié)構(gòu)和功能性。線稈虛擬機(jī)(TVM):TVM提供框架來將工作劃分成稱為小碼的小的非搶占?jí)K并在運(yùn)行時(shí)間有效地調(diào)度它們。TVM用一薄層能夠直接與硬件對(duì)接的系統(tǒng)軟件來替換OS,并且大體上使應(yīng)用程序員免受結(jié)構(gòu)復(fù)雜性的困擾。不同于常規(guī)OS,TVM能夠公開對(duì)達(dá)成性能至關(guān)重要的資源。圖2示出了 TVM的實(shí)施方案。TVM將任何控制流、數(shù)據(jù)依賴性或同步條件抽象化為統(tǒng)一數(shù)據(jù)非循環(huán)圖(DAG),運(yùn)行時(shí)間可將DAG分解成小碼機(jī)制。在DAG頂部,TVM還重疊另一 DAG,所述DAG使用范圍概念表示程序的局部性。在本發(fā)明的實(shí)施方案中,小碼可訪問父級(jí)(例如,201)上建立的任何變量或狀態(tài),但同級(jí)(例如,202和203或204和205)不能訪問彼此的存儲(chǔ)器空間。使用這個(gè)范圍,編譯器和運(yùn)行時(shí)間可確定給定圖的合適的工作集和可用并發(fā)性,從而允許運(yùn)行時(shí)間使用功率優(yōu)化模型設(shè)定緊密度并載入平衡特征來調(diào)度資源到小碼執(zhí)行和系統(tǒng)狀態(tài)或范圍變量的滲濾。不同于常規(guī)OS框架,TVM維持分形語義結(jié)構(gòu)并對(duì)運(yùn)行時(shí)間給出調(diào)度和滲濾控制,以最優(yōu)地執(zhí)行任務(wù)。通過遵循這個(gè)分形本質(zhì),使能的編程模型將能夠提供實(shí)質(zhì)信息給運(yùn)行時(shí)間系統(tǒng)。因此,不同于具有不可預(yù)知和不復(fù)雜的緩存機(jī)制的單片線程,粒度和運(yùn)行時(shí)間額外負(fù)擔(dān)的靜態(tài)和動(dòng)態(tài)本質(zhì)都被盡可能緊地管理,以提供更大的功率效率。運(yùn)行時(shí)間系統(tǒng):運(yùn)行時(shí)間系統(tǒng)在軟件中實(shí)施為用戶庫,且在硬件中被運(yùn)行時(shí)間系統(tǒng)核心實(shí)施以服務(wù)若干執(zhí)行核心。在實(shí)施方案中,所述運(yùn)行時(shí)間系統(tǒng)核心可能與執(zhí)行核心不同,或可能具有特定的硬件來幫助更有效地運(yùn)行時(shí)間操作。在實(shí)施方案中,執(zhí)行核心可執(zhí)行運(yùn)行時(shí)間系統(tǒng)任務(wù),并且可能有或可能沒有專用的核心來進(jìn)行運(yùn)行時(shí)間系統(tǒng)任務(wù)執(zhí)行。根據(jù)本發(fā)明的實(shí)施方案,配置并執(zhí)行動(dòng)態(tài)運(yùn)行時(shí)間系統(tǒng)涉及最優(yōu)地分配數(shù)據(jù)處理資源給數(shù)據(jù)處理任務(wù)的方法。所述方法涉及在編譯時(shí),分析潛在代碼和數(shù)據(jù)分配、放置和遷移;和在運(yùn)行時(shí),放置或遷移小碼或數(shù)據(jù)以練習(xí)實(shí)際代碼和數(shù)據(jù)分配所提供的機(jī)會(huì);以及在某些實(shí)施方案中,將至少一些數(shù)據(jù)從一個(gè)場所復(fù)制到另一個(gè)場所,預(yù)期遷移一個(gè)或多個(gè)小碼;和移動(dòng)小碼到其它未充分利用的處理器。本發(fā)明的實(shí)施方案涉及一種數(shù)據(jù)處理系統(tǒng),所述數(shù)據(jù)處理系統(tǒng)包括最優(yōu)地定位系統(tǒng)中小碼集的硬件和軟件。所述系統(tǒng)的元件包括基于數(shù)字硬件和軟件的構(gòu)件,所述構(gòu)件用來(i)在系統(tǒng)中處理資源集間交換與度量相關(guān)的信息,所述度量與處理資源間小碼集的最優(yōu)放置有關(guān);(ii)確定將所述集中一個(gè)或多個(gè)小碼定位于處理資源中哪個(gè)處理資源;和
      (iii)根據(jù)所述確定將一個(gè)或多個(gè)小碼映射到一個(gè)或多個(gè)處理資源。在各種實(shí)施方案中,所述映射可涉及次優(yōu)數(shù)據(jù)局部性所觸發(fā)的數(shù)據(jù)和/或小碼遷移。在某些場景中,根據(jù)遷移的成本,遷移體積小碼和數(shù)據(jù)。在實(shí)施方案中,遷移成本驅(qū)動(dòng)程序包括以下一個(gè)或多個(gè)將被遷移的數(shù)據(jù)或代碼的量、遷移距離、同步的額外負(fù)擔(dān)、存儲(chǔ)器帶寬利用和可用性。運(yùn)行時(shí)間系統(tǒng)可使用編譯時(shí)注釋或來自指定小碼最優(yōu)效率環(huán)境的當(dāng)前或先前執(zhí)行的注釋。本發(fā)明的實(shí)施方案中的相關(guān)方法涉及編譯并運(yùn)行計(jì)算機(jī)程序以尋求最大節(jié)約型程序執(zhí)行。所述方法,在程序編譯時(shí),確定稱為小碼的程序部分的最優(yōu)效率執(zhí)行環(huán)境;并且相應(yīng)地,在程序運(yùn)行時(shí)間,定位小碼以在它們最優(yōu)效率執(zhí)行環(huán)境執(zhí)行。此外,在某些實(shí)施方案中,所述最優(yōu)環(huán)境的確定是基于例如以下的程序源代碼的指示來進(jìn)行的(i)編譯器指令;(ii)函數(shù)調(diào)用,其中調(diào)用的一種類型的函數(shù)提供與所述函數(shù)的最優(yōu)執(zhí)行環(huán)境相關(guān)的信息;(iii)具有例如跨步、工作集、浮點(diǎn)使用的某些特征的循環(huán)體,其中最優(yōu)執(zhí)行環(huán)境已由類似數(shù)據(jù)處理平臺(tái)上的類似循環(huán)的系統(tǒng)運(yùn)行來預(yù)先確定。執(zhí)行給定小碼的最優(yōu)效率執(zhí)行環(huán)境可由例如以下的標(biāo)準(zhǔn)來定義能耗、處理硬件資源使用、完成時(shí)間、給定能耗預(yù)算的最短完成時(shí)間。內(nèi)部硬件/軟件運(yùn)行時(shí)間堆棧:在本發(fā)明的實(shí)施方案中,例如在圖3示出的系統(tǒng)300中,運(yùn)行時(shí)間系統(tǒng)核心301與事件池存儲(chǔ)器302共置。在實(shí)施方案中,運(yùn)行時(shí)間系統(tǒng)的任務(wù)可在專用運(yùn)行時(shí)間系統(tǒng)核心上操作,或由執(zhí)行核心操作。事件池302含有即將運(yùn)行的細(xì)粒度小碼、應(yīng)用和系統(tǒng)目標(biāo)(例如性能和功率目標(biāo))和數(shù)據(jù)可用性事件。事件池302可為例如列表的實(shí)際共享數(shù)據(jù)結(jié)構(gòu),或例如資源利用改變時(shí)(例如當(dāng)隊(duì)列具有自由空間;處理元件可用于工作;或互斥鎖可用時(shí))撥叫的回呼系統(tǒng)的分布式結(jié)構(gòu)。運(yùn)行時(shí)間系統(tǒng)核心301響應(yīng)事件池302中的事件。根據(jù)本發(fā)明的實(shí)施方案,有5個(gè)在運(yùn)行時(shí)間系統(tǒng)核心301上運(yùn)行的管理器(I)數(shù)據(jù)滲濾管理器;
      (2)小碼調(diào)度器;(3)小碼集遷移管理器;(4)負(fù)載均衡器和(5)運(yùn)行時(shí)間性能監(jiān)測器/調(diào)節(jié)器。在某些實(shí)施方案中,這些管理器通過在極其鄰近狀態(tài)操作并共享運(yùn)行時(shí)間狀態(tài)而協(xié)作工作。圖4示出在一個(gè)示范性實(shí)施方案的運(yùn)行時(shí)間系統(tǒng)核心301上運(yùn)行的管理器的輸入、輸出和交互401。當(dāng)合適時(shí),數(shù)據(jù)滲濾管理器滲濾數(shù)據(jù)依賴性(即當(dāng)可用時(shí)預(yù)取輸入數(shù)據(jù))和代碼依賴性(即預(yù)取指令緩存)。當(dāng)滿足所有輸入依賴性時(shí),小碼調(diào)度器將小碼放置在工作隊(duì)列中,從而在某些場景中重排隊(duì)列中就緒小碼的優(yōu)先順序。執(zhí)行核心反復(fù)地從工作隊(duì)列接受任務(wù)并運(yùn)行它們到完成為止。在運(yùn)行小碼的過程中,執(zhí)行核心可創(chuàng)建小碼或線程,并把它們放置到事件池里。運(yùn)行時(shí)間性能監(jiān)測器/調(diào)節(jié)器監(jiān)測執(zhí)行核心的功率和性能,并且可作出調(diào)整來減小功率(例如,按比例降低核心的頻率和/或電壓;關(guān)掉核心;或?qū)⒐ぷ麝?duì)列的一些或全部工作遷移到芯片上其它計(jì)算區(qū)域并關(guān)掉核心)或提高性能(例如,按比例提高頻率和/或電壓;打開核心;從其它計(jì)算區(qū)域招收更多工作或打開不同計(jì)算區(qū)域并把它們結(jié)合到應(yīng)用)。負(fù)載均衡器分析工作隊(duì)列和事件池并確定工作是否應(yīng)局部地進(jìn)行(即在這個(gè)計(jì)算區(qū)域中)或遷移到別處。小碼遷移管理器與所述節(jié)點(diǎn)和遠(yuǎn)程節(jié)點(diǎn)上其它運(yùn)行時(shí)間系統(tǒng)核心一起工作,以發(fā)現(xiàn)小碼集的最優(yōu)目的地并合適地遷移它們。小碼遷移也可由不良數(shù)據(jù)局部性觸發(fā)如果小碼集中許多小碼請(qǐng)求定位在另一個(gè)節(jié)點(diǎn)上的數(shù)據(jù),那么重新定位所述代碼可能比重新定位所述數(shù)據(jù)更好。這些管理器也以協(xié)作方式一起通信,以獲取具有例如給定能耗預(yù)算的最小完成時(shí)間的共同利益的目標(biāo)。例如,如果性能管理器想把功率調(diào)低而負(fù)載均衡器想局部遷移更多工作,那么將這兩個(gè)管理器共置在RTS核心上意味著它們可同時(shí)傳遞它們目標(biāo)的最好的動(dòng)作過程并進(jìn)行快速、確定性動(dòng)作。因此,這些子系統(tǒng)提供基于廣義角色(GACT)目標(biāo)建構(gòu)內(nèi)部性能模型并獲取設(shè)定點(diǎn)的控制結(jié)構(gòu)。所述系統(tǒng)的目標(biāo)是以由GACT約束的能量比例方式來提供最小能耗的最高性能。在本發(fā)明的實(shí)施方案中,這些功能依靠運(yùn)行時(shí)間系統(tǒng)核心來通過發(fā)送載入和功率指示符并接收目標(biāo)對(duì)象來非同步地與主運(yùn)行時(shí)間系統(tǒng)核心通信。主運(yùn)行時(shí)間系統(tǒng)核心的工作是監(jiān)測芯片上給定應(yīng)用的整體性能/功率分布,并合適地調(diào)整每個(gè)計(jì)算區(qū)域的性能(所述性能可包括個(gè)體核心的頻率、電壓和開/關(guān)狀態(tài))。分配到應(yīng)用的每個(gè)節(jié)點(diǎn)的主運(yùn)行時(shí)間系統(tǒng)核心非同步地與所謂應(yīng)用的頭節(jié)點(diǎn)的主運(yùn)行時(shí)間系統(tǒng)核心通信,并交換性能度量和目標(biāo)對(duì)象,例如完成時(shí)間、能耗和最大資源約束(例如,存儲(chǔ)器空間、節(jié)點(diǎn)、網(wǎng)絡(luò)鏈路等)。運(yùn)行時(shí)間系統(tǒng)硬件的分層和分形管理結(jié)構(gòu)反映了執(zhí)行模型的分層本質(zhì)。全體地,運(yùn)行應(yīng)用的節(jié)點(diǎn)的主運(yùn)行時(shí)間系統(tǒng)核心如下面在超管理器部分中描述的那樣執(zhí)行超管理器任務(wù)。運(yùn)行時(shí)間系統(tǒng)彼此通信并提供反饋(例如,局部運(yùn)行時(shí)間核心確定工作量很低,告訴主運(yùn)行時(shí)間核心,并接收更多工作),使得整個(gè)系統(tǒng)就是自知的。在自知操作系統(tǒng)的實(shí)施方案中,監(jiān)測區(qū)域的分形分層網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)處理系統(tǒng)的管理。例如,在基本簇,區(qū)域可以是集群、節(jié)點(diǎn)、套接口、核心、硬件線程。每個(gè)葉域處的進(jìn)程(可以是調(diào)度器)監(jiān)測硬件和應(yīng)用(例如,能耗、載入、程序完成的進(jìn)展等)的健康狀況。階層中較高級(jí)別的監(jiān)測器聚合來自它們子域的信息(且可能可選地添加在它們區(qū)域的信息一或要求所有監(jiān)測都由子域進(jìn)行)并把信息向上傳遞到它們的父域。當(dāng)硬件組件失效時(shí),被沿鏈接向上報(bào)告。階層中任何級(jí)別可選來重新開始在失效的硬件上運(yùn)行或沿鏈接向上傳遞的小碼。一旦一個(gè)級(jí)別選擇重新開始小碼,那么它可向下委派任務(wù)到它的子級(jí)別執(zhí)行。也可用這種方式遷移使能的小碼。如果一個(gè)級(jí)別發(fā)現(xiàn)它的隊(duì)列變得太滿或消耗太大功率,那么它可用與上面描述的方式相同的方式來遷移使能小碼。最終,如果一個(gè)級(jí)別發(fā)現(xiàn)它任務(wù)太少,那么它可從它父級(jí)別請(qǐng)求工作,且這個(gè)請(qǐng)求可沿鏈接向上直到能發(fā)現(xiàn)一個(gè)合適的施體為止。運(yùn)行時(shí)間系統(tǒng)用戶API 小碼可通過調(diào)用運(yùn)行時(shí)間庫調(diào)用來創(chuàng)建另外的小碼,以定義另外小碼的數(shù)據(jù)依賴性、引數(shù)和程序計(jì)數(shù)器??赏ㄟ^數(shù)據(jù)依賴性或控制依賴性來實(shí)現(xiàn)同步性。例如,通過繁衍依賴于具有參與屏障的角色的數(shù)目(看圖5)的變量等式的小碼來實(shí)施屏障。每個(gè)參與小碼原子地添加一個(gè)到屏障變量??捎妙愃品绞綄?shí)施互斥具有臨界區(qū)域的小碼把互斥鎖捕獲用做數(shù)據(jù)依賴性,并當(dāng)完成時(shí)釋放鎖。然而,如果臨界區(qū)域短,那么在某些場景中(在沒有死鎖并且當(dāng)所述鎖在空間局部存儲(chǔ)器中時(shí)),核心只等待鎖可能是富有成效的。最終,存儲(chǔ)器中的原子操作()允許許多類型的隱式無阻塞同步,例如比較和交換隊(duì)列入口和原子添加增量/減量。微OS微OS在節(jié)點(diǎn)邊界提供非本地節(jié)點(diǎn)資源和安全。在本發(fā)明的實(shí)施方案中,微OS具有兩個(gè)組件(I)在執(zhí)行核心上運(yùn)行的特定小碼;和(2)用戶通過系統(tǒng)調(diào)用來調(diào)用的庫函數(shù)。特定小碼用于基于事件的中斷驅(qū)動(dòng)執(zhí)行或串聯(lián)設(shè)備的非同步輪詢和將數(shù)據(jù)放置到隊(duì)列中。典型設(shè)備包括以太網(wǎng)、將這個(gè)節(jié)點(diǎn)連接到其它節(jié)點(diǎn)的開關(guān)的端口,和主動(dòng)提供的輸入(可能是來自磁盤-I/O的非同步響應(yīng))的其它來源。另外,可為例如在諸如TCP/IP的可靠通信協(xié)議上的轉(zhuǎn)發(fā)中繼操作的時(shí)序事件保留小碼。這些小碼分析發(fā)送者和接收者,以保證允許屬于具有節(jié)點(diǎn)的應(yīng)用的特定來源訪問節(jié)點(diǎn)上的資源或應(yīng)用專用資源(例如,磁盤上的刮痕空間)。到共享資源(例如,全局文件系統(tǒng))的訪問是通過例如用戶、群、作用或訪問級(jí)別的能力的構(gòu)件來認(rèn)證的。庫函數(shù)允許用戶應(yīng)用直接訪問硬件,而不需要介入或額外調(diào)度。這些函數(shù)中的一些可直接在硬件(例如,LAN、節(jié)點(diǎn)到節(jié)點(diǎn)或磁盤寫入)中實(shí)施。其它函數(shù)使用低級(jí)別支持來直接發(fā)送并通過緩沖從非同步輸入輪詢線程接收數(shù)據(jù),例如從另一個(gè)節(jié)點(diǎn)請(qǐng)求磁盤訪問。庫調(diào)用指導(dǎo)用戶訪問被分配到它應(yīng)用的數(shù)據(jù)。用戶或系統(tǒng)庫可指定是否阻塞等待響應(yīng)(例如,我們知道它很快回來)或調(diào)度小碼以在結(jié)果上運(yùn)行數(shù)據(jù)依賴性。庫函數(shù)被設(shè)計(jì)成能量有效并通過緊密地與運(yùn)行時(shí)間系統(tǒng)耦合來隱藏延遲。例如,調(diào)用文件系統(tǒng)讀的小碼可使文件系統(tǒng)請(qǐng)求;創(chuàng)建小碼來在文件系統(tǒng)響應(yīng)上處理具有數(shù)據(jù)依賴性的響應(yīng);并離開。這樣允許執(zhí)行核心在其它小碼上工作,同時(shí)數(shù)據(jù)在傳輸中(而不是保持在I/o等待狀態(tài))。如果沒有足夠的并發(fā)性,那么運(yùn)行時(shí)間系統(tǒng)可關(guān)掉核心或調(diào)低核心的頻率,來允許面對(duì)長時(shí)延讀取操作的更慢計(jì)算。本發(fā)明的實(shí)施方案用兩種模式提供安全高性能計(jì)算(HPC)模式,其中一個(gè)應(yīng)用擁有全部節(jié)點(diǎn);和非HPC模式,其中多個(gè)應(yīng)用可在一個(gè)節(jié)點(diǎn)上共存。在HPC模式下,大體上在節(jié)點(diǎn)邊界(即除了內(nèi)核/用戶存儲(chǔ)器空間和只讀存儲(chǔ)器以外不檢查芯片上訪問)上執(zhí)行安全是足夠的。用戶應(yīng)用知道它們應(yīng)用中節(jié)點(diǎn)(即節(jié)點(diǎn)O到N-1,其中N是應(yīng)用中節(jié)點(diǎn)的數(shù)目)的邏輯映射也是足夠的。微OS知道將節(jié)點(diǎn)ID物理映射到邏輯ID,并在適當(dāng)時(shí)重寫地址。另外,當(dāng)微OS從節(jié)點(diǎn)邊界外部獲取輸入時(shí),它驗(yàn)證數(shù)據(jù)就是那個(gè)節(jié)點(diǎn)的。因此,芯片上安全包括保護(hù)內(nèi)核代碼與用戶代碼分開,并保護(hù)用戶的只讀存儲(chǔ)器不寫。在非HPC模式下,微OS允許節(jié)點(diǎn)與外部外圍設(shè)備通信但大體上不與其它節(jié)點(diǎn)通信。用相同方式驗(yàn)證輸入。由如超管理器部分描述的超管理器配置的硬件來執(zhí)行另外的安全。可在粗粒度應(yīng)用級(jí)別或細(xì)粒度小碼級(jí)別執(zhí)行安全。在小碼級(jí)別,因?yàn)樵谶\(yùn)行時(shí)間已知數(shù)據(jù)依賴性和數(shù)據(jù)塊的尺寸,所以可通過使用防護(hù)指針(像M機(jī)器上使用的指針)由硬件或由使用無效頁面或金絲雀(用于ProPolice或堆棧保護(hù)中)的軟件來在數(shù)據(jù)對(duì)象周圍保證安全。軺管理器:超管理器負(fù)責(zé)把資源分配給用戶應(yīng)用。在本發(fā)明的實(shí)施方案中,它物理上常駐在所有節(jié)點(diǎn)上且部分在主系統(tǒng)上。每個(gè)芯片上的一個(gè)或多個(gè)小碼集可用于超管理器功能。它們常駐在運(yùn)行時(shí)間系統(tǒng)核心和執(zhí)行核心中,并且大體上遵循和系統(tǒng)中其它小碼集相同的細(xì)粒度執(zhí)行模型。主軟件上超管理器的實(shí)施方案維持所有資源分配到系統(tǒng)中所有應(yīng)用的狀態(tài)。當(dāng)開始一個(gè)應(yīng)用時(shí),廣義角色(GACT河指定一組執(zhí)行環(huán)境變量,例如節(jié)點(diǎn)數(shù)目和功率和性能目標(biāo)。超管理器把應(yīng)用放置在系統(tǒng)中并分配資源,從而應(yīng)用空間中的節(jié)點(diǎn)是連續(xù)的并很好地匹配GACT應(yīng)用請(qǐng)求。一旦分配一組節(jié)點(diǎn),主超管理器就與每個(gè)節(jié)點(diǎn)上的超管理器例子通信來分配所述節(jié)點(diǎn),傳遞應(yīng)用代碼圖像和用戶環(huán)境(如果有就包括功率和性能目標(biāo)),并用信號(hào)通知運(yùn)行時(shí)間系統(tǒng)以開始應(yīng)用。超管理器通知微OS和運(yùn)行時(shí)間系統(tǒng)資源被分配到應(yīng)用。然后,節(jié)點(diǎn)上的超管理器例子監(jiān)測應(yīng)用性能并與分配到應(yīng)用的其它節(jié)點(diǎn)上的其它超管理器例子和運(yùn)行時(shí)間系統(tǒng)核心一起工作,以通過管理功率、性能、安全和韌性的關(guān)系來達(dá)成功率/性能目標(biāo),從而維持能量比例運(yùn)行時(shí)間功率預(yù)算(見圖6整體系統(tǒng)、超管理器和運(yùn)行時(shí)間系統(tǒng)交互的階層601)。微OS線程和庫提供分配到應(yīng)用的所有節(jié)點(diǎn)上的應(yīng)用數(shù)據(jù)和環(huán)境的安全。在多個(gè)應(yīng)用可共存于一個(gè)節(jié)點(diǎn)的非HPC模式下,超管理器從核心集創(chuàng)建計(jì)算區(qū)域。每個(gè)應(yīng)用的RAM都被分割,且用戶應(yīng)用不能寫入彼此的DRAM或芯片上SRAM。這可由功率效率的基本存儲(chǔ)器管理單元(MMU)或舊有機(jī)器上廣義虛擬存儲(chǔ)器管理器(VMM)實(shí)現(xiàn)。在應(yīng)用啟動(dòng)階段,超管理器確定每個(gè)分割的地址前綴和大小,并且MMU可立即重寫應(yīng)用地址。大體上,可用這種方式來訪問映射到應(yīng)用存儲(chǔ)器空間的地址。硬件抽象層:硬件抽象層(HAL)允許微OS和用戶應(yīng)用詢問硬件設(shè)備可用性并以統(tǒng)一的方式與硬件交互。設(shè)備可以是執(zhí)行核心、磁盤、網(wǎng)絡(luò)接口、其它節(jié)點(diǎn)等。系統(tǒng)的部分可被用戶應(yīng)用通過文件描述符訪問。例如打開、讀、寫和關(guān)閉的微OS庫函數(shù)調(diào)用向應(yīng)用提供基本硬件抽象層。驅(qū)動(dòng)程序與HAL交互,其中一系列存儲(chǔ)器讀并寫。HAL實(shí)施例把這些請(qǐng)求轉(zhuǎn)換成與硬件平臺(tái)相關(guān)的總線事務(wù)。這樣允許用戶在不同的基本平臺(tái)上再次使用驅(qū)動(dòng)代碼。另外,應(yīng)用可向硬件或運(yùn)行時(shí)間系統(tǒng)詢問可用于應(yīng)用的節(jié)點(diǎn)的數(shù)目、芯片上執(zhí)行核心的數(shù)目和存儲(chǔ)器可用性,以幫助確定怎樣劃分所述問題。例如,如果存在一千個(gè)核心,那么應(yīng)用可將一百萬個(gè)迭代循環(huán)劃分成一千個(gè)迭代小碼;而如果只有四個(gè)核心,那么它會(huì)把工作劃分成更粗粒度塊,因?yàn)椴荒軓挠布@得更多并發(fā)性并且更少小碼的額外負(fù)擔(dān)更低。在各種實(shí)施方案中,塊的最優(yōu)尺寸例如可以是(I)可平行進(jìn)行的工作單元的最大數(shù)目除以可用于應(yīng)用的處理元件的量的圓形整數(shù)商;(2)塊之間的不同大小,從而最小塊尺寸和最大塊尺寸之間的最大差異被最小化;或(3)允許在提供的時(shí)間預(yù)算中完成應(yīng)用分割,同時(shí)保持在提供的能耗預(yù)算內(nèi)的最大尺寸。自優(yōu)化操作系統(tǒng):
      操作系統(tǒng)服務(wù)由微OS和運(yùn)行時(shí)間系統(tǒng)執(zhí)行,并由超管理器管理。這些組件一起組成了圖7中示出實(shí)施方案中描述的示范性自知操作系統(tǒng)701。運(yùn)行時(shí)間系統(tǒng)的自優(yōu)化本質(zhì)由以下來實(shí)現(xiàn)(I)執(zhí)行系統(tǒng)的自知特征;⑵OS的自知特征;和(3)在⑴和⑵之間的交互。如圖7所示,OS、超管理器、運(yùn)行時(shí)間系統(tǒng)和執(zhí)行單元彼此通信,并和它們的鄰近級(jí)別通信,以提供反饋觀察-確定-控制循環(huán)。這部分描述了自優(yōu)化系統(tǒng)模型701的實(shí)施方案。(I)嵌入執(zhí)行系統(tǒng)中的自優(yōu)化循環(huán)執(zhí)行模型的實(shí)施方案以兩種小碼為特征非同步任務(wù)和數(shù)據(jù)流小碼。在兩種類型中,相應(yīng)小碼活動(dòng)的引起是事件驅(qū)動(dòng)的。至少在非同步任務(wù)的情況下,小碼的調(diào)用可另外取決于計(jì)算載入、能量消耗、錯(cuò)誤率或在任務(wù)可分配到的特定物理區(qū)域上的其它條件。自優(yōu)化也可應(yīng)用到性能自知監(jiān)測和自適應(yīng)。(2)嵌入操作系統(tǒng)中的自優(yōu)化循環(huán)自優(yōu)化OS觀察本身、反映它的行為并適應(yīng)。它是目標(biāo)定向型;理想地,系統(tǒng)客戶指定目標(biāo)是足夠的,且系統(tǒng)的工作是想出怎樣實(shí)現(xiàn)目標(biāo)。為了支持這些自優(yōu)化功能性,實(shí)施方案中的OS觀察器代理(即運(yùn)行時(shí)間系統(tǒng)核心和超管理器)配備有能被編程來觀察程序執(zhí)行和系統(tǒng)資源利用的所有方面的性能監(jiān)測設(shè)施,和可在不同時(shí)間間隙或特定位置/區(qū)域請(qǐng)求OS時(shí)觀察系統(tǒng)功率消耗的能量效率監(jiān)測設(shè)施。在實(shí)施方案中,OS確定代理(在運(yùn)行時(shí)間系統(tǒng)核心上運(yùn)行的代碼)配備有合適的模型建構(gòu)器和學(xué)習(xí)能力,這樣它可采取及時(shí)有效地動(dòng)作來進(jìn)行自校正和自適應(yīng),從而實(shí)現(xiàn)目標(biāo)。在一些實(shí)施方案中,OS自優(yōu)化循環(huán)可使控制理論方法實(shí)現(xiàn)它的目標(biāo)。圖7示出(I)和
      (2)之間的交互連接OS中的控制循環(huán)和每個(gè)執(zhí)行系統(tǒng)中的控制循環(huán)。OS控制循環(huán)可向執(zhí)行系統(tǒng)詢問關(guān)于它們運(yùn)行狀態(tài)、資源使用、能量效率和錯(cuò)誤狀態(tài)的情況,以做出有根據(jù)的確定來執(zhí)行系統(tǒng)級(jí)別全局控制和調(diào)整。同時(shí),每個(gè)個(gè)體執(zhí)行系統(tǒng)可向OS尋求幫助,來解決它自身控制中可更好地在OS級(jí)別解決的問題。為了有效地使用運(yùn)行空間系統(tǒng)和方法,應(yīng)用開發(fā)者可提供指令,在編譯時(shí)系統(tǒng)對(duì)所述指令注解,并且所述指令產(chǎn)生更好的初始靜態(tài)分配、更好的運(yùn)行時(shí)間(動(dòng)態(tài))分配或兩者。圖8示出C語言中的顯式語言元素(801),其中應(yīng)用程序員報(bào)警系統(tǒng)為“資源拖延”,這可指示可遷移代碼到低功耗、慢的執(zhí)行單元。參考數(shù)字802表示隱式指令使用低保真度浮點(diǎn)計(jì)算的特定API調(diào)用。這些計(jì)算可在浮點(diǎn)處理單元上用很小的尾數(shù)位來便宜地進(jìn)行,從而允許更大的專門化,且在系統(tǒng)的計(jì)算區(qū)域內(nèi)更好地匹配能力和需求。這些是運(yùn)行時(shí)間可用來做出動(dòng)態(tài)確定的用戶特定指令的一些例子。另外,可用指令來剖繪和注釋應(yīng)用,這樣運(yùn)行時(shí)間可基于注釋提供的提示在隨后的運(yùn)行中做出更好的動(dòng)態(tài)確定。圖9示出示范性微存儲(chǔ)器管理單元。參考數(shù)字901是具有局部代碼執(zhí)行和四個(gè)局部物理存儲(chǔ)器塊的處理單元。參考數(shù)字902和903是同一控制任務(wù)-擁有者X-所擁有的兩個(gè)存儲(chǔ)器塊,且所述兩個(gè)存儲(chǔ)器塊可訪問與所述任務(wù)相關(guān)的小碼。902具有邏輯地址00和物理地址00,而903具有物理地址10和邏輯地址LOl。參考數(shù)字904顯示LOl以外的存儲(chǔ)器訪問對(duì)于X擁有的小碼怎樣顯示。即L02以外的任何局部邏輯地址對(duì)于X擁有的小碼來說都是錯(cuò)誤的。參考數(shù)字905顯示常駐在物理位置01上的存儲(chǔ)器部分,所述位置對(duì)于Y擁有的小碼邏輯性地顯示為L00。所有其它局部物理存儲(chǔ)器都不能訪問Y小碼。參考數(shù)字906顯示常駐在物理位置11上的存儲(chǔ)器部分,所述位置對(duì)于Z擁有的小碼邏輯性地顯示為LOO。所有其它局部物理存儲(chǔ)器都不能訪問Z小碼。
      圖10示出包括運(yùn)行空間系統(tǒng)的簡單使用例子,其中廣義代理1001指示任務(wù)(一般通過編譯源代碼);開始應(yīng)用1003并獲取結(jié)果1004。并發(fā)地,另一 GACT 1005執(zhí)行監(jiān)測和系統(tǒng)維護(hù)1006。在典型環(huán)境中,運(yùn)行空間系統(tǒng)可通過局域網(wǎng)(LAN)和/或廣域網(wǎng)(WAN) 1007使用,并且由與常規(guī)前端服務(wù)器1008的交互來進(jìn)行,所述常規(guī)前端服務(wù)器1008與高端計(jì)算機(jī)(HEC) 1009 通信。圖11示出運(yùn)行空間中觀察到的具有小碼和數(shù)據(jù)隨時(shí)間分配的代碼和數(shù)據(jù)局部性的例子。運(yùn)行空間的另外屬性可包括外圍設(shè)備資源需求或分配、處理器操作包封和約束、任務(wù)緊迫性或可遲性等。運(yùn)行空間系統(tǒng)使用度量空間距離模型來最初分配代碼和數(shù)據(jù)到合適的局部處理元件,并當(dāng)認(rèn)為相對(duì)于當(dāng)前目標(biāo)優(yōu)化系統(tǒng)性能有利時(shí)可動(dòng)態(tài)地遷移代碼和數(shù)據(jù)。系統(tǒng)可使用政策驅(qū)動(dòng)優(yōu)化技術(shù)來動(dòng)態(tài)分配并在編譯時(shí)使用詳盡優(yōu)化方法。另外,系統(tǒng)可從之前的性能數(shù)據(jù)中學(xué)習(xí),以改進(jìn)特定小碼、子程序、任務(wù)和應(yīng)用的未來分配。檑切奪互執(zhí)行模型運(yùn)行時(shí)間系統(tǒng)和微OS管理、遷移和繁衍小碼。它們根據(jù)運(yùn)行時(shí)間目標(biāo)選擇運(yùn)行小碼版本。如上面所述,運(yùn)行時(shí)間系統(tǒng)核心管理小碼之間的數(shù)據(jù)依賴性,從而一起遷移數(shù)據(jù)和小碼,并基于運(yùn)行時(shí)間約束繁衍正確的小碼版本??梢蕾囆允前踩蛷椥缘慕M合。根據(jù)實(shí)施方案,本發(fā)明的安全方面包括向小碼提供安全標(biāo)示,其中所述標(biāo)示指示分配所述小碼和它們相關(guān)數(shù)據(jù)時(shí)將考慮的限制或權(quán)限。數(shù)據(jù)綁定或規(guī)定的權(quán)限之外的存儲(chǔ)器訪問將增加運(yùn)行時(shí)間系統(tǒng)需處理的安全例外。在HPC模式下,應(yīng)用完全擁有節(jié)點(diǎn)。在核心級(jí)別安全由用戶/內(nèi)核空間存儲(chǔ)器和指令集實(shí)施提供。在應(yīng)用級(jí)別安全由主系統(tǒng)和超管理器提供,所述主系統(tǒng)定義應(yīng)用在上面運(yùn)行的節(jié)點(diǎn)集,所述超管理器中繼信息到在分配節(jié)點(diǎn)上運(yùn)行的微OS。在系統(tǒng)級(jí)別安全由主系統(tǒng)上的工作管理器提供,所述工作管理器以互相排斥的方式調(diào)度并分配節(jié)點(diǎn)到應(yīng)用。在非HPC模式下,系統(tǒng)被進(jìn)一步子劃分為互相排斥的芯片區(qū)域和存儲(chǔ)器部分,并且存儲(chǔ)器和資源被映射從而防止應(yīng)用訪問彼此在相同芯片上的數(shù)據(jù)。彈性是通過分形監(jiān)測系統(tǒng)的健康狀況并重新執(zhí)行失效的小碼來維持的。計(jì)算區(qū)域中局部運(yùn)行時(shí)間核心監(jiān)測執(zhí)行核心健康狀況。節(jié)點(diǎn)級(jí)別運(yùn)行時(shí)間核心監(jiān)測運(yùn)行時(shí)間核心。節(jié)點(diǎn)級(jí)別運(yùn)行時(shí)間核心被主系統(tǒng)監(jiān)測。當(dāng)一個(gè)組件失效時(shí),在核心上運(yùn)行的小碼被重新開始(如果它們沒有在程序中創(chuàng)建狀態(tài)改變)或者應(yīng)用被從檢查點(diǎn)重新開始(如果程序的狀態(tài)是非確定的)。效率目標(biāo)在給定應(yīng)用和系統(tǒng)目標(biāo)集的情況下尋求最大化性能并最小化能耗。這是基于代碼的依賴性和工作的可用性通過在執(zhí)行核心級(jí)別頻率和電壓縮放來實(shí)現(xiàn)的。另外,小碼和數(shù)據(jù)被遷移到它們能最有效地彼此通信(例如,通過更緊密保持交互小碼在一起)并消耗最小量功率(例如,把小碼移到一起以允許未使用簇的功率區(qū)域關(guān)機(jī)并消除閑置能耗)的地方。自優(yōu)化通過分形監(jiān)測網(wǎng)絡(luò)(的健康狀態(tài)和性能)和運(yùn)行時(shí)間系統(tǒng)重新調(diào)度來維持自優(yōu)化,從而實(shí)現(xiàn)應(yīng)用和系統(tǒng)的目標(biāo)同時(shí)維持可依賴性和效率。實(shí)施方案描述:下面進(jìn)一步查看附圖描述本發(fā)明的實(shí)施方案的操作例子和應(yīng)用場景。圖12示出使用小碼集的計(jì)算系統(tǒng)。重要的表示步驟包括1201在GCS上提供小碼集表示系統(tǒng);1202從GACT獲取小碼集表示;1203把小碼集轉(zhuǎn)換成可執(zhí)行或可判讀的指令和依賴性表示;1204在GCS上使用指令來進(jìn)行元級(jí)別分布和小碼集分配;1205執(zhí)行小碼集可執(zhí)行例子的動(dòng)態(tài)具體分布和遷移;1206執(zhí)行小碼集和1207至少部分基于依賴性使能新的小碼集。圖13示出包括以下步驟的小碼集表示系統(tǒng)1301提供規(guī)格系統(tǒng)來指派小碼集;1302向GACT提供機(jī)制來建構(gòu)并修改小碼集并獲取小碼集的初始分析;1303向GACT提供機(jī)制來在實(shí)際或模擬資源上執(zhí)行小碼集;1304向GACT提供機(jī)制來監(jiān)測運(yùn)行小碼集或查看小碼集的歷史軌跡;1305向GACT提供機(jī)制來動(dòng)態(tài)地操縱小碼集;和1306向GACT提供機(jī)制來剖繪小碼集性能和資源利用。圖14示出包括以下步驟的小碼集轉(zhuǎn)換的例子1401從表示中抽取小碼集描述符;1402轉(zhuǎn)換可執(zhí)行指令;1403應(yīng)用資源不變優(yōu)化;1404建構(gòu)、分組并分布指令以指導(dǎo)運(yùn)行時(shí)間分配、分布和遷移;1405應(yīng)用資源特定優(yōu)化;和1406產(chǎn)生可執(zhí)行文字并使能初始小碼。圖15示出元級(jí)別小碼集分布的例子,所述例子包括以下步驟1501使用指令來初始分配小碼集到計(jì)算和數(shù)據(jù)資源;1502監(jiān)測具體級(jí)別小碼集執(zhí)行和資源利用;1503收集修改小碼集分布的機(jī)會(huì);1504建構(gòu)改進(jìn)初始(編譯時(shí))小碼集分布的指令;和1505提供資源信息和仲裁來支持小碼集的動(dòng)態(tài)(運(yùn)行時(shí)間)遷移。圖16示出小碼集執(zhí)行和遷移并包括以下步驟1601使用小碼集分布指令來分布小碼集文字到通信資源或到模擬計(jì)算資源;1602提供小碼集執(zhí)行文字和分布指令之間的映射;1603配置小碼集來傳回資源和結(jié)果到系統(tǒng)只到完成為止;1604監(jiān)測資源利用和使能的小碼隊(duì)列載入;1605使用小碼信號(hào)來獲取或傳遞狀態(tài)信息,或監(jiān)測小碼系統(tǒng);1606監(jiān)測以識(shí)別并提交資源或把請(qǐng)求向上串接到更高級(jí)別監(jiān)測器;和1607在適當(dāng)時(shí)從使能隊(duì)列移去小碼集并和數(shù)據(jù)一起遷移它們。圖17示出雙端隊(duì)列并發(fā)訪問機(jī)制1702寫和1703列隊(duì)。隊(duì)列的其它狀態(tài)在1701是空的且在1704是內(nèi)務(wù)處理。圖18示出出隊(duì)并發(fā)訪問機(jī)制,這次執(zhí)行1801 —致性檢查,1802空隊(duì)列,1803非空隊(duì)列和1804讀和出隊(duì)。注意這種系統(tǒng)的一個(gè)優(yōu)勢是使用系統(tǒng)的過程具有處理清除任務(wù)的整體性,所以隊(duì)列很強(qiáng)健。圖19示出通過原子加法數(shù)組㈧的并發(fā)訪問寫。所述狀態(tài)包括1901初始狀態(tài)和1902原子更新寫指針。圖20示出通過原子加法數(shù)組(B)的并發(fā)訪問寫。所述狀態(tài)包括2001數(shù)據(jù)寫和2002標(biāo)記更新和識(shí)讀器可見數(shù)據(jù)。圖21示出通過原子加法數(shù)組(C)的并發(fā)訪問讀。所述狀態(tài)包括2101數(shù)據(jù)就緒可被讀且讀指針更新和2102讀開始和2103讀完成和標(biāo)記更新。圖22
      圖23
      圖24
      圖25
      圖26
      圖27
      圖28示出組合網(wǎng)絡(luò)分布增量。圖29示出通過原子加法數(shù)組(A)的單任務(wù)和多任務(wù)執(zhí)行并發(fā)訪問。圖30示出通過原子加法數(shù)組(B)的單任務(wù)和多任務(wù)執(zhí)行并發(fā)訪問。 圖31示出通過原子加法數(shù)組(C)的單任務(wù)和多任務(wù)執(zhí)行并發(fā)訪問。圖32示出通過原子加法數(shù)組(D)的單任務(wù)和多任務(wù)執(zhí)行并發(fā)訪問。圖33示出通過原子加法數(shù)組(E)的單任務(wù)和多任務(wù)執(zhí)行并發(fā)訪問。圖34示出小碼集計(jì)算系統(tǒng)場景,顯示不同用戶相對(duì)于系統(tǒng)的角色。圖35示出微芯片級(jí)通用示范性結(jié)構(gòu)。注意存儲(chǔ)器級(jí)別是非特定的,且想要傳送局部存儲(chǔ)器(具有快速訪問)對(duì)非局部存儲(chǔ)器的階層。例如,LI可實(shí)施為寄存器文件、SRAM等。圖36示出板級(jí)/系統(tǒng)級(jí)通用結(jié)構(gòu);同樣,又示出性能和全局性的范圍。圖37示出小碼和小碼集的指派。有許多等效的方式來指定小碼集。規(guī)格通常通過特定元語言的使用由本機(jī)語言結(jié)構(gòu),或甚至由非執(zhí)行注釋或通過整合的開發(fā)環(huán)境進(jìn)行的選擇來發(fā)出信號(hào)。小碼集是可編寫的,并可被定義來激發(fā)其它小碼或小碼集。GACT通過從基本小碼建構(gòu)小碼集,然后通過組合所述集成為包括全部應(yīng)用的大的集合來建構(gòu)功能性。函數(shù)setDependency允許表示一個(gè)小碼集的兩個(gè)元素或不同小碼集的兩個(gè)元素之間的依賴性。在一個(gè)實(shí)施方案中,在運(yùn)行時(shí)間調(diào)用函數(shù)implementSet,以建構(gòu)依賴性圖并把它們轉(zhuǎn)換成指針。另外,在實(shí)施方案中,修改編譯器來從代碼產(chǎn)生依賴性信息,即使所述依賴性信息不是由GACT提供的。圖38示出雙緩沖計(jì)算(A)。注意每個(gè)小碼集具有初始化和清理程序,以開始系統(tǒng)并清理和激發(fā)出口依賴性。在一些實(shí)施方案中,初始化和清理任務(wù)可在編譯時(shí)被靜態(tài)地優(yōu)化或在運(yùn)行時(shí)間動(dòng)態(tài)地優(yōu)化。運(yùn)行時(shí)間系統(tǒng)當(dāng)被表示成Petri網(wǎng)時(shí)是同構(gòu)的,Petri網(wǎng)是位置和轉(zhuǎn)換的圖。位置擴(kuò)展數(shù)據(jù)流模型并允許表示數(shù)據(jù)依賴性、控制流依賴性和資源依賴性。在一個(gè)實(shí)施方案中,系統(tǒng)首先執(zhí)行高優(yōu)先順序任務(wù),然后進(jìn)行高優(yōu)先順序任務(wù)。這允許調(diào)度某些系統(tǒng)關(guān)鍵小碼,例如維持系統(tǒng)的并發(fā)資源訪問的任務(wù)。如果所有的執(zhí)行核心在Compl然后在Comp2上工作,那么突然大多數(shù)核心會(huì)沒有工作直到copyl和copy2完成。因此,產(chǎn)生更多小碼的小碼被給予更高的優(yōu)先順序,這樣運(yùn)行隊(duì)列永遠(yuǎn)不會(huì)空。在下面的說明中,一旦開始系統(tǒng),它會(huì)連續(xù)執(zhí)行至少一些計(jì)算小碼,因?yàn)楫?dāng)復(fù)制小碼可用時(shí)它們具有高的優(yōu)先順序。另外,在雙緩沖計(jì)算例子中,示范性索引1024界限指示當(dāng)Init結(jié)束時(shí),它使能1024Compl小碼。類似地,在復(fù)制小碼集中激發(fā)示范性索引界限8復(fù)制小碼。注意使用數(shù)字8是因?yàn)橄到y(tǒng)可具有許多要求DRAM帶寬在其間仲裁的處理器。因此,盡管額外負(fù)擔(dān)(上下文切換)很小,但是小碼系統(tǒng)可使用很少的執(zhí)行核心來實(shí)現(xiàn)同樣持久的帶寬,從而實(shí)現(xiàn)改進(jìn)的應(yīng)用程序處理通量。在另一實(shí)施方案中,系統(tǒng)可動(dòng)態(tài)地提供進(jìn)入copyl并從copyl回傳的位置,其中所述位置中始終有8個(gè)符記。類似地,可對(duì)copy2進(jìn)行相同的優(yōu)化。最終,在另一實(shí)施方案中,兩個(gè)位置可融合成同一位置,且復(fù)制函數(shù)可使用DRAM帶寬符記的同一池。在這種情況下,如果計(jì)算比復(fù)制長,那么系統(tǒng)可保證copyl和copy2不同時(shí)發(fā)生。這是petri網(wǎng)的資源約束的表達(dá)能力的例子,例如存儲(chǔ)器帶寬、執(zhí)行單元、功率、網(wǎng)絡(luò)、鎖等;并說明小碼集可利用所述表達(dá)能力來使能高平行、高可擴(kuò)展性應(yīng)用的建構(gòu)。注意,在2702,deltaT暗7]\ SignalSet (buffer_set [O])在 SignalSet (bufTer_set [I])前執(zhí)行。
      圖39示出雙緩沖計(jì)算⑶。在3901,用信號(hào)通知Init Set 1,而在3902,用信號(hào)通知Init Set 2,且開始計(jì)算1024小碼的示范性數(shù)目。圖40示出雙緩沖計(jì)算(C)。在4001,任務(wù)Comp2在隊(duì)列中,但當(dāng)系統(tǒng)在先來先服務(wù)模式下操作時(shí)執(zhí)行核心將繼續(xù)在Compl上工作,除非有優(yōu)先順序差別。在4002,Compl完成,且放置高優(yōu)先順序任務(wù)“清除”。Comp2現(xiàn)在繼續(xù)。在其它實(shí)施方案中,工作可用先進(jìn)先出以外的方式進(jìn)行,例如后進(jìn)先出以給出堆棧類語義。這個(gè)實(shí)施方案適用于共享遞推應(yīng)用的工作。圖41示出雙緩沖計(jì)算(D)。在4101,Comp2可繼續(xù),但至少一個(gè)執(zhí)行單元用于高優(yōu)先順序任務(wù)copy (8)。在4102,Comp2仍在繼續(xù),但已向復(fù)制函數(shù)分配更多執(zhí)行單元。系統(tǒng)在復(fù)制之后清除資源。圖42示出雙緩沖計(jì)算(E)。在4201,系統(tǒng)將檢查完成標(biāo)記是否在緩沖I中。在4202,初始化Compl小碼。圖43示出雙緩沖計(jì)算(F)。在4301中,Compl小碼排在現(xiàn)有Comp2小碼后。在4302中,Comp2完成而Compl繼續(xù)。圖44示出雙緩沖計(jì)算(G)。最終,在4401,初始化復(fù)制集2的高優(yōu)先順序小碼,而Compl繼續(xù)。注意小碼可在任何時(shí)候接收信號(hào),甚至在它們執(zhí)行期間。這樣使代碼和數(shù)據(jù)的遷移能更好地利用計(jì)算資源。總而言之,一些顯著的方面可包括(a)優(yōu)先順序;(b)平衡并發(fā)性與隊(duì)列空間;和(c)數(shù)據(jù)流外的擴(kuò)展,它可包括例如早期信號(hào)、事件流和/或使編程器能影響調(diào)度。圖45示出具有SRAM和DRAM的矩陣相乘。在4501,系統(tǒng)把矩陣A和B的塊從DRAM復(fù)制SRAM,并計(jì)算SRAM中的矩陣C。在4502,C的每塊被復(fù)制回DRAM中適當(dāng)位置。圖46示出矩陣相乘雙緩沖/DRAM。在這種情況下,小碼用來雙緩沖DRAM訪問,從而減小訪問的時(shí)延;這在括號(hào)中代碼4602的部分中說明。圖47示出計(jì)算LINPACK DTRSM(雙三角正解倍數(shù))的例子。4701顯示初始依賴性。一旦矩陣相乘進(jìn)行第一行和列,那么系統(tǒng)可轉(zhuǎn)到下一數(shù)據(jù)集。圖48示出DTRSM情況下小碼集的運(yùn)行時(shí)間初始化。注意用指示將產(chǎn)生多少小碼的參數(shù)來調(diào)用InitO。4802顯示一些可在DTRSM的小碼集實(shí)施上執(zhí)行的優(yōu)化。圖49示出快速排序例子。在4901,控制流路徑依賴于數(shù)據(jù)。如果所述依賴性先前得到解決/滿足,那么可基于小碼輸出或中間狀態(tài)來有條件地設(shè)定所述依賴性。4902示出了快速排序圖的Petri網(wǎng)表示。在這種表示下,線程將在上半部分工作直到交換小碼沒有輸入數(shù)據(jù)(因?yàn)闆]有數(shù)據(jù)或因?yàn)樗信K數(shù)據(jù)都在一邊)。當(dāng)執(zhí)行單元沒有高優(yōu)先順序小碼時(shí),它用低優(yōu)先順序小碼,例如,在屏障處等待。這時(shí),“移動(dòng)”小碼清除并把樞移到正確的位置。圖50示出帶有應(yīng)用小碼集的可擴(kuò)展系統(tǒng)函數(shù)。因?yàn)橄到y(tǒng)功能性能流動(dòng)地與小碼集應(yīng)用整合,所以系統(tǒng)設(shè)計(jì)師在平衡系統(tǒng)額外負(fù)擔(dān)與系統(tǒng)服務(wù)時(shí)具有很大的彈性。對(duì)于一些使用和應(yīng)用,可幾乎沒有系統(tǒng)軟件,但在其它情況下,擴(kuò)展監(jiān)測和除錯(cuò)可產(chǎn)生比在給定時(shí)間運(yùn)行的應(yīng)用任務(wù)更多的系統(tǒng)任務(wù)。圖51示出將現(xiàn)有程序碼轉(zhuǎn)換為多任務(wù),顯示可怎樣將多任務(wù)輸入輸出表用來通過小碼集開發(fā)代碼的并發(fā)評(píng)估。建構(gòu)優(yōu)先順序,這樣使能一個(gè)或多個(gè)隨后的并發(fā)任務(wù)所必需的順序任務(wù)就具有高優(yōu)先順序。輸入變量集的特定元素到輸出變量集的映射允許接收函數(shù)在第一例子可用之后即可開始處理??煞蛛x例子的數(shù)目的計(jì)數(shù)允許系統(tǒng)軟件分布小碼執(zhí)行,從而來允許高CPU利用并利用數(shù)據(jù)的局部性。圖52示出“黑箱”代碼與多任務(wù)代碼一起運(yùn)行的情況,它示出了場景5201,其中庫代碼已被轉(zhuǎn)換成小碼集,但黑箱用戶代碼5202仍是固有的順序。在其它實(shí)施方案中,假設(shè)隨后的處理需要所有黑箱值,那么優(yōu)先順序可以是保守的;或者基于先前運(yùn)行的性能評(píng)估或所述同一運(yùn)行的先前周期,優(yōu)先順序可以是統(tǒng)計(jì)的;或兩者都可以。圖53示出改進(jìn)的與多任務(wù)代碼一同運(yùn)行的黑箱代碼。在這種情況下,黑箱代碼的部分可由用戶標(biāo)示,所以它可用于并發(fā)執(zhí)行。原始黑箱任務(wù)之前的多任務(wù)5302對(duì)應(yīng)于函數(shù)F25303。黑箱任務(wù)5304的初始部分對(duì)應(yīng)于重構(gòu)函數(shù)BBla,且當(dāng)5302的結(jié)果可用時(shí)使用所述結(jié)果來轉(zhuǎn)換所述初始部分以當(dāng)前地運(yùn)行。黑箱函數(shù)的下一部分仍是固有的順序,且依然是將在隨后的操作之前完成的黑箱。注意在實(shí)施方案中,可執(zhí)行隨后的函數(shù)的推測執(zhí)行,從而提供一種方式來在5306的執(zhí)行期間獲取并發(fā)性。參考數(shù)字5308是重構(gòu)黑箱函數(shù)的第三部分,它對(duì)應(yīng)于函數(shù)BBlc,并允許對(duì)應(yīng)于MP25311的庫調(diào)用5310的并發(fā)執(zhí)行。另外說明本發(fā)明的各種實(shí)施方案可解決應(yīng)用程序相對(duì)于一些性能測量或相對(duì)于一些資源約束的性能優(yōu)化。示范性性能測量或約束可涉及但不限于程序的總運(yùn)行時(shí)間、特定部分中程序的運(yùn)行時(shí)間、執(zhí)行特定指令前的最大延時(shí)、所用處理單元的量;所用存儲(chǔ)器的量;寄存器文件的使用;高速緩存存儲(chǔ)器的使用;一級(jí)高速緩存的使用;二級(jí)高速緩存的使用;三級(jí)高速緩存的使用;N級(jí)高速緩存的使用,其中N為正數(shù);靜態(tài)隨機(jī)存取存儲(chǔ)器的使用;動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器的使用;全局存儲(chǔ)器的使用;虛擬存儲(chǔ)器的使用;可用于使用而非用于執(zhí)行程序的量處理器;可用于使用而非用于執(zhí)行程序的存儲(chǔ)器的量;能量消耗;高峰能量消耗;計(jì)算系統(tǒng)的壽命成本;所需寄存器更新的量;所需存儲(chǔ)器清除的量;安全強(qiáng)制的效能和安全強(qiáng)制的成本。結(jié)論:此詳細(xì)描述提供先前討論的本發(fā)明實(shí)施方案的例示系統(tǒng)操作場景和應(yīng)用例子的說明。為描述本發(fā)明概念的可能實(shí)施例子以及相關(guān)發(fā)明利用場景,本專利申請(qǐng)案和相關(guān)專利申請(qǐng)案中提供了特定應(yīng)用、結(jié)構(gòu)和邏輯實(shí)施例子。當(dāng)然,有多種替代性的方式來整體或部分地實(shí)施或利用上面闡述的本發(fā)明的原理。例如,本文中明確描述或示出的元素或過程步驟在各種實(shí)施方案中可相互組合或與另外的元素或步驟組合。還可再劃分所述元素,而不會(huì)偏離本發(fā)明的精神和范圍。另外,在各種實(shí)施方案中,本發(fā)明的方面可使用應(yīng)用和系統(tǒng)軟件、通用和專用微處理器、定制硬件邏輯和以上的各種組合來實(shí)施。大體上,本領(lǐng)域的技術(shù)人員能夠開發(fā)所述實(shí)施方案的不同版本和各種修改,即使本文中沒有個(gè)別地描述所述版本和修改,但是根據(jù)本發(fā)明的原理,它們都包括在本發(fā)明的精神和范圍里。因此,本說明書和附圖旨在僅作為例示性而不是限制性,本發(fā)明的真正范圍由上面的權(quán)利要求書指定。
      權(quán)利要求
      1.一種用于分配數(shù)據(jù)處理系統(tǒng)資源給一個(gè)或多個(gè)應(yīng)用程序的任務(wù)的方法,所述方法包括 a)獲取一組被配置來實(shí)現(xiàn)至少一個(gè)任務(wù)的小碼; b)確定所述組中所述小碼間的依賴性; c)至少部分基于所述小碼間的所述依賴性并基于數(shù)據(jù)處理系統(tǒng)資源的可用性,動(dòng)態(tài)地映射所述組中的給定小碼到數(shù)據(jù)處理系統(tǒng)資源集以執(zhí)行所述給定小碼。
      2.如權(quán)利要求I所述的方法,其中所述映射包括選自由以下組成的群組的函數(shù)放置、定位、重新定位、移動(dòng)和遷移。
      3.如權(quán)利要求I所述的方法,其中所述映射包括選自由以下組成的群組的函數(shù)確定執(zhí)行所述給定小碼的開始時(shí)間,和確定執(zhí)行所述給定小碼的位置。
      4.如權(quán)利要求I所述的方法,其中所述映射包括基于至少一個(gè)選自由以下組成的群組的標(biāo)準(zhǔn)來執(zhí)行映射1)改進(jìn)應(yīng)用程序的性能度量,2)改進(jìn)所述數(shù)據(jù)處理系統(tǒng)資源的利用,和3)最大化應(yīng)用程序的性能度量,同時(shí)遵守給定資源消耗目標(biāo)集。
      5.如權(quán)利要求I所述的方法,其中執(zhí)行所述映射以相對(duì)于選自由以下組成的群組的測量來優(yōu)化應(yīng)用程序的性能 所述程序的總運(yùn)行時(shí)間;特定部分中所述程序的運(yùn)行時(shí)間;執(zhí)行特定指令前的最大延時(shí);所用處理單元的量;所用存儲(chǔ)器的量;寄存器文件的使用;高速緩存存儲(chǔ)器的使用;一級(jí)高速緩存的使用;二級(jí)高速緩存的使用;三級(jí)高速緩存的使用;N級(jí)高速緩存的使用,其中N為正數(shù);靜態(tài)隨機(jī)存取存儲(chǔ)器的使用;動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器的使用;全局存儲(chǔ)器的使用;虛擬存儲(chǔ)器的使用;可用于使用而非用于執(zhí)行所述程序的量處理器;可用于使用而非用于執(zhí)行所述程序的存儲(chǔ)器的量;能量消耗;高峰能量消耗;計(jì)算系統(tǒng)的壽命成本;所需寄存器更新的量;所需存儲(chǔ)器清除的量;安全強(qiáng)制的效能和安全強(qiáng)制的成本。
      6.如權(quán)利要求I所述的方法,其中執(zhí)行所述映射以在選自由以下組成的群組的資源約束內(nèi)操作 所述程序的總運(yùn)行時(shí)間;特定部分中所述程序的運(yùn)行時(shí)間;執(zhí)行特定指令前的最大延時(shí);所用處理單元的量;所用存儲(chǔ)器的量;寄存器文件的使用;高速緩存存儲(chǔ)器的使用;一級(jí)高速緩存的使用;二級(jí)高速緩存的使用;三級(jí)高速緩存的使用;N級(jí)高速緩存的使用,其中N為正數(shù);靜態(tài)隨機(jī)存取存儲(chǔ)器的使用;動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器的使用;全局存儲(chǔ)器的使用;虛擬存儲(chǔ)器的使用;可用于使用而非用于執(zhí)行所述程序的量處理器;可用于使用而非用于執(zhí)行程序的存儲(chǔ)器的量;能量消耗;高峰能量消耗;計(jì)算系統(tǒng)的壽命成本;所需寄存器更新的量;所需存儲(chǔ)器清除的量;安全強(qiáng)制的效能和安全強(qiáng)制的成本。
      7.如權(quán)利要求I所述的方法,其中執(zhí)行所述映射以尋求目標(biāo)的時(shí)變混合,其中所述混合由于選自由以下組成的群組的因素而隨時(shí)間改變預(yù)定改變和動(dòng)態(tài)地出現(xiàn)的改變。
      8.如權(quán)利要求I所述的方法,還包括應(yīng)用編譯時(shí)指令集,以助于實(shí)行所述獲取、所述確定或所述動(dòng)態(tài)地映射中的一個(gè)或多個(gè)。
      9.如權(quán)利要求8所述的方法,其中所述編譯時(shí)指令選自由以下組成的群組所需浮點(diǎn)單元、所需浮點(diǎn)精度、訪問的頻率、訪問的局部性、停滯訪問、只讀數(shù)據(jù)類型、最初只讀數(shù)據(jù)類型、最終只讀數(shù)據(jù)類型和有條件只讀數(shù)據(jù)類型。
      10.一種用于尋求計(jì)算機(jī)程序執(zhí)行的用戶或系統(tǒng)定義目標(biāo)的方法,包括a)將計(jì)算機(jī)程序分解成抽象模型集,其中抽象模型包括以下成員中的一個(gè)或多個(gè)小碼、合作小碼集、合作抽象模型集,或抽象模型的至少一些其它成員共享的數(shù)據(jù); b)定義鄰近的關(guān)系以尋求最大化存儲(chǔ)器空間或執(zhí)行時(shí)間中所述抽象模型的所述成員的鄰近性; c)通過運(yùn)行時(shí)間系統(tǒng),執(zhí)行以下至少一個(gè)i)最初放置數(shù)據(jù)或以協(xié)調(diào)方式開始執(zhí)行抽象模型中的小碼,或ii)當(dāng)尋求用戶或系統(tǒng)定義目標(biāo)有益時(shí),以協(xié)調(diào)方式遷移抽象模型的成員, a)其中所述放置或所述遷移至少部分基于所述鄰近的關(guān)系來進(jìn)行。
      11.如權(quán)利要求10所述的方法,其中所述分解包括分解所述計(jì)算機(jī)程序以最小化所述抽象模型間的依賴性。
      12.如權(quán)利要求10所述的方法,還包括確定所述抽象模型間的依賴性集。
      13.一種用于尋求計(jì)算機(jī)程序的用戶或系統(tǒng)定義目標(biāo)的方法,包括 b)將所述計(jì)算機(jī)程序分解成抽象模型集,其中抽象模型包括以下中的一個(gè)或多個(gè)小碼、合作小碼集、合作抽象模型集,或抽象模型的至少一些其它成員共享的數(shù)據(jù); c)獲取與所述程序相關(guān)的關(guān)于所述抽象模型、性能和資源利用的程序運(yùn)行時(shí)間信息;和 d)使用所述程序運(yùn)行時(shí)間信息來指導(dǎo)至少部分所述計(jì)算機(jī)程序的正在進(jìn)行的或隨后的運(yùn)行中所述抽象模型的隨后的放置或執(zhí)行調(diào)度。
      14.如權(quán)利要求13所述的方法,其中所述分解包括分解所述計(jì)算機(jī)程序以最小化所述抽象模型間的依賴性。
      15.如權(quán)利要求13所述的方法,還包括確定所述抽象模型間的依賴性集。
      16.如權(quán)利要求13所述的方法,還包括至少部分基于改進(jìn)抽象模型的元件的局部性的標(biāo)準(zhǔn),遷移含有正在執(zhí)行或即將執(zhí)行小碼的所述抽象模型的所述元件。
      17.如權(quán)利要求13所述的方法,還包括基于選自由以下組成的群組的標(biāo)準(zhǔn)來遷移抽象模型的元件改進(jìn)資源的全局分配;允許衰減處理資源以節(jié)能;允許切斷處理資源的電源;和使用更適于給定處理任務(wù)的處理資源。
      18.一種用于分配數(shù)據(jù)處理資源給數(shù)據(jù)處理任務(wù)的方法,包括 a)在編譯時(shí),分析潛在代碼和數(shù)據(jù)分配以識(shí)別選自由以下組成的群組的動(dòng)作的一個(gè)或多個(gè)機(jī)會(huì)小碼遷移和數(shù)據(jù)遷移;和 b)在運(yùn)行時(shí),遷移小碼或數(shù)據(jù)以練習(xí)實(shí)際代碼和數(shù)據(jù)分配所提供的機(jī)會(huì)。
      19.如權(quán)利要求18所述的方法,其中所述遷移包括移動(dòng)小碼到未充分利用的處理器。
      20.如權(quán)利要求18所述的方法,還包括將至少一些數(shù)據(jù)從一個(gè)場所復(fù)制到另一個(gè)場所,預(yù)期遷移至少一個(gè)小碼。
      21.如權(quán)利要求18所述的方法,還包括向小碼提供安全標(biāo)示,其中所述標(biāo)示指示所述方法處理所述小碼時(shí)將考慮的限制或權(quán)限。
      22.一種用于劃分至少一個(gè)軟件應(yīng)用段的執(zhí)行的方法,包括 a)查詢運(yùn)行時(shí)間系統(tǒng)以發(fā)現(xiàn)所述應(yīng)用段可用的處理核的量; b)確定所述段可分為的處理單元的最大量;和 c)基于a)和b)中確定的所述量,將所述段劃分為最優(yōu)數(shù)目的處理單元。
      23.一種用于編譯并運(yùn)行計(jì)算機(jī)程序以改進(jìn)節(jié)約型程序執(zhí)行的方法,所述方法包括 a)在程序編譯時(shí),確定所述程序的小碼的最優(yōu)效率執(zhí)行環(huán)境;和 b)在程序運(yùn)行時(shí)間,至少部分基于所述確定,根據(jù)小碼的最優(yōu)效率執(zhí)行環(huán)境來放置并調(diào)度小碼。
      24.一種由多個(gè)核心構(gòu)成的數(shù)據(jù)處理系統(tǒng),包括 a)多系統(tǒng)管理代理集,所述集包括以下一個(gè)或多個(gè)數(shù)據(jù)滲濾管理器、小碼調(diào)度器、小碼遷移管理器、負(fù)載均衡器、調(diào)功器或性能管理器;和 b)供所述系統(tǒng)管理代理集以協(xié)作方式交互來優(yōu)化所述多個(gè)核心中程序執(zhí)行的構(gòu)件。
      25.一種用于最優(yōu)定位數(shù)據(jù)處理系統(tǒng)中小碼集的系統(tǒng),包括 a)用于在所述系統(tǒng)中處理資源集間交換與度量相關(guān)的信息的構(gòu)件,所述度量與所述處理資源間所述小碼集的最優(yōu)放置有關(guān); b)用于確定將所述集中一個(gè)或多個(gè)小碼定位于所述處理資源中哪個(gè)處理資源的構(gòu)件;和 c)用于根據(jù)所述確定將所述一個(gè)或多個(gè)小碼映射到一個(gè)或多個(gè)處理資源的構(gòu)件。
      26.—種包括多個(gè)節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括在其上存儲(chǔ)有計(jì)算機(jī)程序碼的存儲(chǔ)媒介,所述計(jì)算機(jī)程序碼被設(shè)計(jì)來在至少一個(gè)所述節(jié)點(diǎn)上執(zhí)行,此取決于實(shí)施根據(jù)權(quán)利要求I所述的方法的操作的執(zhí)行結(jié)果。
      27.一種包括多個(gè)節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括在其上存儲(chǔ)有計(jì)算機(jī)程序碼的存儲(chǔ)媒介,所述計(jì)算機(jī)程序碼被設(shè)計(jì)來在至少一個(gè)所述節(jié)點(diǎn)上執(zhí)行,此取決于實(shí)施根據(jù)權(quán)利要求10所述的方法的操作的執(zhí)行結(jié)果。
      28.—種包括多個(gè)節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括在其上存儲(chǔ)有計(jì)算機(jī)程序碼的存儲(chǔ)媒介,所述計(jì)算機(jī)程序碼被設(shè)計(jì)來在至少一個(gè)所述節(jié)點(diǎn)上執(zhí)行,此取決于實(shí)施根據(jù)權(quán)利要求13所述的方法的操作的執(zhí)行結(jié)果。
      29.—種包括多個(gè)節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括在其上存儲(chǔ)有計(jì)算機(jī)程序碼的存儲(chǔ)媒介,所述計(jì)算機(jī)程序碼被設(shè)計(jì)來在至少一個(gè)所述節(jié)點(diǎn)上執(zhí)行,此取決于實(shí)施根據(jù)權(quán)利要求18所述的方法的操作的執(zhí)行結(jié)果。
      30.一種包括多個(gè)節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括在其上存儲(chǔ)有計(jì)算機(jī)程序碼的存儲(chǔ)媒介,所述計(jì)算機(jī)程序碼被設(shè)計(jì)來在至少一個(gè)所述節(jié)點(diǎn)上執(zhí)行,此取決于實(shí)施根據(jù)權(quán)利要求22所述的方法的操作的執(zhí)行結(jié)果。
      31.一種包括多個(gè)節(jié)點(diǎn)的計(jì)算機(jī)系統(tǒng)中的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括在其上存儲(chǔ)有計(jì)算機(jī)程序碼的存儲(chǔ)媒介,所述計(jì)算機(jī)程序碼被設(shè)計(jì)來在至少一個(gè)所述節(jié)點(diǎn)上執(zhí)行,此取決于實(shí)施根據(jù)權(quán)利要求23所述的方法的操作的執(zhí)行結(jié)果。
      32.—種在其上存儲(chǔ)有可執(zhí)行程序碼的計(jì)算機(jī)可用存儲(chǔ)媒介或網(wǎng)絡(luò)可訪問存儲(chǔ)媒介,其中至少一部分所述程序碼在執(zhí)行后實(shí)施根據(jù)權(quán)利要求I所述的方法的操作。
      33.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)可用存儲(chǔ)媒介或網(wǎng)絡(luò)可訪問存儲(chǔ)媒介,且在其上存儲(chǔ)有可執(zhí)行程序碼,其中至少一部分所述程序碼在執(zhí)行后實(shí)施根據(jù)權(quán)利要求10所述的方法的操作。
      34.一種在其上存儲(chǔ)有可執(zhí)行程序碼的計(jì)算機(jī)可用存儲(chǔ)媒介或網(wǎng)絡(luò)可訪問存儲(chǔ)媒介,其中至少一部分所述程序碼在執(zhí)行后實(shí)施根據(jù)權(quán)利要求13所述的方法的操作。
      35.一種在其上存儲(chǔ)有可執(zhí)行程序碼的計(jì)算機(jī)可用存儲(chǔ)媒介或網(wǎng)絡(luò)可訪問存儲(chǔ)媒介,其中至少一部分所述程序碼在執(zhí)行后實(shí)施根據(jù)權(quán)利要求18所述的方法的操作。
      36.一種在其上存儲(chǔ)有可執(zhí)行程序碼的計(jì)算機(jī)可用存儲(chǔ)媒介或網(wǎng)絡(luò)可訪問存儲(chǔ)媒介,其中至少一部分所述程序碼在執(zhí)行后實(shí)施根據(jù)權(quán)利要求22所述的方法的操作。
      37.一種在其上存儲(chǔ)有可執(zhí)行程序碼的計(jì)算機(jī)可用存儲(chǔ)媒介或網(wǎng)絡(luò)可訪問存儲(chǔ)媒介,其中至少一部分所述程序碼在執(zhí)行后實(shí)施根據(jù)權(quán)利要求23所述的方法的操作。
      全文摘要
      本發(fā)明稱為運(yùn)行空間,涉及計(jì)算系統(tǒng)管理、數(shù)據(jù)處理和數(shù)據(jù)通信領(lǐng)域,并且具體涉及協(xié)作方法和系統(tǒng),其通過使用代碼和數(shù)據(jù)局部性的度量空間表示以引導(dǎo)代碼和數(shù)據(jù)的分配和遷移,通過執(zhí)行分析以標(biāo)示提供改進(jìn)運(yùn)行時(shí)間機(jī)會(huì)的代碼區(qū),并且通過提供適于分布調(diào)用訪問局部存儲(chǔ)器的壓縮代碼段的低功耗、局部、安全存儲(chǔ)器管理系統(tǒng),來提供尤其用于可在多個(gè)處理元件上執(zhí)行的可分解多部件任務(wù)的節(jié)約型計(jì)算。運(yùn)行空間提供支持分層分配、優(yōu)化、監(jiān)測和控制,并且支持有彈性的、高效節(jié)能的,大規(guī)模的計(jì)算的機(jī)制。
      文檔編號(hào)G06F9/45GK102934081SQ201180019116
      公開日2013年2月13日 申請(qǐng)日期2011年4月13日 優(yōu)先權(quán)日2010年4月13日
      發(fā)明者里什·李·卡恩, 丹尼爾·奧羅斯科, 高光榮 申請(qǐng)人:Et國際有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1