本發(fā)明涉及計算系統(tǒng),更具體地涉及評估和減少多處理器計算系統(tǒng)中的等待時間。
背景技術(shù):計算機技術(shù)以非凡的速度不斷進步,對處理單元——計算系統(tǒng)的“大腦”——以及存儲計算系統(tǒng)處理的數(shù)據(jù)的存儲器二者的性能做出了許多改進。一般情況下,處理單元(“CPU”)是微處理器或通過執(zhí)行形成計算機程序的指令序列操作的其他的集成電路。指令通常存儲在具有通過唯一存儲地址標識的多個存儲位置的存儲器系統(tǒng)中。存儲地址共同限定“存儲地址空間”,代表可以通過微處理器存取的存儲區(qū)域的可尋址范圍。并行處理計算系統(tǒng)通常包括多個節(jié)點,其中每個節(jié)點包括至少一個CPU,并且多個節(jié)點相互連接,以使得計算節(jié)點可以在它們之間發(fā)送和接收數(shù)據(jù),并存取連接到系統(tǒng)中的各個節(jié)點的存儲器。在具有多個CPU和/或多個節(jié)點的計算系統(tǒng)中,非均勻存儲存取(“NUMA”)配置可以用于跨多個計算節(jié)點上有效地分配主存儲器。在典型的NUMA配置中,至少一個CPU、一個或多個CPU高速緩存器和主存儲器的一部分(例如,一組動態(tài)隨機存取(“DRAM”)存儲器設(shè)備)連接到存儲器總線形成節(jié)點。典型地,多個節(jié)點通過高速互連連接形成NUMA配置。駐留在與CPU相同的節(jié)點上的主存儲器的部分通常被視為該CPU的“本地存儲器”,而駐留在其他節(jié)點上的主存儲器的部分通常被稱為相對于該CPU的“遠程存儲器”。在具有NUMA配置的計算機系統(tǒng)(“NUMA系統(tǒng)”)中,通過本地CPU高速緩存器或本地存儲器的內(nèi)容滿足的CPU的數(shù)據(jù)存取稱為“本地節(jié)點”存取。相應(yīng)地,“遠程節(jié)點”存取通常是通過存取存儲在遠程節(jié)點上的數(shù)據(jù)滿足的存取。與本地節(jié)點存取相比,對遠程節(jié)點的數(shù)據(jù)存取與非常高的等待時間相關(guān)聯(lián)。通常,當進程在NUMA系統(tǒng)中執(zhí)行時,執(zhí)行該進程的CPU存取一個或多個存儲器位置以檢索該進程所需的數(shù)據(jù)。在NUMA系統(tǒng)中,如果進程配置為用在本地存儲器中的操作所需的數(shù)據(jù)執(zhí)行節(jié)點上的操作,通常進程執(zhí)行得更快。同樣地,如果進程配置為用在遠程存儲器中的操作所需的數(shù)據(jù)執(zhí)行本地節(jié)點上的任務(wù),由于與存取該遠程節(jié)點相關(guān)聯(lián)的增加的等待時間,在NUMA系統(tǒng)中執(zhí)行的進程可能執(zhí)行得更慢。此外,在高度分布的NUMA系統(tǒng)(即具有大量相互連接的節(jié)點的NUMA系統(tǒng))中,由于節(jié)點和相應(yīng)的遠程節(jié)點之間的傳輸路徑長度、在每個相應(yīng)的遠程節(jié)點上配置的系統(tǒng)資源、在遠程存取時在每個遠程節(jié)點上執(zhí)行的進程、在遠程存取時也嘗試遠程存取每個節(jié)點的其他進程、和/或其他這樣的原因,與遠程存取第二遠程節(jié)點中的第二存儲器相關(guān)聯(lián)的等待時間相比,與節(jié)點遠程存取第一遠程節(jié)點中的第一存儲器相關(guān)聯(lián)的等待時間可能不同。因此,在分布式系統(tǒng)中,包括例如NUMA系統(tǒng),不是所有的遠程存儲器位置對所有的處理器都具有相等的等待時間。就事實而言,特定節(jié)點中的每個處理器的物理和虛擬位置將在有效地存取存儲器中的不同區(qū)域中建立差異,包括在與特定的處理器或節(jié)點相關(guān)聯(lián)的高速緩存器之間傳送數(shù)據(jù)。如果嘗試協(xié)商存儲器段上的重大操作的兩個處理器相對“遠”,那么通過他們共享和存取這些段的操作可能效率非常低。
技術(shù)實現(xiàn)要素:技術(shù)問題因此,繼續(xù)存在減少現(xiàn)有系統(tǒng)中的存儲器存取等待時間的優(yōu)化共享存儲器計算機系統(tǒng)的性能的需要。解決方案本發(fā)明的實施例提供了一種裝置、方法和程序產(chǎn)品來動態(tài)優(yōu)化在多處理器計算系統(tǒng)中的存儲器存取。在與本發(fā)明一致的一些實施例中,在計算系統(tǒng)的一個或多個處理器的一個或多個進程的執(zhí)行期間,進行對計算系統(tǒng)的共享存儲器中的存儲器位置的存儲器引用采樣,其中收集多個存儲器引用,在采樣期間收集的每個存儲器引用與共享存儲器中相應(yīng)的存儲器的位置和等待時間相關(guān)聯(lián)。對采樣的存儲器引用進行分析,以標識與次優(yōu)的等待時間相關(guān)聯(lián)的共享存儲器中的一個或多個存儲器位置的一個或多個段?;谒治龅拇鎯ζ饕?,動態(tài)地調(diào)整一個或多個標識的段的物理位置、至少一個進程在其上執(zhí)行的物理處理器和/或與一個或多個標識的段相關(guān)聯(lián)的狀態(tài)。在一些實施例中,分析采樣的存儲器引用包括基于檢索存儲器位置的相應(yīng)段所需的時間為每個存儲器引用評分。通過以下附圖和詳細描述,這些和其他的優(yōu)點將顯而易見。附圖包括在本說明書中并構(gòu)成本說明書的一部分,示出了本發(fā)明的實施例,并與上面給出的本發(fā)明的一般描述和下面給出的實施例的詳細描述一起,用于解釋本發(fā)明的原理。附圖說明圖1是與本發(fā)明的實施例一致的共享存儲器計算系統(tǒng)的框圖。圖2是與本發(fā)明的替代性實施例一致的共享存儲器計算系統(tǒng)的框圖。圖3是示出可能會發(fā)生在與本發(fā)明的實施例一致的優(yōu)化關(guān)聯(lián)性調(diào)整器中的邏輯流的一個實施例的流程圖。圖4是示出與本發(fā)明的實施例一致的可以通過圖1的計算系統(tǒng)執(zhí)行以存取存儲器引用的操作序列的流程圖。應(yīng)該理解的是,附圖不一定是按比例繪制的,表示了說明本發(fā)明的基本原理的各種優(yōu)選特征的一定程度的簡化表示。本文中公開的操作序列的特定設(shè)計特征,包括例如特定的維數(shù)、方向、位置和各種示出組件的形狀將部分地由特定的預(yù)期應(yīng)用和使用環(huán)境確定。示出的實施例的某些特征可能已經(jīng)相對于其他放大或變形,以方便可視化和清楚的理解。具體實施例在與本發(fā)明的實施例一致的計算系統(tǒng)中,計算架構(gòu)支持對正在引用的存儲器位置的低性能開銷采樣。本發(fā)明的實施例利用采樣來確定每進程和每頁面的關(guān)聯(lián)性(affinity)得分,以將存儲器頁面動態(tài)地移動到節(jié)點中更高效的存儲器位置,或?qū)⑦M程動態(tài)移動到節(jié)點中更高效的CPU來降低關(guān)聯(lián)性等待時間,其中存儲該存儲器頁面或執(zhí)行該進程的節(jié)點可以視為是該存儲器頁面或該進程的“起始(home)”節(jié)點。在一些實施例中,存儲器引用采樣在存儲器位置上執(zhí)行。在一些實施例中,存儲器采樣可以是在分區(qū)范圍內(nèi)和/或限制于選擇的一組所選進程。此外,一些采樣架構(gòu)也可以允許將采樣限制于一組對象。采樣數(shù)據(jù)可以包括引用的頁面的“真實”的CEC存儲器位置。在與本發(fā)明一致的實施例中,可以對收集的采樣數(shù)據(jù)進行分析,以確定與每個采樣的存儲器引用相關(guān)聯(lián)的得分。此外,每個采樣的存儲器引用的相關(guān)聯(lián)得分可以至少部分基于與關(guān)于引用進程的CPU和/或節(jié)點的采樣的存儲器引用對應(yīng)的計算和/或近似出的等待時間。在與本發(fā)明一致的實施例中,可以對采樣數(shù)據(jù)(即,存儲器引用數(shù)據(jù))進行統(tǒng)計分析,以確定與指示關(guān)于采樣的所有對象、對象的子集、采樣的所有進程和/或進程的子集的高等待時間的得分相關(guān)聯(lián)的存儲器引用。另外,在一些實施例中,分析采樣數(shù)據(jù)可以包括標識包含相似的對象引用的一個或多個進程。此外,在一些實施例中,至少部分地基于采樣數(shù)據(jù)和/或相關(guān)聯(lián)的得分,可以標識在包括存儲器池的系統(tǒng)中將受益(例如,執(zhí)行更高效、更快等等)于使用存儲器公共池的一個或多個進程。在這些實施例中,響應(yīng)于確定一個或多個進程可以受益于使用存儲器公共池,該系統(tǒng)可以動態(tài)地改變一個或多個進程的存儲器引用,以引用確定的存儲器公共池。在一些實施例中,至少部分地基于采樣數(shù)據(jù)和/或相關(guān)聯(lián)的得分,可以標識將受益于使用一個或多個標識的CPU和/或節(jié)點的一個或多個進程。響應(yīng)于確定一個或多個進程將受益于使用用于執(zhí)行的一個或多個標識的節(jié)點,本發(fā)明的實施例可以動態(tài)地改變在其上執(zhí)行一個或多個進程的一個或多個處理器。在這些實施例中,確定一個或多個進程是否會受益于使用用于執(zhí)行的一個或多個節(jié)點可以包括至少部分地基于采樣數(shù)據(jù)和/或相關(guān)聯(lián)的得分,從在其上執(zhí)行進程的系統(tǒng)的多個節(jié)點中標識一個或多個節(jié)點。此外,在一些實施例中,至少部分地基于采樣數(shù)據(jù)和/或相關(guān)聯(lián)的得分,可以標識與指示高等待時間的得分相關(guān)聯(lián)的一個或多個對象頁面。在這些實施例中,響應(yīng)于標識與指示高等待時間的得分相關(guān)聯(lián)的對象頁面,本發(fā)明的實施例可以動態(tài)地移動對象頁面到更有利(即,較低等待時間)的存儲器位置。在這些實施例中,在動態(tài)地移動一個或多個對象頁面之前,可以至少部分地基于與存儲器位置相關(guān)聯(lián)的得分確定一個或多個有利的存儲器位置。另外,在一些實施例中,至少部分地基于采樣數(shù)據(jù)和/或相關(guān)聯(lián)的得分,可以標識高度引用的對象頁面(即,被多個進程引用的對象頁面)。在這些實施例中,至少部分地基于采樣數(shù)據(jù)和/或相關(guān)聯(lián)的得分,可以確定對于高度引用的對象頁面的更有利的存儲器位置,并可以將高度引用的對象頁面動態(tài)地移動到該更有利的存儲器位置。此外,在一些實施例中,響應(yīng)于將高度引用的對象頁面移動到更有利的存儲器位置,可以設(shè)置與高度引用的對象頁面相關(guān)聯(lián)的屬性,使得高度引用的對象頁面不可以從更有利的存儲器位置移動,或使得將高度引用的對象頁面從更有利的存儲器位置移走可以受到限制。本發(fā)明的實施例收集剖繪的一個或多個進程的存儲器引用數(shù)據(jù)(即,采樣數(shù)據(jù))。在一些實施例中,存儲器引用數(shù)據(jù)包括與相應(yīng)的進程對應(yīng)的標識符、相應(yīng)的進程引用的每個存儲器對象的虛擬地址、和/或與每個引用的存儲器對象的物理存儲器位置對應(yīng)的存儲器和/或節(jié)點標識符。與本發(fā)明的實施例一致的計算系統(tǒng)可以分析相應(yīng)的進程引用的每個存儲器對象,并確定關(guān)于相應(yīng)進程的與引用的對象相關(guān)聯(lián)的得分。確定的得分可以至少部分地基于引用的對象關(guān)于相應(yīng)進程的確定和/或近似出的等待時間。計算系統(tǒng)可以分析得分和/或存儲器引用數(shù)據(jù),以確定相應(yīng)進程是否會在不同于相應(yīng)進程當前正在其上執(zhí)行的CPU和/或節(jié)點的CPU/節(jié)點上執(zhí)行得更好(例如,更高效、更快等等)。響應(yīng)于確定相應(yīng)進程會在不同的CPU/節(jié)點上執(zhí)行得更好,計算系統(tǒng)可以將相應(yīng)進程動態(tài)地移動到不同的CPU/節(jié)點從而用于執(zhí)行。本發(fā)明的實施例收集得到的一個或多個進程的存儲器引用數(shù)據(jù)。與本發(fā)明的實施例一致的計算系統(tǒng)可以分析一個或多個進程引用的一個或多個存儲器對象,并確定關(guān)于進程與一個或多個引用的對象相關(guān)聯(lián)的得分。計算系統(tǒng)可以分析得分和/或引用對象,以確定多個進程共同引用的一個或多個存儲器對象。計算系統(tǒng)可以生成報告數(shù)據(jù),指示哪些進程正在引用這些共同引用對象。計算系統(tǒng)可以使用生成的報告數(shù)據(jù)來調(diào)度共享共同引用對象的進程同時和/或背對背(back-to-back)運行。在這些實施例中,這樣的調(diào)度可以減少一個或多個進程和共同引用對象的等待時間,減少二次存儲分頁(I/O)操作的可能性和/或等待時間,增加和/或可以導(dǎo)致更高效地執(zhí)行一個或多個進程。此外,在一些實施例中,計算系統(tǒng)可以分析報告數(shù)據(jù),以標識可以移動到不同的存儲器位置的共同引用對象的一個或多個存儲器對象,從而降低關(guān)于一個或多個進程的與一個或多個共同引用存儲器對象相關(guān)聯(lián)的等待時間。此外,在一些實施例中,計算系統(tǒng)可以分析報告數(shù)據(jù),以調(diào)整與一個或多個進程相關(guān)聯(lián)的數(shù)據(jù),使得進程在執(zhí)行期間優(yōu)先地引用一個或多個存儲器對象。本發(fā)明的實施例提供一種用于通過對多個物理進程執(zhí)行的多個進程正在引用的共享存儲器中的存儲器位置進行存儲器引用采樣,來動態(tài)地優(yōu)化多處理器計算系統(tǒng)中的存儲器存取的裝置、方法和程序產(chǎn)品。在存儲器引用采樣期間收集的多個采樣的存儲器引用的每一個都與共享存儲器中的物理位置和等待時間相關(guān)聯(lián)。然后,對在存儲器引用采樣期間收集的采樣的存儲器引用進行分析,以標識共享存儲器中具有次優(yōu)等待時間的至少一個存儲器位置的段。基于分析,系統(tǒng)調(diào)整共享存儲器中標識的段的物理位置、在其上引用標識的段中的存儲器位置的至少一個進程執(zhí)行的物理處理器、和/或與標識的段相關(guān)聯(lián)的狀態(tài)。在本發(fā)明的一些實施例中,等待時間基于檢索相應(yīng)的存儲器位置的段所需的時間進行評分??梢詼y量該時間,或者可以對其進行近似得到。標識的段或多個段可以基于等待時間得分標識。在本發(fā)明的一些實施例中,標識的段是與高速緩存器頁面相關(guān)聯(lián)的高速緩存器線(cacheline)。該方法可以涉及調(diào)整高速緩存器頁面的至少一部分的位置,使得與將來檢索高速緩存器頁面的一部分相關(guān)聯(lián)的將來等待時間減少。這可以涉及將高速緩存器頁面的一部分從第一高速緩存器傳送到第二高速緩存器,或從第一節(jié)點傳送到第二節(jié)點。高速緩存器頁面還可以包括至少兩個高速緩存器線。在本發(fā)明的另一個實施例中,使用存儲器段標識高速緩存器頁面,因為對象的執(zhí)行位置與該段相關(guān)聯(lián)。調(diào)整對象的位置,使得與對象將來檢索高速緩存器頁面的至少一部分相關(guān)聯(lián)的將來等待時間減少。在一個具體實施例中,對象是計算系統(tǒng)執(zhí)行的進程的至少一部分。本發(fā)明的一些實施例涉及從第一處理單元傳送引用標識的段中的存儲器位置的進程的至少一部分到第二處理單元。其他實施例涉及從第一節(jié)點傳送引用標識的段中的存儲器位置的進程的至少一部分到第二節(jié)點。還有一些包括確定與確定段相關(guān)聯(lián)的第一高速緩存器頁面以及與請求多個存儲器位置的段的存儲器請求的子集相關(guān)聯(lián)的第二高速緩存器頁面,然后為第二高速緩存器頁面分配“增強狀態(tài)”,指示傳送第二高速緩存器頁面比傳送第一高速緩存器頁面要求多至少一個步驟。硬件和軟件環(huán)境轉(zhuǎn)向附圖,更具體地說,其中在所有的幾個視圖中,相同的數(shù)字表示相同的部件。圖1是與本發(fā)明的實施例一致的共享存儲器計算系統(tǒng)10的框圖。在具體實施例中,共享存儲器計算系統(tǒng)10可以是計算機、計算機系統(tǒng)、計算設(shè)備、服務(wù)器、磁盤陣列或可編程設(shè)備,如多用戶計算機、單用戶計算機、手持設(shè)備、聯(lián)網(wǎng)設(shè)備(包括群集配置中的計算機)、移動電話、視頻游戲控制臺(或其他游戲系統(tǒng))等。共享存儲器計算系統(tǒng)10可以稱為“計算系統(tǒng)”,但為了簡便起見將稱為“計算機”。計算機10的一種合適的實現(xiàn)可以是多用戶計算機,如可以從紐約州阿蒙克市的國際商業(yè)機器公司(“IBM”)獲得的計算機。計算機10通常包括耦合到存儲器子系統(tǒng)的一個或多個處理單元12,該存儲器子系統(tǒng)還可以包括高速緩存器子系統(tǒng)14、存儲器15和主存儲裝置16。高速緩存器子系統(tǒng)14可以包括動態(tài)隨機存取存儲器(“DRAM”)、靜態(tài)隨機存取存儲器(“SRAM”)、快閃存儲器和/或另外的數(shù)字或固態(tài)存儲介質(zhì),其典型地包括一級或多級數(shù)據(jù)、指令和/或組合高速緩存器,某些高速緩存器以如本技術(shù)領(lǐng)域中公知的共享方式服務(wù)處理單元12。在具體實施例中,高速緩存器子系統(tǒng)14包括共享存儲器15(例如,諸如三級[“L3”]高速緩存器和/或四級[“L4”]高速緩存器)和/或如本技術(shù)領(lǐng)域中公知的可以在節(jié)點的處理單元12之間共享的其他的數(shù)字存儲存儲器。主存儲裝置16可以包括硬盤驅(qū)動器和/或另外的數(shù)字存儲介質(zhì)。此外,如將在下面討論的,每個處理單元12都可以包括至少一個處理核心和至少一級專用高速緩存存儲器。主存儲裝置16可以經(jīng)由系統(tǒng)總線18和多個接口設(shè)備耦合到多個外部設(shè)備(例如,I/O設(shè)備),接口設(shè)備例如分別提供對一個或多個外部網(wǎng)絡(luò)26、一個或多個工作站28和/或一個或多個存儲設(shè)備(如直接存取存儲設(shè)備(“DASD”)30)的外部存取的輸入/輸出總線連接接口20、工作站控制器22和/或存儲裝置控制器24。系統(tǒng)總線18還可以耦合到可以通過計算機10的用戶操作以輸入數(shù)據(jù)的用戶輸入端(未示出)(例如,用戶輸入端可以包括鼠標、鍵盤等)和可操作用于顯示來自計算機10的數(shù)據(jù)的顯示器(未示出)(例如,顯示器可以是CRT監(jiān)視器、LCD顯示面板等)。計算機10還可以被配置為分布式計算環(huán)境中的成員,并通過網(wǎng)絡(luò)26與該分布式計算環(huán)境中的其他成員通信。計算機10包括至少一個存儲器請求器以請求如本技術(shù)領(lǐng)域中公知的公共高速緩存存儲器(例如,高速緩存器子系統(tǒng)14和/或至少一個處理單元12的高速緩存存儲器)服務(wù)的高速緩存器線。例如,圖1的計算機10可以包括公共高速緩存存儲器服務(wù)的一個或多個處理單元12,而每個處理單元12可以包括公共高速緩存存儲器(例如,高速緩存器子系統(tǒng)14、主存儲裝置16和/或處理單元12內(nèi)部的存儲器)服務(wù)的一個或多個存儲器請求器。在具體實施例中,計算機10中的請求器可以包括至少一個處理單元12、處理單元12的組件(例如,一級高速緩存器、二級高速緩存器、I/O控制器或下面描述的處理單元12的其他組件)和/或處理單元12的核心(以及核心的硬件線程)。計算機10僅僅表示一種供本發(fā)明的實施例使用的適合環(huán)境,本發(fā)明的實施例也可以在各種其他替代性的環(huán)境中使用。例如,圖2是與本發(fā)明的實施例一致的替代性共享存儲器計算系統(tǒng)40的框圖。替代性共享存儲器計算系統(tǒng)40,在下文中稱為“系統(tǒng)”40,可以包括多個處理節(jié)點42,其中每個包括至少一個處理單元12、存儲器44以及網(wǎng)絡(luò)接口46。網(wǎng)絡(luò)接口46可以依次與至少一個網(wǎng)絡(luò)48,50通信,特別是,網(wǎng)絡(luò)接口46可以被配置為與處理節(jié)點42之間的通信專用的至少一個節(jié)點內(nèi)網(wǎng)絡(luò)50通信。每個處理節(jié)點42可以被配置具有操作系統(tǒng)52和應(yīng)用(未示出)。在典型的實施例中,每個處理節(jié)點42都被配置為使用應(yīng)用接收和處理至少一個任務(wù),因此總的來說,處理節(jié)點42被配置為執(zhí)行系統(tǒng)40的大量的工作。然而,在一些實施例中,一些處理節(jié)點42可以被配置為專用I/O節(jié)點,從而維持處理節(jié)點42的子集或“組”與網(wǎng)絡(luò)48、50之間的接口。而且,如本技術(shù)領(lǐng)域中公知的,I/O節(jié)點可以操作用于執(zhí)行進程認證和授權(quán)、任務(wù)計費、調(diào)試、故障排除、引導(dǎo)和配置操作。因此,一組處理節(jié)點42的總體工作可以簡化,并且可以避免與通過處理節(jié)點42的整體和系統(tǒng)40的其余部分接口會出現(xiàn)的每組處理節(jié)點42上的附加負擔。每個處理節(jié)點42可以包括多于一個的處理單元12,并且,在具體實施例中,如本技術(shù)領(lǐng)域中公知的,每個節(jié)點可以包括兩個或四個處理單元12。系統(tǒng)40可以包括一個或多個管理節(jié)點54,可以存儲編譯程序、鏈接程序、加載程序以及與系統(tǒng)40交互的其他程序。在通過至少一個管理節(jié)點54控制的工作站56處的用戶可以存取管理節(jié)點54。因此,用戶可以提交用于編譯的一個或多個程序、用于執(zhí)行的任務(wù)、執(zhí)行上下文、工作負荷、工作負荷的部分或作業(yè)給系統(tǒng)40的一個或多個服務(wù)節(jié)點58。管理節(jié)點54中的每一個可以以與處理節(jié)點42的方式類似的方式包括至少一個處理單元和存儲器,以執(zhí)行出于效率或其他的原因可能最好在處理節(jié)點42或服務(wù)節(jié)點58外部執(zhí)行的輔助功能。例如,交互式數(shù)據(jù)輸入、軟件代碼編輯、軟件代碼編譯和/或其他用戶接口功能都可以通過管理節(jié)點54處理。服務(wù)節(jié)點58可以包括系統(tǒng)40的數(shù)據(jù)庫和管理工具。數(shù)據(jù)庫可以維護處理節(jié)點42的狀態(tài)信息,包括跨處理節(jié)點42的任務(wù)的當前調(diào)度,而管理工具可以控制程序、任務(wù)、數(shù)據(jù)和作業(yè)的調(diào)度和加載到處理節(jié)點42上,包括加載程序、任務(wù)、數(shù)據(jù)和作業(yè)到每個處理節(jié)點42的每個處理單元12上。因此,在一些實施例中,服務(wù)節(jié)點58可以從多個處理節(jié)點42收集一組處理節(jié)點12,并派遣至少一個任務(wù)、作業(yè)、應(yīng)用、工作負荷的一部分、執(zhí)行上下文或程序給這組計算節(jié)點12用于執(zhí)行。在下文中,為簡便起見,該至少一個任務(wù)、作業(yè)、工作負荷、工作負荷的一部分、執(zhí)行上下文或程序稱為“任務(wù)”。任務(wù)可以通過網(wǎng)絡(luò)48和/或50,并通過I/O節(jié)點通信到處理節(jié)點42以進行處理。在可操作用于接收、管理、調(diào)度、重新分配和以其他處理節(jié)點42的控制作業(yè)的控制子系統(tǒng)中,可以組合管理節(jié)點54和/或服務(wù)節(jié)點58的功能。管理節(jié)點54和/或服務(wù)節(jié)點58中的每一個可以包括一組處理節(jié)點42和至少一個I/O節(jié)點。以這種方式,管理節(jié)點54和/或服務(wù)節(jié)點58通過節(jié)點內(nèi)網(wǎng)絡(luò)50以及網(wǎng)絡(luò)48可以內(nèi)部連接到處理節(jié)點42。替代性地,管理節(jié)點54和/或服務(wù)節(jié)點58中的每一個可以包括一組處理節(jié)點42和與處理節(jié)點42分離的至少一個I/O節(jié)點(即,管理節(jié)點54和/或服務(wù)節(jié)點58可以被配置為“獨立”節(jié)點)。此外,管理節(jié)點54和/或服務(wù)節(jié)點58中的每一個可以包括一個處理節(jié)點42。一個或多個外部資源服務(wù)器60可以是可以通過網(wǎng)絡(luò)48可訪問的服務(wù)器,并可以被配置為各種數(shù)據(jù)存儲設(shè)備,例如,硬盤驅(qū)動器61、光盤驅(qū)動器(例如,CD-ROM驅(qū)動器、CDR/RW驅(qū)動器、DVD+/-R/RW驅(qū)動器、藍光驅(qū)動器、全息存儲驅(qū)動器等)、固態(tài)存儲驅(qū)動器、或可以存取數(shù)據(jù)和/或處理任務(wù)的其他I/O設(shè)備、資源或組件,提供接口。以與計算機10類似的方式,每個處理節(jié)點42的存儲器44可以包括高速緩存器子系統(tǒng),其包括DRAM、SRAM、閃速存儲器和/或其他的數(shù)字或固態(tài)存儲介質(zhì)。此外,每個處理節(jié)點42的存儲器44可以進一步包括主存儲裝置,其包括硬盤驅(qū)動器和/或其他的數(shù)字存儲介質(zhì)。同樣類似地,高速緩存器子系統(tǒng)可以包括一級或多級數(shù)據(jù)、指令和/或組合高速緩存器,特定的高速緩存器以如本技術(shù)領(lǐng)域中公知的共享方式服務(wù)處理單元12。如本技術(shù)領(lǐng)域中公知的,是否被配置為處理節(jié)點42、I/O節(jié)點、管理節(jié)點54或服務(wù)節(jié)點58的節(jié)點是系統(tǒng)40的一部分,系統(tǒng)40包括對高速緩存器線的一個或多個請求器,并由公共高速緩存存儲器(例如,存儲器44或節(jié)點42的至少一個處理單元12內(nèi)部的高速緩存存儲器)服務(wù)。在具體實施例中,系統(tǒng)40中的請求器可以包括處理節(jié)點42(在下文中,“節(jié)點”42)、節(jié)點的存儲器44、至少一個處理單元12、處理單元12的組件(例如,如下文公開的高速緩存器和/或I/O控制器)和/或處理單元12的核心(以及核心的硬件線程)。在具體實施例中,每一個節(jié)點42都可以被配置成處理工作負荷和/或一個或多個任務(wù),并通過相應(yīng)的網(wǎng)絡(luò)接口46與其他節(jié)點42合作來以并行方式處理工作負荷和/或一個或多個任務(wù),如本技術(shù)領(lǐng)域中公知的。盡管圖2中示出了一個網(wǎng)絡(luò)接口46,但每個節(jié)點42可以包括多個網(wǎng)絡(luò)接口46或其他的網(wǎng)絡(luò)連接。因此,每個節(jié)點42可以被配置為通過各種網(wǎng)絡(luò),包括節(jié)點內(nèi)網(wǎng)絡(luò)50與系統(tǒng)40或其他節(jié)點42通信。例如,每個節(jié)點42都可以通過環(huán)面(torus)網(wǎng)絡(luò)與每個其他的節(jié)點42通信。此外,各個節(jié)點42可以被自定義配置為執(zhí)行各種功能。例如,系統(tǒng)40的一些節(jié)點42可以被配置為計算節(jié)點(例如,以接收工作負荷和/或至少一個任務(wù)并且處理該工作負荷和/或至少一個任務(wù))、I/O節(jié)點(例如,管理到和/或從每個計算節(jié)點和系統(tǒng)40的其余部分的通信)、管理節(jié)點(例如,管理系統(tǒng)40和接收工作負荷和/或至少一個任務(wù))和/或服務(wù)節(jié)點(例如,監(jiān)視系統(tǒng)40、調(diào)度工作負荷和/或支持節(jié)點42)。因此,在一些實施例中,系統(tǒng)40可以具有與如IBM發(fā)布的電力系統(tǒng)共享計算系統(tǒng)一致的架構(gòu)。在替代性實施例中,系統(tǒng)40可以具有與由IBM開發(fā)的BlueGene并行計算系統(tǒng)架構(gòu)一致的架構(gòu)。在替代性實施例中,系統(tǒng)40可以具有與也由IBM開發(fā)的RoadRunner并行計算系統(tǒng)架構(gòu)一致的架構(gòu)。此外,在其他的替代性實施例中,系統(tǒng)40可以具有與本技術(shù)領(lǐng)域中公知的非均勻存儲器存取(“NUMA”)和/或高速緩存器一致性NUMA(“ccNUMA”)計算系統(tǒng)一致的架構(gòu)。節(jié)點可以在多級共享存儲器架構(gòu)中在多個不同級別上定義,并且在一些實施例中,不需要基于任何特定的物理分配或劃分來區(qū)分彼此。事實上,在一些實施例中,多個節(jié)點可以在物理上布置在相同的計算機上,相同的卡上或甚至在相同的集成電路上。如圖1和圖2所示,計算機10和每個節(jié)點42都可以包括一個或多個處理單元12。在操作期間,組織成高速緩存器線的各種指令和/或數(shù)據(jù)可以用于處理任務(wù)。在一些實施例中,高速緩存器線是在計算機10和/或系統(tǒng)40的存儲區(qū)域的數(shù)據(jù)的部分。在共享存儲器計算系統(tǒng)(例如,計算機10和/或系統(tǒng)40)中,高速緩存器線中的共享數(shù)據(jù),以及因此通過擴展,高速緩存器線本身可以通過同步操作讀取、修改和/或釋放,同步操作包括鎖定高速緩存器線中的數(shù)據(jù)以更新這些數(shù)據(jù)的同步操作,以及原子更新高速緩存器線中的數(shù)據(jù)的同步操作(為了簡便起見,除非另外指明,將理解的是,在本主題公開中提及“高速緩存器線”可以指高速緩存器線數(shù)據(jù)的全部或僅僅子集)。在具體實施例中,通過將高速緩存器線的鎖定變量設(shè)定為設(shè)定值來鎖定高速緩存器線。當與該高速緩存器線相關(guān)聯(lián)的關(guān)鍵部分完成時,該高速緩存器線的鎖定變量恢復(fù)到其原始狀態(tài)(例如,清理值),其他的請求器可以競爭獲得該高速緩存器線上的鎖定。因此,在特定的實施例中,獲得操作和釋放操作是成對的,以在執(zhí)行的關(guān)鍵部分期間分別至少鎖定和解鎖高速緩存器線。此外,在一些實施例中,系統(tǒng)可以包括進行采樣的剖繪器(profiler)。如圖2所示,服務(wù)節(jié)點58可以包括一個或多個處理單元12和存儲器44,其中服務(wù)節(jié)點58的存儲器44可以包括存儲于其上的、與本發(fā)明的一些實施例一致的、與剖繪器62相關(guān)的程序代碼。根據(jù)本發(fā)明的調(diào)整器可以與現(xiàn)有的采樣剖繪器結(jié)合操作以進行存儲器引用采樣,提供足夠的數(shù)據(jù)來標識高等待時間存儲器引用。例如,參考圖2,服務(wù)節(jié)點58可以包括存儲于其上的、與本發(fā)明的一些實施例一致的、與調(diào)整器63相關(guān)的程序代碼。因此,在一些實施例中,服務(wù)節(jié)點58的一個或多個處理單元12可以執(zhí)行剖繪器62和/或調(diào)整器63,使得服務(wù)節(jié)點58的處理單元執(zhí)行與本發(fā)明的實施例一致的步驟。雖然在圖2中,剖繪器62和調(diào)整器63示出為包括可以由處理單元12執(zhí)行以進行與本發(fā)明的實施例一致的步驟的操作的程序代碼,但本發(fā)明并不限于此。例如,在一些實施例中,剖繪器62和/或調(diào)整器可以包括被配置為執(zhí)行與本發(fā)明的實施例一致的步驟的一個或多個專用處理器,其中專用處理器可以與服務(wù)節(jié)點58相關(guān)聯(lián)和/或可以與連接到網(wǎng)絡(luò)48的一個或多個設(shè)備(包括例如管理節(jié)點54、外部資源60、處理節(jié)點42和/或工作站56)相關(guān)聯(lián)。調(diào)整器可以進行如圖3的流程圖所示的分析和系統(tǒng)調(diào)整處理。存儲器引用采樣(塊102)可以根據(jù)存儲器剖繪器進行。例如,IBM的POWER架構(gòu)包括作為低開銷診斷的存儲器引用采樣。關(guān)于多節(jié)點系統(tǒng)40,剖繪器和調(diào)整器可以在如上面所述的服務(wù)節(jié)點58上運行。每個引用采樣包括有關(guān)引用的存儲器和調(diào)用該引用的進程的信息。這些信息可以包括與該引用相關(guān)聯(lián)的高速緩存器頁面的存儲器關(guān)聯(lián)性數(shù)據(jù)、引用的存儲器段的物理位置以及與引用進程相關(guān)聯(lián)的處理單元和節(jié)點??梢詾槊總€存儲器引用分配表示與引用相關(guān)聯(lián)的等待時間的得分(塊104)。用于為等待時間評分的方法是本技術(shù)領(lǐng)域中公知的。高等待時間可能的貢獻因素包括存取鎖定的存儲器時的延遲而產(chǎn)生的關(guān)鍵部分沖突、當在最快的高速緩存器中未找到數(shù)據(jù)時的高速緩存器未命中(miss)、以及其中數(shù)據(jù)位于與遠離引用進程的處理器或節(jié)點相關(guān)聯(lián)的存儲區(qū)域中的非本地存儲器調(diào)用。每個存儲器引用的等待時間得分可以代表計算的或近似出的等待時間。關(guān)聯(lián)性調(diào)整器用來處理當引用被標識為具有高等待時間時的問題(塊106)。每個得分在生成時都可以被立即與閾值對比評估來標識高等待時間.的引用;替代性地,可以在采樣期間每隔一段時間搜索并標識高等待時間引用。標識的得分可以反映單個采樣得分,或者可以反映多個采樣的分析。例如,可以標識具有最高得分的單個采樣。替代性地,分析采樣可以返回在若干引用上具有較高的平均值或中值等待時間的存儲器段,例如高速緩存器線或高速緩存器頁面。在另一實施例中,可以設(shè)定頻率閾值,使得僅相同存儲器段的特定絕對數(shù)量的高等待時間采樣,或替代性地涉及該段的高等待時間采樣與總采樣的特定比率,可以導(dǎo)致標識涉及給定存儲器段的引用。本領(lǐng)域的普通的技術(shù)人員將理解的是,通過降低等待時間來提高系統(tǒng)效率要求統(tǒng)計方法,因為偶爾的高等待時間引用通常是不可避免的,并不會顯著影響系統(tǒng)性能。此外,本文描述以及下面進一步解釋的調(diào)整如果以過小的判斷執(zhí)行則調(diào)整本身可能是對性能的消耗。然而,當高等待時間引用的模式在出現(xiàn)時可以通過如上所述的存儲器引用采樣處理定位,調(diào)整可以降低等待時間。因此,在評估高等待時間引用時,下面的描述假定已經(jīng)發(fā)生足夠多的存儲器引用采樣,以便術(shù)語“頻繁”和“重現(xiàn)”具有有意義的內(nèi)涵。然而,本領(lǐng)域的普通技術(shù)人員將認識的是,本文中概述的步驟即使使用非常稀疏的采樣也可以在多處理器計算系統(tǒng)中執(zhí)行,但具有更大的錯誤概率。一旦標識高等待時間引用,就在相關(guān)聯(lián)的存儲器段上進行附加的分析,以確定合適的調(diào)整。在一個實施例中,相關(guān)聯(lián)的存儲器段被認為是與引用的高速緩存器線相關(guān)聯(lián)的高速緩存器頁面。替代性地,存儲器段可以只是高速緩存器線本身。調(diào)整器與引用進程的位置一起評估存儲器段的關(guān)聯(lián)性,以確定引用進程是本地的還是非本地的(塊108)。本地對非本地引用(即引用進程)的定義可以對給定的系統(tǒng)定義;其中存儲器高速緩存器對節(jié)點是特定的,本地引用可以是進程和存儲器段位于相同節(jié)點上的引用。具有等待時間的其他的多處理器系統(tǒng),作為處理器和存儲器高速緩存器之間相對位置的因素,可以具有“本地的”或“遠離的”的其他定義。如果引用是非本地的(判定塊108的“是”分支),那么調(diào)整存儲器段的位置,使得標識進程對標識段的引用是本地引用是適當?shù)?。然而,在資源共享的情況下,調(diào)整存儲器的關(guān)聯(lián)性可能不會降低總的系統(tǒng)等待時間。例如,如果采樣顯示與不同節(jié)點上運行的兩個進程相關(guān)聯(lián)的頻繁的存儲器引用,那么重新定位與該引用相關(guān)聯(lián)的存儲器段可以以增加關(guān)于引用相同段的其他進程的等待時間的不可接受代價通過一個進程減少關(guān)于引用的等待時間。在此情況下,托管與相同的節(jié)點相關(guān)聯(lián)的處理器上的不同的進程可以減少等待時間。因此,當兩個或更多進程都與相同的存儲器段嚴重相關(guān)聯(lián)時,將這些進程彼此接近放置以及接近存儲器段放置可以充分解決標識的等待時間問題。這通過評估了解遠離的進程是否經(jīng)常存取標識的存儲器段來表示(塊110)。如果標識具有高等待時間非本地存儲器引用的進程不與其他遠程進程顯著共享存儲器(判定塊110的“否”分支),那么存儲器段與標識的進程關(guān)聯(lián)(塊112)。這可能涉及傳輸存儲器段、以及其他相關(guān)聯(lián)的存儲器段(如果合適)到被視為對標識的進程在其上運行的處理器來說是本地的高速緩存器。如果合適,與標識的存儲器段相關(guān)聯(lián)的高速緩存器頁面可以傳輸?shù)竭M程運行的節(jié)點中的本地高速緩存器中。如上面所指出的,本地的其他定義可以提示如關(guān)于不同系統(tǒng)架構(gòu)理解的其他種類的關(guān)聯(lián)性調(diào)整。如果除了標識具有高等待時間非本地存儲器引用的進程以外的一個或多個進程也代表標識的存儲器段的顯著流量(判定塊110的“是”分支),那么傳輸一個或多個進程(塊114)而不是傳輸存儲器段可能是合適的。通過將與長等待時間時間相關(guān)聯(lián)的進程合并(consolidate)到相同節(jié)點上或以另外地接近的節(jié)點,由于這些進程引用相同的存儲器段,因此可以減少等待時間。傳輸進程可能需要改變與進程緊密連接的其他存儲器段的關(guān)聯(lián)性,以使得這些相關(guān)段也被重新定位。普通技術(shù)人員將理解的是,系統(tǒng)將一個或多個進程重新定位到處理器上以對接近的處理器分組的代價是可量化的。在一個實施例中,預(yù)計的等待時間減少可能在重新定位進程之前根據(jù)計算的傳輸成本衡量(塊114)。不同的調(diào)整可以解決標識的引用是本地的情形中的高等待時間(判定塊108分支“否”)??梢酝ㄟ^使得一個進程比其他的顯著優(yōu)先存取共享資源來減少總等待時間(塊116)。例如,資源之間的正常保管協(xié)商(normalcustodynegotiation)使用如上面所述的典型的“鎖定”和“共享”狀態(tài),使得對存儲器段的最早引用得到尊重,并改變段的狀態(tài)以反映該進程。然而,當采樣表示這樣做是低效的時候,可以引入更多的狀態(tài),使得在實現(xiàn)時要求附加的步驟用于另一個處理器傳輸和鎖定資源。流程圖4展示了與可以包括增強狀態(tài)的存儲器引用相關(guān)聯(lián)的一組步驟。如圖所示,當進程引用如高速緩存器線的存儲器段(塊202)時,高速緩存器線的狀態(tài)確定引用使用其的能力(判定塊204)。如果高速緩存器線顯示為“鎖定”(判定塊204的“鎖定”分支),那么引用被放置在等待引用解鎖的隊列中(塊206)。如果高速緩存器線顯示為“共享”(判定塊204的“共享”分支),并且存儲器引用限制為讀取數(shù)據(jù)并因此不需要鎖定(判定塊208的“否”分支),那么可以制作數(shù)據(jù)的副本,并將其本地存儲為“共享”狀態(tài)的高速緩存器線的另一個副本(塊212)。另一方面,如果要求寫存取以及因此要求鎖定數(shù)據(jù)(判定塊208的“是”分支),那么引用必須進入隊列并等待“清理”狀態(tài)(塊210)。如果高速緩存器線顯示為清理(判定塊204的“清理”分支),那么通常可以復(fù)制和“共享”(判定塊214的“否”分支,塊216)或傳輸和“鎖定”這些數(shù)據(jù),而不需要額外的評估。然而,如果一致性協(xié)議允許根據(jù)本發(fā)明的一個實施例的增強狀態(tài),那么在可以發(fā)生數(shù)據(jù)傳輸之前至少一個附加步驟是必需的。如圖所示,系統(tǒng)檢查了解高速緩存器線是否具有增強狀態(tài)。如果沒有(判定塊218的“否”分支),那么傳輸資源并將其鎖定為正常。如果高速緩存器線確實具有增強狀態(tài)(判定塊218的“是”分支),那么狀態(tài)與一個或多個進程相關(guān)聯(lián)。關(guān)于這些進程中的每一個進行查詢,以保證可以傳輸存儲器段。例如,如果這些進程中的任何也與和存儲器段相關(guān)的排隊引用相關(guān)聯(lián),那么查詢可以拒絕鎖定資源的請求(判定塊220的“拒絕”分支),強迫引用重新排隊(塊206)。替代性地,如果每個被查詢的進程不再需要存取存儲器段,那么查詢可以允許請求傳輸和鎖定資源。這種增強狀態(tài)可以允許一個或多個進程跳轉(zhuǎn)到用于它們對其具有特權(quán)的存儲器段的任何隊列的頂部,或者可以允許在其執(zhí)行關(guān)鍵部分期間本質(zhì)上是“軟性鎖定”的操作。根據(jù)不同的多處理器計算系統(tǒng),增加至少一個附加步驟到傳輸和鎖定具有增強狀態(tài)的存儲器段的進程中的任何類似的過程都可以被實現(xiàn)。其他的修改對本技術(shù)領(lǐng)域的普通技術(shù)人員來說是顯而易見的。因此,本發(fā)明在于下文所附的權(quán)利要求。