專利名稱:內(nèi)核處理器分組的制作方法
內(nèi)核處理器分組背景隨著系統(tǒng)中的處理器數(shù)量的增加,在處理被設(shè)計(jì)成在具有較少處理器的系統(tǒng)上處 理的應(yīng)用程序時(shí),處理器的總生產(chǎn)力可能不匹配系統(tǒng)的預(yù)期處理能力。例如,在將用于處理 的各個(gè)線程分發(fā)給各個(gè)處理器時(shí)可能出現(xiàn)瓶頸。在其它情況下,某些應(yīng)用程序會(huì)限制可有 效地處理該應(yīng)用程序的任務(wù)的處理器的數(shù)量。例如,某些應(yīng)用程序可能并非很好地適于由 比為其設(shè)計(jì)該應(yīng)用程序的處理器多的處理器來(lái)處理。例如,雖然應(yīng)用程序可以如所預(yù)期的 那樣在包括兩個(gè)處理器的臺(tái)式系統(tǒng)上操作,但具有六十四個(gè)或更多處理器的企業(yè)服務(wù)器對(duì) 于同一應(yīng)用程序可能經(jīng)歷問題。概述討論用于將各個(gè)處理器分組成分配實(shí)體的技術(shù)。對(duì)處理器進(jìn)行靜態(tài)分組可準(zhǔn)許在 組的基礎(chǔ)上分配線程。以此方式,可最小化調(diào)度用于處理的線程的負(fù)擔(dān),同時(shí)可基于各個(gè)處 理器在組中的物理位置來(lái)選擇分配實(shí)體中的處理器。分組可準(zhǔn)許系統(tǒng)伸縮以滿足各種應(yīng)用 程序的處理需求。提供本概述是為了以簡(jiǎn)化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的一些概 念。本概述不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定 所要求保護(hù)的主題的范圍。附圖簡(jiǎn)述參考附圖來(lái)描述詳細(xì)描述。在附圖中,參考標(biāo)號(hào)中最左邊的數(shù)字標(biāo)識(shí)該參考標(biāo)號(hào) 首次出現(xiàn)的附圖。在說(shuō)明書和附圖中的不同的實(shí)例中使用相同的附圖標(biāo)記可指示相似或相 同的項(xiàng)目。
圖1示出了可使用內(nèi)核級(jí)組處理的示例性實(shí)現(xiàn)中的環(huán)境。圖2是描繪其中使用處理器分配實(shí)體靜態(tài)分組的示例性實(shí)現(xiàn)中的過程的流程圖。詳細(xì)描述概覽因此,描述了可提供內(nèi)核級(jí)處理器分組的技術(shù)。例如,可基于各個(gè)處理器的位置 來(lái)將各個(gè)處理器靜態(tài)地配置成內(nèi)核級(jí)分組,以使得可以在按組的基礎(chǔ)上調(diào)度和處理用于處 理的線程或離散的應(yīng)用程序任務(wù)。分組可準(zhǔn)許操作系統(tǒng)(OS)在組的基礎(chǔ)上交互而不是與 各個(gè)處理器交互。結(jié)果,與在按處理器的基礎(chǔ)上分發(fā)處理任務(wù)的操作系統(tǒng)相比,OS得以簡(jiǎn) 化??蓪⒏鱾€(gè)線程分配給內(nèi)核組以便處理。對(duì)處理器進(jìn)行靜態(tài)分組并且在按組的基礎(chǔ)上分 配處理任務(wù)可最小化與調(diào)度包括大量處理器的系統(tǒng)中的處理器相關(guān)聯(lián)的負(fù)擔(dān)。例如,具有 128個(gè)處理器的企業(yè)服務(wù)器可被配置成處理被設(shè)計(jì)成在雙處理器臺(tái)式系統(tǒng)中有效地操作的 若干應(yīng)用程序。對(duì)于可能經(jīng)歷同步或正確性問題的應(yīng)用程序,如果由比預(yù)期處理該應(yīng)用程序的處 理器更多的處理器來(lái)執(zhí)行處理,則可以在單個(gè)內(nèi)核分組中處理與該應(yīng)用程序相關(guān)聯(lián)的線程 以使得可以隔離處理(例如,就像內(nèi)核組中的處理器是系統(tǒng)中的唯一處理器那樣)。以此 方式,第一內(nèi)核組可以為第一應(yīng)用程序服務(wù)而其它應(yīng)用程序(如果適用)可由其它內(nèi)核組處理。靜態(tài)處理器分組可促進(jìn)對(duì)被設(shè)計(jì)成在有限數(shù)量的處理器上處理的應(yīng)用程序的高效處 理,同時(shí)支持在計(jì)算系統(tǒng)上運(yùn)行的應(yīng)用程序的總體可伸縮性。示例性環(huán)境圖1示出了準(zhǔn)許內(nèi)核分組的示例性實(shí)現(xiàn)中的環(huán)境100。例如,可以配置具有六十四 個(gè)或更多處理器(將引用104-134)的計(jì)算系統(tǒng)102以使得將處理器配置成內(nèi)核級(jí)組(將 引用組“0-N”,分別為136-144)。在計(jì)算系統(tǒng)上操作的OS可在內(nèi)核級(jí)被配置成使得在計(jì)算 系統(tǒng)中的特定處理器組上處理線程或離散任務(wù)。內(nèi)核級(jí)處理器分組可減輕應(yīng)用程序或其它 其它級(jí)必須在考慮各個(gè)處理器的物理位置的同時(shí)考慮系統(tǒng)中所包括的處理器的數(shù)量的負(fù) 擔(dān)。即,通過在內(nèi)核級(jí)考慮多個(gè)處理器,可最小化與在相比于針對(duì)其配置應(yīng)用程序的處理器 的眾多處理器上進(jìn)行處理相關(guān)聯(lián)的問題。例如,可以隔離或以其它方式分隔軟件應(yīng)用程序 模塊以利用可用處理資源。結(jié)果,可以在與預(yù)期處理器使用相比不過度消耗計(jì)算系統(tǒng)資源 的情況下處理無(wú)法容易地伸縮的應(yīng)用程序。例如,當(dāng)在大量處理器上處理時(shí),應(yīng)用程序可消 耗與同一應(yīng)用程序在針對(duì)其設(shè)計(jì)該應(yīng)用程序的多個(gè)處理器上運(yùn)行時(shí)所消耗的處理能力相 比更多的處理能力。在按組的基礎(chǔ)上執(zhí)行操作可以在分發(fā)用于處理的線程時(shí)最小化OS上 的調(diào)度負(fù)擔(dān)。例如,通過將各個(gè)線程分發(fā)給內(nèi)核組以便處理,與將任務(wù)分發(fā)給各個(gè)處理器相 比,可最小化內(nèi)核調(diào)度器145上的負(fù)擔(dān)。例如,最小化計(jì)算系統(tǒng)中的內(nèi)核組的數(shù)量可允許內(nèi) 核調(diào)度器145實(shí)現(xiàn)相對(duì)較簡(jiǎn)單且可能更快的算法。雖然討論了物理實(shí)施例,但也可構(gòu)想虛擬化實(shí)現(xiàn)。例如,應(yīng)用程序可以在虛擬環(huán)境 或組合環(huán)境等中運(yùn)行。例如,應(yīng)用程序可以在也物理分區(qū)的計(jì)算系統(tǒng)上的虛擬環(huán)境中執(zhí)行。盡管引用了 64(六十四)處理器計(jì)算系統(tǒng),但可以伸縮此處所討論的技術(shù)和原理, 諸如“P”個(gè)處理器(諸如在特定組中)以及“N”個(gè)內(nèi)核組(包括“P”個(gè)單獨(dú)的處理器),如 基于計(jì)算系統(tǒng)資源所需,諸如128處理器系統(tǒng)、硬件/軟件,等等。例如,六十四個(gè)處理器或 更多處理器可被配置成“N”個(gè)內(nèi)核級(jí)分組,且各個(gè)內(nèi)核分組具有“P”個(gè)處理器。在各實(shí)現(xiàn) 中,內(nèi)核組可包括單個(gè)處理器、兩個(gè)處理器等等。在另一示例中,六十四處理器系統(tǒng)可被配 置成單個(gè)組,因?yàn)榱奈晃谎诖a可以有效對(duì)分組尋址。在其它示例中,具有六十四個(gè)或更 多處理器的系統(tǒng)可被配置成每組大致六十四個(gè)處理器。內(nèi)核組以及各個(gè)內(nèi)核組中的各個(gè)處理器的精確數(shù)量可以變化。例如,處理器可以 按需熱交換到各個(gè)組中,等等。例如,雖然計(jì)算系統(tǒng)可包括六十四個(gè)或更多物理處理器,但 某些組可專用于特定任務(wù),或者可以為后續(xù)組分配保留處理器,等等。可通過最小化內(nèi)核組 的數(shù)量來(lái)限制調(diào)度任務(wù)的負(fù)擔(dān)。例如,可基于應(yīng)用程序被設(shè)計(jì)成在其上處理的處理器的數(shù) 量來(lái)選擇組中的各個(gè)處理器的數(shù)量。以此方式,計(jì)算系統(tǒng)可支持不適于由大量處理器處理 的應(yīng)用程序。例如,如果預(yù)期進(jìn)行例行處理的應(yīng)用程序可高效地利用兩個(gè)處理器,則內(nèi)核組 可包括兩個(gè)處理器。即,可基于應(yīng)用程序參數(shù)或者為預(yù)期進(jìn)行處理的應(yīng)用程序分配內(nèi)核組 中的各個(gè)處理器的數(shù)量。例如,如果企業(yè)服務(wù)器預(yù)期運(yùn)行被設(shè)計(jì)成在四個(gè)處理器上處理的 至少一個(gè)應(yīng)用程序,則可以將四個(gè)處理器靜態(tài)地分配給內(nèi)核組,以使得超出可以有效地使 用的處理器數(shù)量的其它處理器不被包括在內(nèi)核組中。其它考慮事項(xiàng)可包括將足夠數(shù)量的處理器分組在一起以高效地處理線程。除了將 應(yīng)用程序線程調(diào)度到專用組之外,內(nèi)核調(diào)度器145可以在內(nèi)核組變得可用于處理時(shí)在循環(huán) 的基礎(chǔ)上分配任務(wù)。
可基于處理器相對(duì)于內(nèi)核組中的其它處理器的位置來(lái)選擇內(nèi)核組中的各個(gè)處理 器。在各實(shí)現(xiàn)中,可以在內(nèi)核組中包括非均勻存儲(chǔ)器存取(NUMA)節(jié)點(diǎn)中的各個(gè)處理器。例 如,可以在內(nèi)核組中包括分配給本地存儲(chǔ)器節(jié)點(diǎn)的一個(gè)或多個(gè)單獨(dú)處理器。結(jié)果,NUMA節(jié) 點(diǎn)中的處理器可以在處理分配給包括NUMA節(jié)點(diǎn)中的處理器的內(nèi)核組的線程時(shí)高效地訪問 本地存儲(chǔ)器資源。進(jìn)而,可將NUMA節(jié)點(diǎn)中所包括的處理器(作為參考,NUMA節(jié)點(diǎn)0-15,分 別為146-152)分配給特定內(nèi)核分組。在內(nèi)核分組中包括位置相鄰處理器,無(wú)論其是否在同 一 NUMA節(jié)點(diǎn)中,都可以在系統(tǒng)的各部分由不同的應(yīng)用程序時(shí)改進(jìn)總體處理??山Y(jié)合位置使 用決定分組的其它因素或者可以實(shí)現(xiàn)決定分組的其它因素,諸如處理核心配置或所需的其 它因素。例如,內(nèi)核分組配置可以基于處理核心的配制和該核心的插槽配置。與針對(duì)其設(shè)計(jì)應(yīng)用程序的低處理器系統(tǒng)相比,對(duì)于具有大量處理器的計(jì)算系統(tǒng), 內(nèi)核級(jí)處理器分組可防止不穩(wěn)定的應(yīng)用程序性能、正確性問題、同步問題等等。在各種情況 下,具有大量處理器(諸如128個(gè))的計(jì)算系統(tǒng)可能經(jīng)歷上述問題,而運(yùn)行相同應(yīng)用程序的 較低資源系統(tǒng)可能不會(huì)。根據(jù)此處的技術(shù)來(lái)對(duì)處理器進(jìn)行分組可使得應(yīng)用程序和/或系統(tǒng) 有效地最小化不穩(wěn)定行為的可能性。在各實(shí)現(xiàn)中,內(nèi)核中處理器的數(shù)量可準(zhǔn)許使用指定大小的公共位掩碼。例如,可以 按高效的方式管理六十四位位掩碼,同時(shí)適應(yīng)經(jīng)分組的處理器配置。其它示例性情形可實(shí) 現(xiàn)32位位掩碼(三十二位位掩碼)配置。通過使用內(nèi)核分組,可用于處理的OS分配的線程可高效地使用計(jì)算系統(tǒng)資源,由 此避免在具有大量處理器的服務(wù)器中可能發(fā)生的潛在問題。在大規(guī)模處理器系統(tǒng)中,內(nèi)核 調(diào)度器145可將供處理的各個(gè)應(yīng)用程序線程分配給特定內(nèi)核組,以使得可以按大致同時(shí)的 方式處理適于比該系統(tǒng)中所包括的處理器更少數(shù)量的處理器的多個(gè)應(yīng)用程序,由此比在單 獨(dú)的基礎(chǔ)上處理處理器的情況更高效地使用系統(tǒng)的處理器。如果特定應(yīng)用程序具有同步、正確性或其它多個(gè)處理器問題(如果在具有多個(gè)處 理器的計(jì)算系統(tǒng)上執(zhí)行的話),則內(nèi)核調(diào)度器145可將該應(yīng)用程序的線程調(diào)度到單個(gè)組以 避免或最小化這些潛在問題。例如,如果應(yīng)用程序不是可容易地伸縮的,則內(nèi)核調(diào)度器145 可將該應(yīng)用程序的處理任務(wù)引導(dǎo)到單個(gè)組。例如,如果具有六十四個(gè)或更多處理器的計(jì)算 機(jī)系統(tǒng)將處理多處理器敏感的任務(wù),則內(nèi)核調(diào)度器145可將應(yīng)用程序線程引導(dǎo)到可隔離該 應(yīng)用程序的組0(零)。以此方式,可以就像該組中的處理器是該系統(tǒng)的處理資源那樣處理 線程。隔離級(jí)別可以按需從物理或虛擬分區(qū)類型隔離變化到較少形式的隔離。相反,如果應(yīng)用程序是針對(duì)多處理器處理來(lái)配置的,則可以個(gè)別地調(diào)度供處理的 線程以便在組1、組2和組3 (其可各自包括類似于組0的配置的多個(gè)處理器)之間進(jìn)行處 理,以便利用該計(jì)算系統(tǒng)的處理器資源。在各實(shí)現(xiàn)中,可向應(yīng)用程序和驅(qū)動(dòng)程序給予對(duì)整個(gè)系統(tǒng)的可見性。例如,驅(qū)動(dòng)程序 可以了解內(nèi)核級(jí)結(jié)構(gòu),以使得以使得該驅(qū)動(dòng)程序可支持可訪問該系統(tǒng)的組件。以此方式,計(jì) 算系統(tǒng)可獲得組處理好處,同時(shí)應(yīng)用程序和驅(qū)動(dòng)程序可以了解系統(tǒng)處理器分組。—般而言,在此描述的任何功能可使用軟件、固件、硬件(例如,固定邏輯電路)、 手動(dòng)處理或這些實(shí)現(xiàn)的組合來(lái)實(shí)現(xiàn)。本文使用的術(shù)語(yǔ)“模塊”、“功能”和“邏輯”通常表示 軟件、固件、硬件、或其組合。例如,在軟件實(shí)現(xiàn)的情況下,模塊、功能或邏輯表示當(dāng)在處理器 (例如,一個(gè)或多個(gè)CPU)上執(zhí)行時(shí)實(shí)現(xiàn)指定任務(wù)的程序代碼。程序代碼可被儲(chǔ)存在例如有形介質(zhì)等一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)器設(shè)備中。以下討論描述了可利用上述系統(tǒng)和設(shè)備來(lái)實(shí)現(xiàn)的各種變換技術(shù)。這些過程中每一 過程的各方面可用硬件、固件、或軟件、或其組合來(lái)實(shí)現(xiàn)。這些過程被示為指定由一個(gè)或多 個(gè)設(shè)備執(zhí)行的操作的一組框,并且其不必限于所示由各框執(zhí)行操作的次序。示例性過程以下討論描述了可利用上述系統(tǒng)和設(shè)備來(lái)實(shí)現(xiàn)的方法。這些過程中每一過程的各 方面可用硬件、固件、或軟件、或其組合來(lái)實(shí)現(xiàn)。這些過程被示為指定由一個(gè)或多個(gè)設(shè)備執(zhí) 行的操作的一組框,并且其不必限于所示由各框執(zhí)行操作的次序。也可以考慮各種其他示 例。圖2公開了用于對(duì)處理器進(jìn)行靜態(tài)分組的示例性過程。例如,計(jì)算系統(tǒng)的OS內(nèi)核 級(jí)可被配置成對(duì)各個(gè)處理器進(jìn)行分組,以使得可處理可能對(duì)大規(guī)模處理器環(huán)境敏感的應(yīng)用程序。此處所討論的技術(shù)可準(zhǔn)許在組的基礎(chǔ)上以隔離方式處理由OS分配的線程。這些 技術(shù)可最小化OS的總復(fù)雜度,因?yàn)榭梢栽诮M的基礎(chǔ)上考慮處理而不是在各個(gè)處理器的基 礎(chǔ)上分析任務(wù)。對(duì)于針對(duì)大規(guī)模處理設(shè)計(jì)的應(yīng)用程序,各個(gè)組可以將一個(gè)分配實(shí)體中的各個(gè)任務(wù) 與計(jì)算系統(tǒng)中的其它分配實(shí)體隔離開??梢詫⒏鱾€(gè)處理器分組成分配實(shí)體中以便處理線程202。例如,內(nèi)核調(diào)度器可將特 定應(yīng)用程序分配給在啟動(dòng)時(shí)靜態(tài)分組的各處理器。例如,可將來(lái)自第一應(yīng)用程序的線程調(diào) 度至第一分配實(shí)體,而將其它應(yīng)用程序任務(wù)分配到第二分配實(shí)體,以此類推。例如,可將第 一應(yīng)用程序分配給兩個(gè)處理器的第一靜態(tài)內(nèi)核分組(這兩個(gè)處理器在物理上對(duì)于該組中 所包括的另一處理器可以是本地的),而將第二應(yīng)用程序分配給具有四個(gè)處理器的第二靜 態(tài)內(nèi)核組。上述操作可準(zhǔn)許比OS在單獨(dú)的基礎(chǔ)上與處理器交互的情況更高效地處理第一 和第二應(yīng)用程序(更高效地使用處理器)。在各實(shí)現(xiàn)中,分配實(shí)體中所包括的處理器的數(shù)量可以與針對(duì)其配置應(yīng)用程序的處 理器的數(shù)量相當(dāng)。以此方式,處理資源可以不專用于可能無(wú)法有效地利用分配給該組的多 個(gè)處理器的特定應(yīng)用程序??梢灶愃频嘏渲闷渌峙鋵?shí)體,以使得各個(gè)組可以單獨(dú)地分配 到來(lái)自不同應(yīng)用程序的任務(wù)。可基于結(jié)合處理器使用的位掩碼來(lái)確定分配實(shí)體中所包括的處理器的數(shù)量。因 此,組中的處理器數(shù)量可以是例如六十四個(gè)或更少以利用六十四位位掩碼。以此方式,系統(tǒng) 可使用可以是較簡(jiǎn)單的配置的較低位位掩碼配置,同時(shí)適應(yīng)具有超過該位掩碼可有效尋址 的多個(gè)處理器的處理器的系統(tǒng)。在各種情況下,分配到處理組中的處理器數(shù)量可小于位掩 碼可尋址的處理器數(shù)量,因?yàn)槟承┨幚砥骺赏V篃峤粨Q等。使用經(jīng)分組的處理器配置(在內(nèi)核級(jí))可最小化多處理器環(huán)境對(duì)在較高級(jí)上執(zhí)行 的應(yīng)用程序的影響。因此,雖然內(nèi)核級(jí)可被配置成諸如在真實(shí)環(huán)境、虛擬化環(huán)境或其組合中 將多個(gè)處理器作為一實(shí)體來(lái)控制,但可以在不必為超出針對(duì)其配置位掩碼的多個(gè)處理器的 附加處理器重新配置位掩碼的情況下使用較低位位掩碼配置。在各實(shí)現(xiàn)中,可最小化OS/計(jì)算系統(tǒng)中的分配實(shí)體的數(shù)量以最小化與散布應(yīng)用程 序任務(wù)相關(guān)聯(lián)的調(diào)度負(fù)擔(dān)(例如,潛在瓶頸)。這可準(zhǔn)許使用與個(gè)別尋址處理器的系統(tǒng)相比
7而言較簡(jiǎn)單的算法的內(nèi)核級(jí)調(diào)度。分配實(shí)體的精確數(shù)量以及分配實(shí)體中的各個(gè)處理器的數(shù) 量可以基于多個(gè)因素,包括預(yù)期應(yīng)用程序處理需求、可以在應(yīng)用程序經(jīng)歷處理問題之前對(duì) 于該應(yīng)用程序可實(shí)現(xiàn)的處理器的數(shù)量、最小化伸縮瓶頸等??梢栽谔囟ǚ峙鋵?shí)體中包括各個(gè)處理器以最大化處理器在分配實(shí)體中的局部性。 例如,分配實(shí)體中的處理器可以在物理上與該分配實(shí)體中的其它各個(gè)處理器相鄰??蓪⒎蔷鶆虼鎯?chǔ)器存取(NUMA)節(jié)點(diǎn)中的各個(gè)處理器分組成配實(shí)體。因此,可將 NUMA節(jié)點(diǎn)中所分配204的各個(gè)處理器分組成特定內(nèi)核級(jí)處理器組。以先前方式,分配實(shí)體 和NUMA節(jié)點(diǎn)中所包括的各個(gè)處理器可快速訪問本地存儲(chǔ)器(與其中未應(yīng)用上述原理的各 個(gè)處理器相比)。雖然NUMA節(jié)點(diǎn)可以不連系到特定內(nèi)核組,但在各實(shí)現(xiàn)中可將節(jié)點(diǎn)映射到 內(nèi)核組以便緊密地親密化(affinitize)特定任務(wù)206。例如,應(yīng)用程序接口可被配置成將 各個(gè)物理處理器與內(nèi)核分組連系。用內(nèi)核級(jí)分配實(shí)體來(lái)緊密地映射物理資源可準(zhǔn)許將緊密 相關(guān)聯(lián)的任務(wù)分配給特定內(nèi)核分組以便處理。對(duì)于適于伸縮208的應(yīng)用程序,內(nèi)核調(diào)度器可按需分配線程。對(duì)于針對(duì)有限數(shù)量 的處理器設(shè)計(jì)的應(yīng)用程序,可將線程引導(dǎo)到單個(gè)內(nèi)核組。例如,應(yīng)用程序可將其處理任務(wù)引 導(dǎo)到組0,而可將其它應(yīng)用程序引導(dǎo)到組1??上驊?yīng)用程序和驅(qū)動(dòng)程序給予系統(tǒng)分組的可見性。例如,驅(qū)動(dòng)程序可以了解內(nèi)核 級(jí)分組結(jié)構(gòu)以使得以使得該驅(qū)動(dòng)程序可支持可訪問總系統(tǒng)的組件。以此方式,遵照此處所 討論的技術(shù)操作的計(jì)算系統(tǒng)可獲得組處理的好處,同時(shí)應(yīng)用程序和驅(qū)動(dòng)程序可以按需了解 系統(tǒng)處理器分組。結(jié)論雖然已經(jīng)用結(jié)構(gòu)特征和/或方法動(dòng)作特定的語(yǔ)言描述了本發(fā)明,但是應(yīng)該理解在 所附權(quán)利要求中定義的本發(fā)明不必限于所述具體特征或動(dòng)作。相反,這些具體特征和動(dòng)作 是作為實(shí)現(xiàn)要求保護(hù)的發(fā)明的示例性形式而公開的。
權(quán)利要求
一種方法,包括將各個(gè)處理器靜態(tài)地分組成分配實(shí)體,所述各個(gè)處理器基于所述各個(gè)處理器相對(duì)于組中的其它各個(gè)處理器的物理位置來(lái)被分組;以及伸縮一個(gè)或多個(gè)分配實(shí)體以處理各個(gè)線程,以使得在按分配實(shí)體的基礎(chǔ)上分配各個(gè)線程。
2.如權(quán)利要求1所述的方法,其特征在于,所述各個(gè)處理器在內(nèi)核級(jí)靜態(tài)分組。
3.如權(quán)利要求1所述的方法,其特征在于,所述分配實(shí)體被配置成在所述分配實(shí)體中 隔離與應(yīng)用程序相關(guān)聯(lián)的各個(gè)線程。
4.如權(quán)利要求1所述的方法,其特征在于,單個(gè)線程一次被分配給單個(gè)的個(gè)別分配實(shí)體。
5.如權(quán)利要求1所述的方法,其特征在于,所述分配實(shí)體中的各個(gè)處理器與所述分配 實(shí)體中的其它各個(gè)處理器一起被配置成非均勻存儲(chǔ)器存取(NUMA)節(jié)點(diǎn)。
6.如權(quán)利要求1所述的方法,其特征在于,各個(gè)處理器在啟動(dòng)時(shí)分組。
7.如權(quán)利要求1所述的方法,其特征在于,還包括在啟動(dòng)時(shí)部分地填充非均勻存儲(chǔ)器 存取(NUMA)節(jié)點(diǎn)以準(zhǔn)許熱添加處理器。
8.如權(quán)利要求1所述的方法,其特征在于,單個(gè)應(yīng)用程序的線程在單個(gè)分配實(shí)體中被 處理。
9.一種或多種包括計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述指令在被執(zhí)行時(shí)指示計(jì) 算系統(tǒng)將位置相關(guān)的各個(gè)處理器分配給非均勻存儲(chǔ)器存取(NUMA)節(jié)點(diǎn); 以及在啟動(dòng)時(shí)將所述位置相關(guān)的各個(gè)處理器靜態(tài)地分組成被配置成一次處理一單獨(dú)線程 的內(nèi)核組。
10.如權(quán)利要求9所述的一種或多種計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括在按內(nèi)核組 的基礎(chǔ)上調(diào)度所述單獨(dú)線程。
11.如權(quán)利要求9所述的一種或多種計(jì)算機(jī)可讀介質(zhì),其特征在于,應(yīng)用程序線程都被 調(diào)度至單個(gè)內(nèi)核組以便處理。
12.如權(quán)利要求9所述的一種或多種計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括為被配置成 可伸縮處理的硬件添加驅(qū)動(dòng)程序模型擴(kuò)展。
13.如權(quán)利要求9所述的一種或多種計(jì)算機(jī)可讀介質(zhì),其特征在于,還包括伸縮附加內(nèi) 核組以便處理來(lái)自支持在不同內(nèi)核組之間分發(fā)線程的應(yīng)用程序的線程。
14.如權(quán)利要求9所述的一種或多種計(jì)算機(jī)可讀介質(zhì),其特征在于,所述內(nèi)核組中的各 個(gè)處理器是與所述內(nèi)核組外的處理器隔離開的。
15.如權(quán)利要求9所述的一種或多種計(jì)算機(jī)可讀介質(zhì),其特征在于,一組包括大致 六十四個(gè)單獨(dú)的處理器。
16.一種系統(tǒng),包括多個(gè)處理器,所述多個(gè)處理器被靜態(tài)地配置在內(nèi)核組中,以使得在內(nèi)核組的基礎(chǔ)上分 配供處理的各個(gè)線程;所述各個(gè)處理器在物理上對(duì)于所述內(nèi)核組中所包括的其它處理器是 本地的。
17.如權(quán)利要求16所述的系統(tǒng),其特征在于,還包括被配置成在內(nèi)核組的基礎(chǔ)上分發(fā) 各個(gè)線程的內(nèi)核調(diào)度器。
18.如權(quán)利要求17所述的系統(tǒng),其特征在于,所述內(nèi)核調(diào)度器將特定應(yīng)用程序的所有 線程分配給單個(gè)內(nèi)核組。
19.如權(quán)利要求16所述的系統(tǒng),其特征在于,所述多個(gè)處理器中的各個(gè)處理器在物理 上對(duì)于所述內(nèi)核組中所包括的其它處理器是本地的。
20.如權(quán)利要求16所述的系統(tǒng),其特征在于,所述多個(gè)處理器在啟動(dòng)所述系統(tǒng)時(shí)被分 配給內(nèi)核組。
全文摘要
討論了用于將各個(gè)處理器分組成分配實(shí)體的技術(shù)。對(duì)處理器進(jìn)行靜態(tài)分組可準(zhǔn)許在組的基礎(chǔ)上分配線程。以此方式,可最小化調(diào)度供處理的線程的負(fù)擔(dān),同時(shí)可基于各個(gè)處理器在組中的物理位置來(lái)選擇分配實(shí)體中的處理器。分組可準(zhǔn)許系統(tǒng)伸縮以滿足各種應(yīng)用程序的處理需求。
文檔編號(hào)G06F9/30GK101889265SQ200880119662
公開日2010年11月17日 申請(qǐng)日期2008年11月14日 優(yōu)先權(quán)日2007年12月7日
發(fā)明者A·范德霍文, E·D·沃克, F·C·福爾茨, Z·鄧 申請(qǐng)人:微軟公司