两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

改進(jìn)多處理器計(jì)算機(jī)系統(tǒng)的性能的制作方法

文檔序號(hào):6375671閱讀:259來(lái)源:國(guó)知局
專利名稱:改進(jìn)多處理器計(jì)算機(jī)系統(tǒng)的性能的制作方法
改進(jìn)多處理器計(jì)算機(jī)系統(tǒng)的性能
背景技術(shù)
一些計(jì)算機(jī)系統(tǒng)采用多個(gè)處理器。這些處理器例如可以被用來(lái)處理通過(guò)網(wǎng)絡(luò)接收自遠(yuǎn)程計(jì)算機(jī)的信息。通常來(lái)說(shuō),在計(jì)算機(jī)處由一個(gè)或更多網(wǎng)絡(luò)接口控制器(NIC)接收到信息,所述網(wǎng)絡(luò)接口控制器接收根據(jù)規(guī)定的網(wǎng)絡(luò)通信協(xié)議(例如TCP或傳輸控制協(xié)議)發(fā)送的信息。所接收到的信息例如可以包括針對(duì)施行與聯(lián)網(wǎng)有關(guān)的操作的請(qǐng)求,所述與聯(lián)網(wǎng)有關(guān)的操作可以被分配在多個(gè)處理器上來(lái)執(zhí)行。通過(guò)允許多個(gè)處理器同時(shí)施行與聯(lián)網(wǎng)有關(guān)的操作可以改進(jìn)計(jì)算機(jī)的性能。采用多個(gè)處理器來(lái)施行與聯(lián)網(wǎng)有關(guān)的操作的一種已知的體系結(jié)構(gòu)是“對(duì)稱多處理器”(SMP)系統(tǒng)體系結(jié)構(gòu)。
在SMP系統(tǒng)上處理通過(guò)網(wǎng)絡(luò)接收到的信息的一種傳統(tǒng)技術(shù)中,計(jì)算機(jī)上的NIC接收數(shù)據(jù)分組并且將其與分組描述符一起存儲(chǔ)在存儲(chǔ)器中,所述分組描述符包括標(biāo)識(shí)出所述數(shù)據(jù)在存儲(chǔ)器中的位置的指針信息。如果當(dāng)前沒(méi)有在處理某一先前分組,則生成去到其中一個(gè)處理器的中斷并且中斷服務(wù)例程(ISR)執(zhí)行,從而暫停來(lái)自NIC的另外的中斷,同時(shí)請(qǐng)求延遲規(guī)程調(diào)用(DPC)運(yùn)行在被選擇來(lái)應(yīng)對(duì)所述分組的處理器上。在DPC執(zhí)行時(shí),從存儲(chǔ)器獲取一個(gè)或更多數(shù)據(jù)分組和描述符以建立陣列,并且所述處理器隨后發(fā)起對(duì)分組的處理。在DPC完成之后,重新允許來(lái)自NIC的另外的中斷,從而可以將附加的分組分配到一個(gè)或更多其他處理器。在一些傳統(tǒng)的多處理器體系結(jié)構(gòu)中,一個(gè)或更多處理器可以具有相關(guān)聯(lián)的存儲(chǔ)器。舉例來(lái)說(shuō),在非均勻存儲(chǔ)器存取(NUMA)系統(tǒng)中,一個(gè)或更多處理器可以包括NUMA節(jié)點(diǎn),所述NUMA節(jié)點(diǎn)具有由該NUMA節(jié)點(diǎn)內(nèi)的處理器最為高效地存取的相關(guān)聯(lián)的存儲(chǔ)器地址集合。在這方面,系統(tǒng)上的特定NUMA節(jié)點(diǎn)可以被視為“最接近”與該節(jié)點(diǎn)相關(guān)聯(lián)的存儲(chǔ)器地址集合,并且“遠(yuǎn)離”分別與系統(tǒng)上的其他NUMA節(jié)點(diǎn)相關(guān)聯(lián)的其他存儲(chǔ)器地址集合。在啟用了 NUMA的系統(tǒng)中,第一 NUMA節(jié)點(diǎn)對(duì)與第二 NUMA節(jié)點(diǎn)相關(guān)聯(lián)的存儲(chǔ)器地址的存取慢于第二 NUMA節(jié)點(diǎn)所將進(jìn)行的存取。

發(fā)明內(nèi)容
本發(fā)明的一些實(shí)施例提供了用于改進(jìn)多處理器計(jì)算機(jī)系統(tǒng)的性能和/或可擴(kuò)展性的方法和設(shè)備,比如采用NUMA和/或其他系統(tǒng)體系結(jié)構(gòu)的多處理器計(jì)算機(jī)系統(tǒng)。舉例來(lái)說(shuō),本發(fā)明的一些實(shí)施例提供了用于配置系統(tǒng)的工具和/或技術(shù),從而可以把與通過(guò)網(wǎng)絡(luò)接收到的信息(例如分組和/或其他通信量)相關(guān)聯(lián)的處理任務(wù)分配在系統(tǒng)上的多個(gè)處理器當(dāng)中,從而可以高效地施行所述任務(wù)。舉例來(lái)說(shuō),在本發(fā)明的一些實(shí)施例中,可以將多個(gè)配置選項(xiàng)(其例如被實(shí)施為“簡(jiǎn)檔”集合)呈現(xiàn)給用戶(例如系統(tǒng)管理員)以供選擇,其中每一個(gè)配置選項(xiàng)與處理通過(guò)網(wǎng)絡(luò)接收到的信息的一種特定模式相關(guān)聯(lián)。在這方面,本發(fā)明的發(fā)明人認(rèn)識(shí)到,可能不存在單一的一種配置方案對(duì)于每一種類型的系統(tǒng)都是適當(dāng)且最優(yōu)的。因此,本發(fā)明的一些實(shí)施例提供了多個(gè)配置選項(xiàng),從而用戶可以選擇利用特定系統(tǒng)的特性和/或能力的一個(gè)或更多配置選項(xiàng)。在這里所描述的一個(gè)示例性配置選項(xiàng)中,可以將特定處理器與系統(tǒng)上的特定NIC聯(lián)合,從而使得與特定NIC聯(lián)合的(多個(gè))處理器施行與該NIC通過(guò)網(wǎng)絡(luò)接收到的信息相關(guān)聯(lián)的與聯(lián)網(wǎng)有關(guān)的操作。可以通過(guò)許多方式將處理器與NIC聯(lián)合。舉例來(lái)說(shuō),在下面描述的一種技術(shù)中,可以通過(guò)把由NIC生成的ISR和DPC的執(zhí)行指派給處理器來(lái)將處理器與NIC聯(lián)合。當(dāng)然,任何適當(dāng)?shù)臉?biāo)準(zhǔn)都可以定義處理器與NIC的聯(lián)合,因?yàn)楸景l(fā)明的實(shí)施例不限于任何具體的實(shí)現(xiàn)方式。一個(gè)示例性配置選項(xiàng)可以允許用戶指明處理器與NIC的初始聯(lián)合是否使得一個(gè)或更多處理器由于與聯(lián)網(wǎng)有關(guān)的任務(wù)數(shù)量不成比例而負(fù)荷過(guò)重并且同時(shí)其他處理器的利用率不足,可以將各項(xiàng)任務(wù)動(dòng)態(tài)地重新分配到系統(tǒng)上的其他處理器以便實(shí)現(xiàn)總體處理負(fù)荷的更加均勻的分配。其結(jié)果是,系統(tǒng)可以更加高效地施行與聯(lián)網(wǎng)有關(guān)的任務(wù)。 在本發(fā)明的一些實(shí)施例中,對(duì)于多處理器系統(tǒng)的配置可以考慮到所述系統(tǒng)所采用的體系結(jié)構(gòu)的特性。舉例來(lái)說(shuō),與NUMA系統(tǒng)一起使用的本發(fā)明的實(shí)施例可以使得將處理任務(wù)分配在系統(tǒng)上的各個(gè)NUMA節(jié)點(diǎn)當(dāng)中。如果希望對(duì)處理任務(wù)進(jìn)行后續(xù)的重新分配,則在施行重新分配時(shí)可以使得被指派給一個(gè)NUMA節(jié)點(diǎn)的處理器不會(huì)嘗試存取與另一個(gè)NUMA節(jié)點(diǎn)相關(guān)聯(lián)的存儲(chǔ)器地址,因?yàn)檫@樣會(huì)顯著降低系統(tǒng)性能。本發(fā)明的一些實(shí)施例可以提供被設(shè)計(jì)成有益于NUMA系統(tǒng)的其他特征。舉例來(lái)說(shuō),本發(fā)明的一些實(shí)施例可以允許執(zhí)行在NUMA系統(tǒng)上的應(yīng)用決定在其上施行對(duì)應(yīng)于所述應(yīng)用的與聯(lián)網(wǎng)有關(guān)的處理的NUMA節(jié)點(diǎn),從而所述應(yīng)用可以在所述相同的NUMA節(jié)點(diǎn)上執(zhí)行。其結(jié)果是,可以防止嘗試存取與另一個(gè)NUMA節(jié)點(diǎn)相關(guān)聯(lián)的存儲(chǔ)器地址。前述內(nèi)容是本發(fā)明的非限制性概要,其由所附權(quán)利要求書(shū)限定。


附圖不意圖是按比例繪制的。在附圖中,在各圖中示出的每一個(gè)完全相同或接近完全相同的組件由相同的附圖標(biāo)記表示。為了清楚起見(jiàn),在每一幅圖中可能沒(méi)有標(biāo)記出每一個(gè)組件。在附圖中
圖I是描繪出可以在其中實(shí)施本發(fā)明的實(shí)施例的系統(tǒng)的一些示例性組件的方框 圖2是描繪出根據(jù)本發(fā)明的一些實(shí)施例的用于將一個(gè)或更多處理器與一個(gè)或更多網(wǎng)絡(luò)接口控制器(NIC)聯(lián)合的示例性處理的流程 圖3是描繪出根據(jù)本發(fā)明的一些實(shí)施例的用于將處理器與NIC聯(lián)合的示例性技術(shù)的方框 圖4是描繪出根據(jù)本發(fā)明的一些實(shí)施例的用于將處理器與NIC聯(lián)合的示例性技術(shù)的方框 圖5是描繪出根據(jù)本發(fā)明的一些實(shí)施例的用于將一個(gè)或更多NUMA節(jié)點(diǎn)內(nèi)的處理器與NIC聯(lián)合的示例性技術(shù)的方框 圖6是描繪出根據(jù)本發(fā)明的一些實(shí)施例的用于重新分配與通過(guò)網(wǎng)絡(luò)接收到的信息相關(guān)聯(lián)的處理任務(wù)的示例性處理的流程 圖7是描繪出根據(jù)本發(fā)明的一些實(shí)施例的用于定位將要為之重新分配處理任務(wù)的處理器的示例性處理的流程 圖8是描繪出根據(jù)本發(fā)明的一些實(shí)施例的NIC可以借以獲取新處理器以便應(yīng)對(duì)處理任務(wù)的示例性處理的流程圖;圖9是描繪出根據(jù)本發(fā)明的一些實(shí)施例的用于確定代表將從一個(gè)處理器重新分配到另一個(gè)的處理任務(wù)的一個(gè)或更多分區(qū)的示例性處理的流程 圖10是描繪出根據(jù)本發(fā)明的一些實(shí)施例的用于向應(yīng)用標(biāo)識(shí)出應(yīng)對(duì)連接的節(jié)點(diǎn)的示例性處理的流程 圖11是適于為用戶給出 各種配置選項(xiàng)以供選擇的示例性用戶接口的圖示;以及 圖12是描繪出可以被用來(lái)實(shí)施本發(fā)明的實(shí)施例的各個(gè)方面的示例性計(jì)算機(jī)的方框圖。
具體實(shí)施例方式本發(fā)明的一些實(shí)施例可以改進(jìn)多處理器計(jì)算機(jī)系統(tǒng)在處理通過(guò)網(wǎng)絡(luò)接收到的信息時(shí)的性能。舉例來(lái)說(shuō),本發(fā)明的一些實(shí)施例可以允許對(duì)系統(tǒng)進(jìn)行配置,從而可以把通過(guò)網(wǎng)絡(luò)接收到的信息分配在多個(gè)處理器當(dāng)中以進(jìn)行高效的處理。用戶(例如系統(tǒng)管理員)可以從多個(gè)配置選項(xiàng)當(dāng)中進(jìn)行選擇,其中每一個(gè)配置選項(xiàng)可以總體上被視為“策略”或簡(jiǎn)檔,其定義一種處理通過(guò)網(wǎng)絡(luò)接收到的信息的模式。通過(guò)選擇一個(gè)或更多配置選項(xiàng),用戶可以指明如何處理通過(guò)網(wǎng)絡(luò)接收到的信息,以便利用系統(tǒng)的特性。舉例來(lái)說(shuō),在一些實(shí)施例中,多處理器系統(tǒng)可以被配置成使得系統(tǒng)上的特定處理器與特定NIC聯(lián)合,從而與NIC聯(lián)合的每一個(gè)處理器施行與由該NIC接收到的信息相關(guān)聯(lián)的與聯(lián)網(wǎng)有關(guān)的操作。舉例來(lái)說(shuō),在一些實(shí)施例中,與NIC聯(lián)合的處理器可以處理由該NIC生成的ISR和DPC(或者任何其他適當(dāng)?shù)?多個(gè))操作類型),而不處理由系統(tǒng)上的任何其他NIC生成的操作。在本發(fā)明的一些實(shí)施例中,如果處理器與NIC的初始聯(lián)合使得一個(gè)或更多處理器變得負(fù)荷過(guò)重并且同時(shí)其他處理器的利用率不足,則可以動(dòng)態(tài)地重新分配處理任務(wù),以便獲得總體處理負(fù)荷在系統(tǒng)上的各個(gè)處理器之間的更加均勻的分配。其結(jié)果是,系統(tǒng)可以高效地利用可由其支配的處理資源來(lái)施行與聯(lián)網(wǎng)有關(guān)的操作。本發(fā)明的一些實(shí)施例對(duì)于采用NUMA體系結(jié)構(gòu)的系統(tǒng)提供了特別的好處。舉例來(lái)說(shuō),一些實(shí)施例可以允許把與聯(lián)網(wǎng)有關(guān)的任務(wù)分配在各個(gè)處理器上,從而利用多個(gè)NUMA節(jié)點(diǎn)。如果隨后施行對(duì)于處理任務(wù)的重新分配,則在施行重新分配時(shí)可以使得被指派給一個(gè)NUMA節(jié)點(diǎn)的處理器不會(huì)嘗試存取與另一個(gè)NUMA節(jié)點(diǎn)相關(guān)聯(lián)的存儲(chǔ)器地址,正如下面將描述的那樣。圖I中在概念上描繪出可以在其上實(shí)施本發(fā)明的實(shí)施例的示例性多處理器系統(tǒng)200。系統(tǒng)200包括處理器205a — 205m、操作系統(tǒng)210以及NIC 215、220和225。在系統(tǒng)200中,每一個(gè)NIC 215、220和225從網(wǎng)絡(luò)230接收信息,并且與操作系統(tǒng)210進(jìn)行通信以便把對(duì)于所述信息的處理分配到特定的處理器205a - 205m。在圖2中示出了可以被施行來(lái)對(duì)系統(tǒng)200進(jìn)行配置以便施行與聯(lián)網(wǎng)有關(guān)的任務(wù)的示例性處理100。在高級(jí)別下,處理100涉及將系統(tǒng)200中的一個(gè)或更多處理器205a —205m與一個(gè)或更多NIC 215,220和225聯(lián)合,從而使得由相關(guān)聯(lián)的(多個(gè))處理器對(duì)由特定NIC接收到的信息施行處理,并且隨后在一個(gè)或更多處理器變得負(fù)荷過(guò)重并且同時(shí)其他處理器的利用率不足的情況下重新分配(例如基于運(yùn)行時(shí)間的條件動(dòng)態(tài)地重新分配)處理任務(wù)。作為一個(gè)例子,可以在系統(tǒng)200的用戶(例如管理員)提供輸入以便選擇(比如從操作系統(tǒng)210所呈現(xiàn)的一個(gè)集合當(dāng)中進(jìn)行選擇)針對(duì)系統(tǒng)200的一個(gè)或更多配置選項(xiàng)時(shí)施行處理100。例如可以通過(guò)用戶接口為用戶呈現(xiàn)配置選項(xiàng),但是本發(fā)明的實(shí)施例不限于這樣的實(shí)現(xiàn)方式。舉例來(lái)說(shuō),用戶可以執(zhí)行一個(gè)或更多已編程例程來(lái)施行處理100,或者可以采用任何其他適當(dāng)?shù)募夹g(shù)。在處理100開(kāi)始時(shí),在步驟105中將一個(gè)或更多處理器與系統(tǒng)中的一個(gè)或更多NIC聯(lián)合。圖3提供了特定處理器205a - 205m與特定NIC 215,220和225的聯(lián)合的概念性表示。例如可以在操作系統(tǒng)210所施行的啟動(dòng)處理期間隨著NIC 215,220和225變?yōu)閷?duì)其可見(jiàn)并可用而施行聯(lián)合。操作系統(tǒng)210例如可以確定每一個(gè)NIC 215、220和225是否處于已連接狀態(tài),如果是的話則把特定處理器205a — 205m與特定NIC 215、220和225聯(lián)合。在圖3所示的例子中,步驟105的結(jié)果是將總共13個(gè)處理器當(dāng)中的6個(gè)(即處理器205a — 205f)與NIC 215聯(lián)合,并且將剩余的7個(gè)處理器(即處理器205g — 205m)與NIC 220聯(lián)合。當(dāng)然,圖3中描繪的聯(lián)合方式僅僅是說(shuō)明性而非限制性的。舉例來(lái)說(shuō),可以將任何適當(dāng)數(shù)目和設(shè)置的處理器與特定NIC聯(lián)合,因?yàn)楸景l(fā)明的實(shí)施例在這方面不受限制。在一些實(shí)施例中,作為將處理器與特定NIC聯(lián)合的結(jié)果,所述處理器執(zhí)行由該NIC生成的ISR和DPC,而不執(zhí)行由系統(tǒng)上的任何其他NIC生成的ISR和DPC。因此,當(dāng)有多個(gè)處理器與之聯(lián)合的NIC接收 到分組并且生成ISR或DPC時(shí),其選擇與該NIC相聯(lián)合的其中一個(gè)處理器來(lái)處理對(duì)應(yīng)于所述分組的ISR或DPC。在本發(fā)明的一些實(shí)施例中,不同的配置選項(xiàng)可以指明用于將處理器與NIC聯(lián)合的不同標(biāo)準(zhǔn)。舉例來(lái)說(shuō),在一些實(shí)施例中,與具有較小帶寬的其他NIC相比,可以將具有更大帶寬的NIC與成比例地更多數(shù)目的處理器聯(lián)合,以便允許系統(tǒng)利用高速連接。在這方面,除了分別具有一千兆字節(jié)帶寬的NIC 215和220之外,圖4還描繪出具有十千兆字節(jié)帶寬的NIC 225。在圖4所示的說(shuō)明性實(shí)例中,當(dāng)NIC 215、220和225在啟動(dòng)期間變?yōu)閷?duì)操作系統(tǒng)210可用并且被確定為處于已連接狀態(tài)時(shí),分別將總共13個(gè)處理器當(dāng)中的4個(gè)與NIC 215和220當(dāng)中的每一個(gè)聯(lián)合(即處理器205a — 205d與NIC 215聯(lián)合,處理器205e — 205h與NIC 220聯(lián)合),同時(shí)將5個(gè)處理器與NIC 225聯(lián)合(即處理器205i — 205m)。當(dāng)然,圖4中所示出的分配僅僅是一種示例性分配,因?yàn)榭梢园凑杖魏芜m當(dāng)?shù)谋壤驮O(shè)置將各個(gè)處理器與特定NIC聯(lián)合。本發(fā)明的實(shí)施例不限于任何具體實(shí)現(xiàn)方式。舉例來(lái)說(shuō),在一種替換分配中,可以將8個(gè)(或另一個(gè)數(shù)目的)處理器與NIC 225聯(lián)合,并且將剩余的5個(gè)(或另一個(gè)數(shù)目的)處理器分配在NIC 215和220之間。可以采用任何適當(dāng)?shù)姆峙?。一些?shí)施例可以限制與特定NIC聯(lián)合的處理器的數(shù)目,以便將該NIC的能力適應(yīng)于應(yīng)對(duì)預(yù)定數(shù)量的處理器。舉例來(lái)說(shuō),如果NIC 225只能夠支持4個(gè)處理器,則只能將4個(gè)(或更少)處理器與NIC 225聯(lián)合,并且可以將剩余的9個(gè)處理器分配在NIC 215和220之間??梢圆捎脤⑻幚砥髋cNIC聯(lián)合的任何適當(dāng)方式(認(rèn)識(shí)到任何適當(dāng)?shù)?多項(xiàng))約束),因?yàn)楸景l(fā)明的實(shí)施例在這方面不受限制。某些實(shí)現(xiàn)方式可以包括被分組到各個(gè)NUMA節(jié)點(diǎn)中的處理器。因此,本發(fā)明的一些實(shí)施例提供了允許將處理器與NIC聯(lián)合的配置選項(xiàng),從而對(duì)于與聯(lián)網(wǎng)有關(guān)的任務(wù)完全利用系統(tǒng)上的可用NUMA節(jié)點(diǎn)。舉例來(lái)說(shuō),一些實(shí)施例可以允許將系統(tǒng)上的每一個(gè)NUMA節(jié)點(diǎn)中的各個(gè)處理器與特定的啟用了 NUMA的NIC聯(lián)合,從而允許將通信量分配在系統(tǒng)上的各個(gè)NUMA節(jié)點(diǎn)當(dāng)中。在圖5中描繪出一個(gè)例子,其中NIC 215、220是啟用了 NUMA的NIC,而NIC 225則未啟用NUMA。處理器205a — 205i被分組到3個(gè)NUMA節(jié)點(diǎn)中,其中處理器205a — 205c包括NUMA節(jié)點(diǎn)505,處理器205d — 205f包括NUMA節(jié)點(diǎn)510,并且處理器205g — 205 包括NUMA節(jié)點(diǎn)515。在所示實(shí)例中,當(dāng)NIC 215、220和225變?yōu)閷?duì)于操作系統(tǒng)210可用時(shí),來(lái)自每一個(gè)NUMA節(jié)點(diǎn)505、510和515的處理器被指派給NIC 215和220當(dāng)中的每一個(gè)。因此,來(lái)自NUMA節(jié)點(diǎn)505的處理器205a、來(lái)自NUMA節(jié)點(diǎn)510的處理器205d和來(lái)自NUMA節(jié)點(diǎn)515的處理器205g與NIC 215聯(lián)合,并且來(lái)自NUMA節(jié)點(diǎn)505的處理器205b、來(lái)自NUMA節(jié)點(diǎn)510的處理器205e和來(lái)自NUMA節(jié)點(diǎn)515的處理器205h與NIC 220聯(lián)合。在一些實(shí)施例中,處理器在被指派給未啟用NUMA的NIC之前被指派給啟用了 NUMA的NIC,以便使得每一個(gè)啟用了 NUMA的NIC與來(lái)自每一個(gè)NUMA節(jié)點(diǎn)的至少一個(gè)處理器聯(lián)合的概率最大化,從而允許將通信量分配在系統(tǒng)上的各個(gè)NUMA節(jié)點(diǎn)當(dāng)中。舉例來(lái)說(shuō),可以將處理器指派給啟用了 NUMA的NIC,直到為每一個(gè)NIC指派了其所能支持的最大數(shù)目的處理器為止。在這些實(shí)施例中,隨后可以將處理器指派給未啟用NUMA的NIC。因此,在圖5所示的實(shí)例中,每一個(gè)啟用了 NUMA的NIC 215和220具有支持兩個(gè)處理器的能力。在將處理器205a、205d指派給NIC 215并且將處理器205b、205e指派給NIC 220之后,隨后將處理 器205j — 205m指派給NIC 225。當(dāng)然,本發(fā)明的實(shí)施例不限于這樣的實(shí)現(xiàn)方式,因?yàn)榭梢园凑杖魏芜m當(dāng)?shù)捻樞蚝?或方式將處理器指派給具有各種特性的NIC。作為圖5中所示的示例性配置的結(jié)果,可以把來(lái)自NIC 215和220的通信量分配在系統(tǒng)上的可用NUMA節(jié)點(diǎn)505、510和515當(dāng)中。當(dāng)然應(yīng)當(dāng)認(rèn)識(shí)到,圖5中描繪的示例性分配僅僅是說(shuō)明性的。舉例來(lái)說(shuō),從圖5中可以看出,某些NUMA節(jié)點(diǎn)中的處理器(即處理器205c、205f和205i)沒(méi)有被使用,并不需要是這種情況。此外,不需要將通信量分配到所有NUMA節(jié)點(diǎn)或者如圖所示地均勻分配在各個(gè)NUMA節(jié)點(diǎn)當(dāng)中??梢圆捎萌魏芜m當(dāng)?shù)膶?shí)現(xiàn)方式,因?yàn)楸景l(fā)明的實(shí)施例在這方面不受限制。再次參照?qǐng)D2,在步驟105中將處理器與NIC聯(lián)合之后,處理100繼續(xù)到步驟110,其中將處理任務(wù)動(dòng)態(tài)地從一個(gè)或更多處理器重新分配到一個(gè)或更多其他處理器。作為一個(gè)例子,可以在滿足一條或更多條標(biāo)準(zhǔn)時(shí)施行處理任務(wù)的重新分配。在下面描述的一種示例性實(shí)現(xiàn)方式中,在確定系統(tǒng)上的一個(gè)或更多處理器超出預(yù)定的閾值利用率水平時(shí)施行重新分配。但是應(yīng)當(dāng)認(rèn)識(shí)到,可以在滿足任何一條或更多條標(biāo)準(zhǔn)時(shí)施行重新分配,其中包括與處理器利用率無(wú)關(guān)的標(biāo)準(zhǔn),因?yàn)楸景l(fā)明的實(shí)施例在這方面不受限制。在圖6中描繪出用于在確定一個(gè)或更多處理器負(fù)荷過(guò)重時(shí)重新分配處理任務(wù)的示例性處理600。處理600例如可以由系統(tǒng)200上的每一個(gè)單獨(dú)的處理器以周期性的預(yù)定義間隔(例如每?jī)擅腌?施行。但是應(yīng)當(dāng)認(rèn)識(shí)到,用于確定一個(gè)或更多處理器是否負(fù)荷過(guò)重以及/或者重新分配處理任務(wù)的處理可以由任何適當(dāng)?shù)南到y(tǒng)組件響應(yīng)于任何適當(dāng)?shù)氖录?或在滿足任何適當(dāng)?shù)臉?biāo)準(zhǔn)時(shí)施行,因?yàn)楸景l(fā)明的實(shí)施例不限于任何具體實(shí)現(xiàn)方式。在處理600開(kāi)始時(shí),在步驟605中對(duì)于特定處理器計(jì)算加權(quán)平均利用率。舉例來(lái)說(shuō),步驟605可以包括由處理器基于繁忙和空閑的周期計(jì)數(shù)利用本領(lǐng)域內(nèi)已知的用于測(cè)量處理器負(fù)載的技術(shù)計(jì)算加權(quán)平均利用率。可以采用任何適當(dāng)?shù)募夹g(shù)來(lái)計(jì)算加權(quán)平均利用率,因?yàn)楸景l(fā)明的實(shí)施例在這方面不受限制。處理600隨后繼續(xù)到步驟610,其中對(duì)于特定處理器計(jì)算加權(quán)活動(dòng)水平。這也可以按照任何適當(dāng)方式來(lái)施行。舉例來(lái)說(shuō),在一些實(shí)施例中,所述加權(quán)活動(dòng)水平是基于由處理器在給定區(qū)間期間應(yīng)對(duì)的互聯(lián)網(wǎng)協(xié)議(IP)數(shù)據(jù)報(bào)的數(shù)目,其中包括對(duì)應(yīng)于目的地為本地的節(jié)段的IP數(shù)據(jù)報(bào)以及目的地為遠(yuǎn)程設(shè)備的數(shù)據(jù)報(bào)。當(dāng)然,本發(fā)明的實(shí)施例不限于此,因?yàn)榭梢岳?多種)任何適當(dāng)?shù)募夹g(shù)來(lái)計(jì)算加權(quán)平均活動(dòng)水平。在步驟610完成之后,處理600繼續(xù)到步驟615,其中確定所述處理器是否是“待解放處理器”。在這方面,可以出于各種原因?qū)⑻幚砥鳂?biāo)示為將解放其處理責(zé)任的處理器。舉例來(lái)說(shuō),出于功率節(jié)省的原因,可以將處理器標(biāo)示為將解放其責(zé)任的處理器,從而不會(huì)消耗功率來(lái)令其保持運(yùn)行。如果在步驟615中確定所述特定處理器不是待解放處理器,則處理600繼續(xù)到步驟620,其中確定該處理器是否繁忙。所述確定例如可以是基于對(duì)在步驟605和/或610中收集的信息以及/或者其他信息進(jìn)行分析。可以按照任何適當(dāng)?shù)姆绞绞┬蟹治?,比如通過(guò)確定在步驟605和/或610中收集的信息是否表明所述處理器的加權(quán)平均利用率和/或加權(quán)活動(dòng)水平超出一個(gè)或更多預(yù)定閾值。舉例來(lái)說(shuō),在一些實(shí)施例中,在處 理器的加權(quán)平均利用率超出90%之后可以將其視為“繁忙”,直到其加權(quán)平均利用率低于70%為止。當(dāng)然,可以使用(多項(xiàng))任何適當(dāng)?shù)臏y(cè)量來(lái)確定處理器是否繁忙。在示例性處理600中,如果在步驟620中確定處理器不繁忙,則處理600完成。其結(jié)果是,執(zhí)行示例性處理600的處理器不被標(biāo)識(shí)為應(yīng)當(dāng)從中轉(zhuǎn)移處理任務(wù)的處理器。但是如果在步驟620中確定處理器繁忙,則示例性處理600繼續(xù)到步驟625,其中確定所述處理器當(dāng)前是否正在應(yīng)對(duì)多于一個(gè)活躍分區(qū)。分區(qū)例如可以代表在處理器處借以接收信息的一個(gè)或更多連接。如果確定處理器當(dāng)前沒(méi)有正在應(yīng)對(duì)多于一個(gè)活躍分區(qū),則處理600完成。但是如果確定處理器正在應(yīng)對(duì)多于一個(gè)活躍分區(qū),或者在步驟615中確定所述處理器是待解放處理器,則處理600繼續(xù)到步驟630,其中確定是否存在可以向其轉(zhuǎn)移當(dāng)前由所述處理器應(yīng)對(duì)的任務(wù)的符合條件的“目標(biāo)”處理器。在圖7中描繪出用于確定是否存在任何符合條件的目標(biāo)處理器的示例性處理700。處理700例如可以涉及由施行處理600 (圖6)的處理器檢查系統(tǒng)上的一個(gè)或更多其他處理器的特性,但是本發(fā)明的實(shí)施例不限于這樣的實(shí)現(xiàn)方式。在示例性處理700開(kāi)始時(shí),在步驟705中確定所檢查的處理器是否被指派給與執(zhí)行示例性處理700的處理器相同的適配器,其表明所檢查的處理器和執(zhí)行示例性處理700的處理器與相同的NIC聯(lián)合。如果不是的話,則確定所檢查的處理器不符合作為向其轉(zhuǎn)移與聯(lián)網(wǎng)有關(guān)的任務(wù)的目標(biāo)處理器的條件,并且示例性處理700完成。但是如果所檢查的處理器被指派給相同的適配器,則處理700繼續(xù)到步驟710,其中確定用戶是否調(diào)用了 NUMA簡(jiǎn)檔。已被調(diào)用的NUMA簡(jiǎn)檔可以表明系統(tǒng)采用了 NUMA體系結(jié)構(gòu),從而可以把特定處理器分組到一個(gè)或更多NUMA節(jié)點(diǎn)中。如果確定用戶調(diào)用了 NUMA簡(jiǎn)檔,則示例性處理700繼續(xù)到步驟715,其中確定所檢查的處理器是否駐留在與施行示例性處理700的處理器相同的NUMA節(jié)點(diǎn)中。在這方面,本發(fā)明的發(fā)明人已經(jīng)認(rèn)識(shí)到不希望將處理任務(wù)從一個(gè)NUMA節(jié)點(diǎn)中的處理器轉(zhuǎn)移到另一個(gè)NUMA節(jié)點(diǎn)中的處理器,因?yàn)檫@樣做可能導(dǎo)致向其轉(zhuǎn)移任務(wù)的處理器存取其他NUMA節(jié)點(diǎn)的存儲(chǔ)器以完成與聯(lián)網(wǎng)有關(guān)的任務(wù),這可能會(huì)降低系統(tǒng)性能。其結(jié)果是,本發(fā)明的一些實(shí)施例防止處理任務(wù)從一個(gè)NUMA節(jié)點(diǎn)中的處理器轉(zhuǎn)移到另一個(gè)NUMA節(jié)點(diǎn)中的處理器。在這方面,如果在步驟715中確定所檢查的處理器不駐留在與施行示例性處理700的處理器相同的NUMA節(jié)點(diǎn)中,則將所檢查的處理器確定為不符合作為目標(biāo)處理器的條件,并且示例性處理700完成。
如果在步驟715中確定所檢查的處理器處于相同的NUMA節(jié)點(diǎn)中,或者如果在步驟710中確定用戶還沒(méi)有調(diào)用NUMA簡(jiǎn)檔,則示例性處理700繼續(xù)到步驟720,其中確定所檢查的處理器是否繁忙。該確定例如可以是基于分析針對(duì)所檢查的處理器收集的信息,其類似于在步驟605和610 (圖6)中收集的信息。當(dāng)然,關(guān)于處理器是否繁忙的確定可以是基于任何適當(dāng)標(biāo)準(zhǔn),因?yàn)楸景l(fā)明的實(shí)施例在這方面不受限制。如果確定所檢查的處理器繁忙,則將所述處理器確定為不符合條件,并且示例性處理700完成。如果確定所述處理器不繁忙,則將其確定為符合條件的處理器。在一些實(shí)施例中,可以將所述處理器添加到能夠向其轉(zhuǎn)移與聯(lián)網(wǎng)有關(guān)的任務(wù)的目標(biāo)處理器的列表或其他總集中。示例性處理700隨后完成?;氐绞纠蕴幚?00 (圖6),如果在步驟630中確定不存在符合條件的目標(biāo)處理器,則示例性處理600繼續(xù)到步驟635,其中確定是否可以獲取新的處理器以供使用。在圖8中示出了用于做出該確定的示例性處理800。示例性處理800例如可以涉及由處理器檢查系統(tǒng)上的一個(gè)或更多其他處理器的特性,其中包括與執(zhí)行示例性處理600的處理器聯(lián)合 的NIC聯(lián)合的那些處理器,以及與系統(tǒng)上的其他NIC聯(lián)合的那些處理器。在處理800開(kāi)始時(shí),在步驟805中確定所檢查的NIC是否當(dāng)前與其最大數(shù)目的處理器聯(lián)合。舉例來(lái)說(shuō),系統(tǒng)上的每一個(gè)NIC可以具有其所能支持的最大數(shù)目的處理器,并且/或者配置選項(xiàng)或策略可以指明特定NIC僅與特定數(shù)目的處理器聯(lián)合。可以按照任何適當(dāng)?shù)姆绞街该髯畲筇幚砥鲾?shù)目。如果在步驟805中確定所檢查的NIC當(dāng)前與最大數(shù)目的處理器聯(lián)合,則處理800繼續(xù)到步驟810,其中確定是否調(diào)用了 NUMA簡(jiǎn)檔,其表明系統(tǒng)采用了 NUMA體系結(jié)構(gòu)。NUMA簡(jiǎn)檔例如可以由用戶或其他實(shí)體調(diào)用。如果確定還沒(méi)有調(diào)用NUMA簡(jiǎn)檔,則示例性處理800完成,其結(jié)論是沒(méi)有將要獲取的向其轉(zhuǎn)移與聯(lián)網(wǎng)有關(guān)的任務(wù)的處理器。但是如果在步驟810中確定調(diào)用了 NUMA簡(jiǎn)檔,則處理800繼續(xù)到步驟815,其中確定在不同于NIC當(dāng)前與之聯(lián)合的被指派了多于一個(gè)處理器的NUMA節(jié)點(diǎn)上是否存在空閑處理器。在一些實(shí)施例中,空閑處理器可以是其加權(quán)平均利用率低于20%的一個(gè)處理器,但是也可以采用處理器利用率和/或活動(dòng)的任何適當(dāng)測(cè)量。如果確定在NUMA節(jié)點(diǎn)上存在空閑處理器,則示例性處理800完成,其結(jié)論是沒(méi)有將要獲取的處理器。但是如果在步驟815中確定在另一個(gè)NUMA節(jié)點(diǎn)上存在至少一個(gè)空閑處理器,則處理800繼續(xù)到步驟820,其中釋放所述另一個(gè)NUMA節(jié)點(diǎn)上的最不活躍的處理器以供使用。可以利用任何適當(dāng)?shù)募夹g(shù)來(lái)確定“最不活躍的”處理器,因?yàn)楸景l(fā)明的實(shí)施例在這方面不受限制。舉例來(lái)說(shuō),對(duì)于所述另一個(gè)NUMA節(jié)點(diǎn)上的每一個(gè)處理器,可以利用類似于在步驟605和610中收集的信息來(lái)識(shí)別出最不活躍的處理器。在步驟820完成后,示例性處理800繼續(xù)到步驟830,其中確定在NIC當(dāng)前與之聯(lián)合的相同NUMA節(jié)點(diǎn)上是否存在空閑處理器。如果不存在,則確定沒(méi)有將要獲取的處理器,并且示例性處理800完成。如果在步驟830中確定在所述相同的NUMA節(jié)點(diǎn)上存在至少一個(gè)空閑處理器,則示例性處理800繼續(xù)到步驟835,其中獲取所述相同的NUMA節(jié)點(diǎn)上的最不活躍的處理器以供使用,并且處理800隨后完成。正如在前面關(guān)于步驟815所提到的那樣,可以利用任何適當(dāng)?shù)臉?biāo)準(zhǔn)和/或技術(shù)識(shí)別出最不活躍的處理器,因?yàn)楸景l(fā)明的實(shí)施例在這方面不受限制。
回到步驟805,如果確定NIC當(dāng)前沒(méi)有使用其最大處理器計(jì)數(shù),則處理800繼續(xù)到步驟825,其中確定用戶是否調(diào)用了 NUMA簡(jiǎn)檔。如果是的話,則示例性處理800繼續(xù)到步驟830,并且按照前面所描述的那樣繼續(xù)。如果沒(méi)有,則處理800繼續(xù)到步驟840,其中確定是否有空閑處理器可用。如果確定有空閑處理器可用,則獲取(利用任何適當(dāng)技術(shù)識(shí)別出的)最不活躍的處理器,并且處理800隨后完成。如果在步驟840中確定沒(méi)有空閑處理器可用,則不獲取處理器,并且示例性處理800完成。再次回到步驟635 (圖6),如果確定沒(méi)有所能獲取的新處理器,則處理600完成。但是如果在步驟635中確定可以獲取新處理器,則示例性處理600繼續(xù)到步驟645,其中將所述新處理器標(biāo)示為目標(biāo)。類似地,如果在步驟630中確定存在符合條件的目標(biāo)處理器,則在步驟640中識(shí)別出最不活躍的符合條件的處理器并且將其標(biāo)示為目標(biāo)處理器。在步驟640或645完成之后,處理600繼續(xù)到步驟650,其中對(duì)于系統(tǒng)上的所有處理器確定最高平均活動(dòng)水平。這例如可以反映出認(rèn)識(shí)到將處理任務(wù)從一個(gè)處理器轉(zhuǎn)移到另一個(gè)處理器的做法是不合期望的,這樣只會(huì)使得接收處理器成為系統(tǒng)上的最繁忙的處理 器。因此,在本發(fā)明的一些實(shí)施例中,首先識(shí)別出系統(tǒng)上的利用率最高的處理器,并且只有在接收處理器上的活動(dòng)水平將不會(huì)超出最繁忙處理器的情況下才轉(zhuǎn)移處理任務(wù)。處理600隨后繼續(xù)到步驟655,其中確定被指派給所檢查的處理器的任何分區(qū)是否可移動(dòng)。在圖9中示出了用于做出該確定的示例性處理900。示例性處理900例如可以涉及檢查當(dāng)前被指派給特定處理器的各個(gè)分區(qū)的特性,以便確定對(duì)將任何分區(qū)移動(dòng)到另一個(gè)處理器以供執(zhí)行的期望。在示例性處理900開(kāi)始時(shí),在步驟905中確定對(duì)應(yīng)于特定分區(qū)的自然處理器是否屬于所述處理器被指派到的相同適配器。在這方面,分區(qū)的自然處理器例如可以應(yīng)對(duì)所述分區(qū)的定時(shí)器處理。如果在步驟905中確定所述分區(qū)的自然處理器屬于當(dāng)前適配器,則示例性處理900繼續(xù)到步驟910,其中在步驟910中確定所述分區(qū)是否可以移動(dòng)到自然處理器。該確定可以涉及評(píng)估任何適當(dāng)?shù)臉?biāo)準(zhǔn),其中包括(例如)自然處理器上的當(dāng)前活動(dòng)水平。如果在步驟910中確定所述分區(qū)可以被移動(dòng)到自然處理器,則示例性處理900繼續(xù)到步驟915,其中確定自然處理器是否是待解放處理器(正如前面關(guān)于圖6的步驟615所描述的那樣)。如果確定自然處理器不是待解放處理器,則為所述分區(qū)指派由2元組代表的權(quán)重,所述2元組包括5和對(duì)應(yīng)于所述分區(qū)的活動(dòng)水平。在一些實(shí)施例中,代表權(quán)重的2元組的第一分量表明期望移動(dòng)分區(qū)的程度,其中更高的數(shù)字代表期望程度更高,并且所述2元組的第二分量被用來(lái)從被指派了相同第一分量的各個(gè)分區(qū)當(dāng)中進(jìn)行選擇。舉例來(lái)說(shuō),如果兩個(gè)分區(qū)都被指派了第一分量為5的權(quán)重2元組,則可以把具有最大相關(guān)聯(lián)活動(dòng)數(shù)量的分區(qū)識(shí)別為兩個(gè)分區(qū)當(dāng)中的最期望移動(dòng)的分區(qū)。當(dāng)然,可以按照許多方式確定期望程度,因?yàn)楸景l(fā)明的實(shí)施例在這方面不受限制。示例性處理900隨后完成。如果在步驟915中確定所述自然處理器是待解放處理器,則為所述分區(qū)指派由2元組代表的權(quán)重,所述2元組包括4和該分區(qū)的活動(dòng)水平。如果在步驟910中確定所述分區(qū)無(wú)法移動(dòng)到自然處理器,或者在步驟905中確定所述分區(qū)的自然處理器沒(méi)有被指派給當(dāng)前適配器,則示例性處理900繼續(xù)到步驟920,其中確定當(dāng)前處理器是否是待解放處理器。如果在步驟920中確定當(dāng)前處理器是待解放處理器,則示例性處理900繼續(xù)到步驟930,其中確定所述分區(qū)是否可以移動(dòng)到并非待解放處理器的最不活躍的分區(qū)。如果是的話,則為所述分區(qū)指派由2元組代表的權(quán)重,所述2元組包括數(shù)字3和該分區(qū)的活動(dòng)水平,并且示例性處理900完成。如果在步驟930中確定所述分區(qū)無(wú)法移動(dòng)到并非待解放處理器的最不活躍分區(qū)所被指派的處理器,則示例性處理900繼續(xù)到步驟935,其中確定所述分區(qū)是否可以移動(dòng)到最不活躍的處理器。如果是的話,則為所述分區(qū)指派由2元組代表的權(quán)重,所述2元組包括數(shù)字2和該分區(qū)的活動(dòng)水平。如果不是的話,則確定當(dāng)前分區(qū)無(wú)法移動(dòng),并且示例性處理900完成。如果在步驟920中確定當(dāng)前處理器不是待解放處理器,則示例性處理900繼續(xù)到步驟925,其中確定所檢查的分區(qū)是否當(dāng)前適配器上的最當(dāng)前分區(qū)。如果不是的話,則示例性處理900繼續(xù)到步驟930,并且按照前面所描述的那樣繼續(xù)。如果確定所檢查的分區(qū)是當(dāng)前適配器上的最活躍分區(qū),則確定當(dāng)前分區(qū)無(wú)法被移動(dòng),并且示例性處理900完成。再次參照?qǐng)D6中的處理600,如果在步驟655中確定存在至少一個(gè)可移動(dòng)分區(qū),則 示例性處理600繼續(xù)到步驟660,其中將最佳匹配移動(dòng)到不同的處理器。如前所述,最佳匹配例如可以是其權(quán)重包括最高數(shù)值的分區(qū)。如果多個(gè)分區(qū)的權(quán)重包括相同數(shù)值,則可以把具有最高相關(guān)聯(lián)活動(dòng)水平的分區(qū)選為最佳匹配。當(dāng)然,并非本發(fā)明的所有實(shí)施例都被限制到這樣的實(shí)現(xiàn)方式,因?yàn)榭梢岳萌魏芜m當(dāng)?shù)臉?biāo)準(zhǔn)和/或技術(shù)來(lái)選擇將要移動(dòng)的最佳分區(qū)。在步驟660完成之后,或者如果在步驟655中確定不存在可移動(dòng)分區(qū),則示例性處理600完成。另一個(gè)配置選項(xiàng)可以允許NUMA系統(tǒng)上的應(yīng)用識(shí)別出正在其上施行與聯(lián)網(wǎng)有關(guān)的任務(wù)的(多個(gè))NUMA節(jié)點(diǎn),從而可以在(多個(gè))相同節(jié)點(diǎn)上施行與應(yīng)用有關(guān)的處理。在這方面,正如前面所提到的那樣,運(yùn)行在一個(gè)NUMA節(jié)點(diǎn)上的嘗試存取另一個(gè)NUMA節(jié)點(diǎn)的存儲(chǔ)器的處理(以便例如完成與聯(lián)網(wǎng)有關(guān)的任務(wù)、施行應(yīng)用處理等等)可能會(huì)顯著降低總體系統(tǒng)性能。因此,本發(fā)明的一些實(shí)施例允許應(yīng)用識(shí)別出當(dāng)前服務(wù)于借以接收所述應(yīng)用正在處理的信息的連接的NUMA節(jié)點(diǎn)和處理器,從而所述應(yīng)用自身可以在相同的節(jié)點(diǎn)上執(zhí)行,從而避免了嘗試存取與另一個(gè)NUMA節(jié)點(diǎn)相關(guān)聯(lián)的存儲(chǔ)器地址。當(dāng)然應(yīng)當(dāng)認(rèn)識(shí)到,本發(fā)明的實(shí)施例不限于允許應(yīng)用識(shí)別出哪一個(gè)NUMA節(jié)點(diǎn)應(yīng)對(duì)連接。舉例來(lái)說(shuō),一些實(shí)施例可以允許應(yīng)用指明所述應(yīng)用在其上執(zhí)行(或者先前在其上執(zhí)行)的NUMA節(jié)點(diǎn),從而可以把與聯(lián)網(wǎng)有關(guān)的任務(wù)移動(dòng)到該NUMA節(jié)點(diǎn)以進(jìn)行處理。本發(fā)明的實(shí)施例可以按照許多方式來(lái)實(shí)施。在圖10中示出了用于識(shí)別出正在應(yīng)對(duì)特定連接的節(jié)點(diǎn)的示例性處理1000。在處理1000開(kāi)始時(shí),在步驟1005中接收到針對(duì)識(shí)別出正在應(yīng)對(duì)特定連接的節(jié)點(diǎn)的請(qǐng)求。舉例來(lái)說(shuō),本發(fā)明的實(shí)施例可以提供應(yīng)用編程接口(API ),其可以從應(yīng)用接收到針對(duì)識(shí)別出正在應(yīng)對(duì)特定連接的NUMA節(jié)點(diǎn)的查詢。但是應(yīng)當(dāng)認(rèn)識(shí)到,本發(fā)明的實(shí)施例不限于采用可以由應(yīng)用使用來(lái)提交查詢的API,因?yàn)榭梢蕴鎿Q地采用任何適當(dāng)?shù)脑O(shè)施。在步驟1005完成之后,在步驟1010向應(yīng)用提供所述節(jié)點(diǎn)的標(biāo)識(shí)。應(yīng)用可以使用該信息來(lái)例如在相同的節(jié)點(diǎn)上“蘇醒”,以便防止嘗試存取一個(gè)或更多其他NUMA節(jié)點(diǎn)的存儲(chǔ)器。示例性處理1000隨后完成。圖11描繪出用戶可以采用來(lái)調(diào)用一個(gè)或更多配置選項(xiàng)的示例性用戶接口(UI)1100。示例性Π 1100例如可以由操作系統(tǒng)210 (圖I - 5)呈現(xiàn),以便允許用戶(例如系統(tǒng)管理員)定義在多處理器計(jì)算機(jī)系統(tǒng)上的各個(gè)處理器當(dāng)中分配與聯(lián)網(wǎng)有關(guān)的任務(wù)的模式。舉例來(lái)說(shuō),用戶(例如系統(tǒng)管理員)可以從Π 1100給出的多個(gè)配置選項(xiàng)當(dāng)中進(jìn)行選擇,其中每一個(gè)配置選項(xiàng)(例如以策略的形式)定義由系統(tǒng)上的各個(gè)處理器處理與聯(lián)網(wǎng)有關(guān)的任務(wù)的模式。如圖所示,示例性Π 1100允許用戶通過(guò)向各個(gè)復(fù)選框提供輸入從各個(gè)配置選項(xiàng)當(dāng)中進(jìn)行選擇。舉例來(lái)說(shuō),用戶可以通過(guò)向復(fù)選框1105提供輸入來(lái)調(diào)用配置選項(xiàng),其中按照前面所描述的那樣將特定處理器與特定NIC聯(lián)合,并且可以通過(guò)向復(fù)選框1110提供輸入來(lái)調(diào)用配置選項(xiàng),其中按照前面所描述的那樣在各個(gè)處理器之間動(dòng)態(tài)地重新分配與聯(lián)網(wǎng)有關(guān)的任務(wù)。用戶可以通過(guò)向復(fù)選框1115提供輸入而實(shí)現(xiàn)將各個(gè)處理器分組到各個(gè)NUMA節(jié)點(diǎn)中,其可以使得復(fù)選框1120、1125和1130可用于選擇。具體來(lái)說(shuō),用戶可以通過(guò)向復(fù)選框1120提供輸入而實(shí)現(xiàn)把與聯(lián)網(wǎng)有關(guān)的任務(wù)分配在各個(gè)NUMA節(jié)點(diǎn)當(dāng)中,通過(guò)向復(fù)選框1125提供輸入而實(shí)現(xiàn)在各個(gè)NUMA節(jié)點(diǎn)內(nèi)動(dòng)態(tài)地重新分配任務(wù),以及通過(guò)向復(fù)選框1130提供輸入而允許應(yīng)用確定哪一個(gè)NUMA節(jié)點(diǎn)應(yīng)對(duì)特定連接。當(dāng)然,示例性UI 1100僅僅代表可以被用來(lái)為用戶呈現(xiàn)配置選項(xiàng)以供選擇的接口的一個(gè)例子??梢圆捎萌魏芜m當(dāng)?shù)奶鎿Q呈現(xiàn)方式,因?yàn)楸景l(fā)明的實(shí)施例不限于任何具體的實(shí)現(xiàn)方式。 圖12示出了可以在其上實(shí)施本發(fā)明的適當(dāng)?shù)挠?jì)算系統(tǒng)環(huán)境1200的一個(gè)例子。計(jì)算系統(tǒng)環(huán)境1200僅僅是適當(dāng)?shù)挠?jì)算環(huán)境的一個(gè)例子,而不意圖暗示關(guān)于本發(fā)明的使用或功能的范圍的任何限制。計(jì)算環(huán)境1200也不應(yīng)當(dāng)被解釋為關(guān)于在示例性操作環(huán)境1200中示出的任何一個(gè)組件或組件組合具有任何依賴性或要求。本發(fā)明適用于許多其他通用或?qū)S糜?jì)算系統(tǒng)環(huán)境或配置??赡苓m用于本發(fā)明的公知的計(jì)算系統(tǒng)、環(huán)境和/或配置的例子包括(但不限于)個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手持式或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括任何前述系統(tǒng)或設(shè)備的分布式計(jì)算環(huán)境等等。所述計(jì)算環(huán)境可以執(zhí)行計(jì)算機(jī)可執(zhí)行指令,比如程序模塊。一般來(lái)說(shuō),程序模塊包括施行特定任務(wù)或者實(shí)施特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。本發(fā)明還可以被實(shí)踐在分布式計(jì)算環(huán)境中,其中各項(xiàng)任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備施行。在分布式計(jì)算環(huán)境中,程序模塊可以位于包括存儲(chǔ)器存儲(chǔ)設(shè)備的本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)中。參照?qǐng)D12,用于實(shí)施本發(fā)明的示例性系統(tǒng)包括采取計(jì)算機(jī)1210的形式的通用計(jì)算設(shè)備。計(jì)算機(jī)1210的組件可以包括(但不限于)處理單元1220、系統(tǒng)存儲(chǔ)器1230以及把包括系統(tǒng)存儲(chǔ)器在內(nèi)的各個(gè)系統(tǒng)組件稱合到處理單兀1220的系統(tǒng)總線1221。系統(tǒng)總線1221可以是幾種類型的總線結(jié)構(gòu)當(dāng)中的任一種,其中包括利用多種總線體系結(jié)構(gòu)當(dāng)中任一種的存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線以及局域總線等等。作為舉例而非限制,這樣的體系結(jié)構(gòu)包括工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線、微通道體系結(jié)構(gòu)(MCA)總線、增強(qiáng)型ISA (EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(VESA)局域總線以及也被稱作夾層總線的外圍組件互連(PCI)總線。計(jì)算機(jī)1210通常包括多種計(jì)算機(jī)可讀介質(zhì)。計(jì)算機(jī)可讀介質(zhì)可以是能夠由計(jì)算機(jī)1210訪問(wèn)的任何可用介質(zhì),并且包括易失性和非易失性介質(zhì)、可移除和不可移除介質(zhì)。作為舉例而非限制,計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括按照任何方法或技術(shù)實(shí)施的易失性和非易失性、可移除和不可移除介質(zhì),其用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)之類的信息。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括(但不限于)RAM、ROM、EEPR0M、閃存或其他存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字通用盤(pán)(DVD)或其他光盤(pán)存儲(chǔ)裝置、磁卡、磁帶、磁盤(pán)存儲(chǔ)裝置或其他磁性存儲(chǔ)設(shè)備或者可以被用來(lái)存儲(chǔ)所期望的信息并且可以由計(jì)算機(jī)1210訪問(wèn)的任何其他介質(zhì)。通信介質(zhì)通常把計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)具體實(shí)現(xiàn)在已調(diào)數(shù)據(jù)信號(hào)中,比如載波或其他傳輸機(jī)制,并且包括任何信息遞送介質(zhì)。術(shù)語(yǔ)“已調(diào)數(shù)據(jù)信號(hào)”指的是其一項(xiàng)或更多項(xiàng)特性被設(shè)定或改變的信號(hào),所述特性被設(shè)定或改變的方式使得將信息編碼在所述信號(hào)中。作為舉例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接布線連接之類的有線介質(zhì),以及諸如聲學(xué)、RF、紅外和其他無(wú)線介質(zhì)之類的無(wú)線介質(zhì)。前述任意各項(xiàng)的各種組合也應(yīng)當(dāng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。系統(tǒng)存儲(chǔ)器1230包括采用易失性和/或非易失性存儲(chǔ)器的形式的計(jì)算機(jī)存儲(chǔ)介質(zhì),比如只讀存儲(chǔ)器(ROM) 1231和隨機(jī)存取存儲(chǔ)器(RAM) 1232?;据斎?/輸出系統(tǒng)1233(BIOS)通常被存儲(chǔ)在ROM 1231中,其包含比如在開(kāi)機(jī)期間幫助在計(jì)算機(jī)1210內(nèi)的各個(gè)元件之間傳送信息的基本例程。RAM 1232通常包含可以由處理單元1220立即存取以及/或者當(dāng)前正由處理單元1220操作的數(shù)據(jù)和/或程序模塊。作為舉例而非限制,圖12示出了操作系統(tǒng)1234、應(yīng)用程序1235、其他數(shù)據(jù)模塊1236以及程序數(shù)據(jù)1237。計(jì)算機(jī)1210還可以包括其他可移除/不可移除、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)。僅僅作為舉例,圖12示出了對(duì)不可移除、非易失性磁性介質(zhì)進(jìn)行讀或?qū)懙挠脖P(pán)驅(qū)動(dòng)器1240,對(duì)可移除、非易失性磁盤(pán)1252進(jìn)行讀或?qū)懙拇疟P(pán)驅(qū)動(dòng)器1251,以及對(duì)諸如⑶ROM或其他光學(xué)介質(zhì)之類的可移除、非易失性光盤(pán)1256進(jìn)行讀或?qū)懙墓獗P(pán)驅(qū)動(dòng)器1255??梢杂迷谒鍪纠圆僮鳝h(huán)境中的其他可移除/不可移除、易失性/非易失性計(jì)算機(jī)存儲(chǔ)介質(zhì)包括(但不限于)磁帶卡盒、閃存卡、數(shù)字通用盤(pán)、數(shù)字視頻帶、固態(tài)RAM、固態(tài)ROM等等。硬盤(pán)驅(qū)動(dòng)器1241通常通過(guò)不可移除存儲(chǔ)器接口(比如接口 1240)連接到系統(tǒng)總線1221,并且磁盤(pán)驅(qū)動(dòng)器1251和光盤(pán)驅(qū)動(dòng)器1255通常通過(guò)可移除存儲(chǔ)器接口(比如接口 1250)連接到系統(tǒng)總線1221。在圖12中示出了前面討論的驅(qū)動(dòng)器及其相關(guān)聯(lián)的計(jì)算機(jī)存儲(chǔ)介質(zhì),其為計(jì)算機(jī)1210提供計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊以及其他數(shù)據(jù)的存儲(chǔ)。在圖12中,例如硬盤(pán)驅(qū)動(dòng)器1241被顯示為存儲(chǔ)操作系統(tǒng)1244、應(yīng)用程序1245、其他程序模塊1246以及程序數(shù)據(jù)1247。應(yīng)當(dāng)提到的是,這些組件可以與操作系統(tǒng)1234、應(yīng)用程序1235、其他程序模塊1236以及程序數(shù)據(jù)1237相同或不同。操作系統(tǒng)1244、應(yīng)用程序1245、其他程序模塊1246以及程序數(shù)據(jù)1247在這里被給出不同的附圖標(biāo)記是為了說(shuō)明其至少是不同的拷貝。用戶可以通過(guò)鍵盤(pán)1262和指示設(shè)備1261之類的輸入設(shè)備向計(jì)算機(jī)1210輸入命令和信息,所述指示設(shè)備1261在這里通常被稱作鼠標(biāo)、軌跡球或觸摸板。其他輸入設(shè)備(未示出)可以包括麥克風(fēng)、操縱桿、游戲手柄、碟形衛(wèi)星信號(hào)收發(fā)天線、掃描儀等等。這些和其他輸入設(shè)備常常通過(guò)耦合到系統(tǒng)總線的用戶輸入接口 1260連接到處理單元1220,但是也可以通過(guò)其他接口和總線結(jié)構(gòu)連接,比如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器1291或其他類型的顯示設(shè)備也通過(guò)接口連接到系統(tǒng)總線1221,比如視頻接口 1290。除了監(jiān)視器之外,計(jì)算機(jī)還可以包括諸如揚(yáng)聲器1297和打印機(jī)1296之類的其他外圍輸出設(shè)備,其可以通過(guò)輸出外圍接口 1295連接。
計(jì)算機(jī)1210可以利用去到一個(gè)或更多遠(yuǎn)程計(jì)算機(jī)(比如遠(yuǎn)程計(jì)算機(jī)1280)的邏輯連接操作在聯(lián)網(wǎng)環(huán)境中。遠(yuǎn)程計(jì)算機(jī)1280可以是個(gè)人計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其他常見(jiàn)網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括前面關(guān)于計(jì)算機(jī)1210所描述的許多或全部元件,但是在圖12中僅僅示出了存儲(chǔ)器存儲(chǔ)設(shè)備1281。圖12中描繪的邏輯連接包括局域網(wǎng)(LAN) 1271和廣域網(wǎng)(WAN) 1273,但是也可以包括其他網(wǎng)絡(luò)。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中非常普遍。當(dāng)使用在LAN聯(lián)網(wǎng)環(huán)境中時(shí),計(jì)算機(jī)1210通過(guò)網(wǎng)絡(luò)接口或適配器1270連接到LAN1271。當(dāng)使用在WAN聯(lián)網(wǎng)環(huán)境中時(shí),計(jì)算機(jī)1210通常包括調(diào)制解調(diào)器1272或者用于通過(guò)WAN 1273 (比如因特網(wǎng))建立通信的其他裝置。調(diào)制解調(diào)器1272可以是內(nèi)部的或外部的,其可以通過(guò)用戶輸入接口 1260或者其他適當(dāng)機(jī)制連接到系統(tǒng)總線1221。在已聯(lián)網(wǎng)環(huán)境中,
關(guān)于計(jì)算機(jī)1210描述的程序模塊或其一些部分可以被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。作為舉例而非限制,圖12示出了駐留在存儲(chǔ)器設(shè)備1281上的遠(yuǎn)程應(yīng)用程序1285。應(yīng)當(dāng)認(rèn)識(shí)至IJ,所示出的網(wǎng)絡(luò)連接是示例性的,并且可以使用建立各個(gè)計(jì)算機(jī)之間的通信鏈接的其他
>j-U ρ α裝直。在如此描述了本發(fā)明的至少一個(gè)實(shí)施例的幾個(gè)方面之后應(yīng)當(dāng)認(rèn)識(shí)到,本領(lǐng)域技術(shù)人員將很容易想到多種改動(dòng)、修改和改進(jìn)。這樣的改動(dòng)、修改和改進(jìn)意圖是本公開(kāi)內(nèi)容的一部分,并且意圖落在本發(fā)明的精神和范圍內(nèi)。相應(yīng)地,前面的描述和附圖僅僅是示例性的。可以通過(guò)許多方式當(dāng)中的任一種來(lái)實(shí)施前面描述的本發(fā)明的實(shí)施例。舉例來(lái)說(shuō),可以利用硬件、軟件或其組合來(lái)實(shí)施所述實(shí)施例。當(dāng)用軟件實(shí)施時(shí),軟件代碼可以被執(zhí)行在任何適當(dāng)?shù)奶幚砥骰蛱幚砥骺偧?,不管其被提供在單個(gè)計(jì)算機(jī)中還是分配在多個(gè)計(jì)算機(jī)當(dāng)中。這樣的處理器可以被實(shí)施為集成電路,其中一個(gè)或更多處理器處于集成電路組件中。但是也可以利用具有任何適當(dāng)形式的電路來(lái)實(shí)施處理器。此外還應(yīng)當(dāng)認(rèn)識(shí)到,可以按照許多形式來(lái)具體實(shí)現(xiàn)計(jì)算機(jī),比如機(jī)架安裝的計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)或平板計(jì)算機(jī)。此外,計(jì)算機(jī)可以被嵌入在通常不被視為計(jì)算機(jī)但是具有適當(dāng)處理能力的設(shè)備中,其中包括個(gè)人數(shù)字助理(PDA)、智能電話或者任何其他適當(dāng)?shù)谋銛y式或固定電子設(shè)備。此外,計(jì)算機(jī)可以具有一個(gè)或更多輸入和輸出設(shè)備。這些設(shè)備特別可以被用來(lái)呈現(xiàn)用戶接口??梢员挥脕?lái)提供用戶接口的輸出設(shè)備的例子包括用于輸出的視覺(jué)呈現(xiàn)的打印機(jī)或顯示屏,以及用于輸出的可聽(tīng)呈現(xiàn)的揚(yáng)聲器或其他發(fā)聲設(shè)備??梢员挥糜谟脩艚涌诘妮斎朐O(shè)備的例子包括鍵盤(pán)和指示設(shè)備,比如鼠標(biāo)、觸摸板和數(shù)位板。作為另一個(gè)例子,計(jì)算機(jī)可以通過(guò)話音識(shí)別或者通過(guò)其他可聽(tīng)格式來(lái)接收輸入信息。這樣的計(jì)算機(jī)可以通過(guò)具有任何適當(dāng)形式的一個(gè)或更多網(wǎng)絡(luò)互連,其中包括局域網(wǎng)或廣域網(wǎng),比如企業(yè)網(wǎng)絡(luò)或因特網(wǎng)。這樣的網(wǎng)絡(luò)可以是基于任何適當(dāng)?shù)募夹g(shù),并且可以根據(jù)任何適當(dāng)?shù)膮f(xié)議運(yùn)營(yíng),并且可以包括無(wú)線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)或光纖網(wǎng)絡(luò)。此外,在這里概述的各種方法和處理可以被編碼成軟件,其能夠在采用多種操作系統(tǒng)或平臺(tái)當(dāng)中的任一種的一個(gè)或更多處理器上執(zhí)行。此外,這樣的軟件可以用許多適當(dāng)?shù)木幊陶Z(yǔ)言和/或編程或腳本化工具當(dāng)中的任一種來(lái)編寫(xiě),并且還可以被編輯成可執(zhí)行機(jī)器語(yǔ)言代碼或者在框架或虛擬機(jī)上執(zhí)行的中間代碼。在這方面,本發(fā)明可以被具體實(shí)現(xiàn)為利用一個(gè)或更多程序編碼的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(或多個(gè)計(jì)算機(jī)可讀介質(zhì))(例如計(jì)算機(jī)存儲(chǔ)器、一個(gè)或更多軟盤(pán)、緊致盤(pán)(CD)、光盤(pán)、數(shù)字視頻盤(pán)(DVD)、磁帶、閃存、現(xiàn)場(chǎng)可編程門(mén)陣列中的電路配置或其他半導(dǎo)體器件、或者其他有形計(jì)算機(jī)存儲(chǔ)介質(zhì)和/或存儲(chǔ)設(shè)備),當(dāng)在一個(gè)或更多計(jì)算機(jī)或處理器上執(zhí)行時(shí),所述程序施行實(shí)施前面所討論的本發(fā)明的各個(gè)實(shí)施例的方法。從前面的例子中可以明顯看出,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以在足夠的時(shí)間內(nèi)保留信息,從而被視為非瞬時(shí)性存儲(chǔ)介質(zhì)。這樣的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是能夠傳輸?shù)?,從而可以把存?chǔ)在其中的一個(gè)或更多程序加載到一個(gè)或更多不同的計(jì)算機(jī)或其他處理器上,以便按照前面所討論的那樣實(shí)施本發(fā)明的各個(gè)方面。這里所使用的術(shù)語(yǔ)“計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”僅僅涵蓋可以被視為制造品(例如便攜式存儲(chǔ)設(shè)備)或機(jī)器的計(jì)算機(jī)可讀介質(zhì)。替換地或附加地,本發(fā)明可以被具體實(shí)現(xiàn)為除了計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)之外的其他計(jì)算機(jī)可讀介質(zhì),比如傳播信號(hào)。這里在一般意義下使用的術(shù)語(yǔ)“程序”或“軟件”指代可以被采用來(lái)對(duì)計(jì)算機(jī)或其他處理器進(jìn)行編程的任何類型的計(jì)算機(jī)代碼或計(jì)算機(jī)可執(zhí)行指令集合,以便實(shí)施如前所討論的本發(fā)明的各個(gè)方面。此外還應(yīng)當(dāng)認(rèn)識(shí)到,根據(jù)該實(shí)施例的一個(gè)方面,在被執(zhí)行時(shí)施行本發(fā)明的方法的一個(gè)或更多計(jì)算機(jī)程序不需要駐留在單個(gè)計(jì)算機(jī)或處理器上,而是可以按照模塊化方式分配在多個(gè)不同的計(jì)算機(jī)或處理器當(dāng)中,以便實(shí)施本發(fā)明的各個(gè)方面。 計(jì)算機(jī)可執(zhí)行指令可以具有許多形式,比如由一個(gè)或更多計(jì)算機(jī)或其他設(shè)備執(zhí)行的程序模塊。一般來(lái)說(shuō),程序模塊包括施行特定任務(wù)或者實(shí)施特定抽象數(shù)據(jù)類型的例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等等。在各個(gè)實(shí)施例中通??梢园凑障MM合或分配各個(gè)程序模塊的功能??梢园凑杖魏芜m當(dāng)?shù)男问綄?shù)據(jù)結(jié)構(gòu)存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中。為了說(shuō)明簡(jiǎn)單起見(jiàn),數(shù)據(jù)結(jié)構(gòu)可以被顯示為具有通過(guò)所述數(shù)據(jù)結(jié)構(gòu)中的位置而相關(guān)的字段。通過(guò)為字段存儲(chǔ)指派計(jì)算機(jī)可讀介質(zhì)中的位置同樣可以獲得這樣的關(guān)系,其中所述位置傳達(dá)了各個(gè)字段之間的關(guān)系。但是也可以使用任何適當(dāng)?shù)臋C(jī)制來(lái)建立數(shù)據(jù)結(jié)構(gòu)的各個(gè)字段中的信息之間的關(guān)系,其中包括通過(guò)使用指針、標(biāo)簽或者建立數(shù)據(jù)元素之間的關(guān)系的其他機(jī)制。本發(fā)明的各個(gè)方面可以被單獨(dú)使用、組合使用或者被使用在前面描述的實(shí)施例中沒(méi)有明確討論的各種設(shè)置中,因此其應(yīng)用不限于在前面的描述中所闡述或者在附圖中所示出的細(xì)節(jié)和組件設(shè)置。舉例來(lái)說(shuō),一個(gè)實(shí)施例的各個(gè)方面可以按照任何方式與其他實(shí)施例的各個(gè)方面相組合。此外,本發(fā)明可以被具體實(shí)現(xiàn)為一種方法,參照附圖描述了所述方法的一個(gè)例子。作為所述方法的一部分施行的各個(gè)步驟可以按照任何適當(dāng)?shù)姆绞絹?lái)排序。相應(yīng)地,可以構(gòu)造其中以不同于所示出的順序施行各個(gè)步驟的實(shí)施例,其中可以包括同時(shí)施行一些步驟,盡管其在說(shuō)明性實(shí)施例中被顯示為順序的步驟。在權(quán)利要求書(shū)中使用諸如“第一”、“第二”、“第三”等序數(shù)項(xiàng)目來(lái)修改權(quán)利要求元素本身并不意味著任何優(yōu)先級(jí)、優(yōu)先順序、一個(gè)權(quán)利要求元素對(duì)于另一個(gè)的順序或者施行方法的各個(gè)步驟的時(shí)間順序,而是僅僅被用作把具有特定名稱的一個(gè)權(quán)利要求元素與具有相同名稱(但是為了使用所述序數(shù)項(xiàng)目)的另一個(gè)元素進(jìn)行區(qū)分的標(biāo)記,以便區(qū)分各個(gè)權(quán)利要求元素。此外,這里使用的措辭和術(shù)語(yǔ)是為了進(jìn)行描述而不應(yīng)被視為進(jìn)行限制。使用“包括”、“包含”、或“具有”、“涉及”等詞是意圖涵蓋隨后列出的項(xiàng)目及其等效物以及附加的項(xiàng)目。
權(quán)利要求
1.一種用在耦合到至少一個(gè)網(wǎng)絡(luò)(1271,1273)的計(jì)算機(jī)(1210)的方法,所述計(jì)算機(jī)(1210)通過(guò)至少一個(gè)網(wǎng)絡(luò)接口控制器(NIC) (1270)耦合到至少一個(gè)網(wǎng)絡(luò)(1271,1273)并且包括多個(gè)處理器(1220),所述方法包括以下步驟 (A)接收從多個(gè)配置選項(xiàng)(1105,1110,1115)當(dāng)中進(jìn)行選擇的用戶輸入,其中每一個(gè)配置選項(xiàng)指明一種處理模式,其中所述多個(gè)處理器當(dāng)中的一個(gè)處理器集合與所述至少一個(gè)NIC的相應(yīng)的其中之一聯(lián)合,并且對(duì)通過(guò)所述相應(yīng)的一個(gè)NIC接收到的信息施行與聯(lián)網(wǎng)有關(guān)的任務(wù)。
2.權(quán)利要求I的方法,其中,所述多個(gè)處理器當(dāng)中的至少一些包括非均勻存儲(chǔ)器存取(NUMA)節(jié)點(diǎn),并且至少其中一個(gè)所述配置選項(xiàng)指明其中所述多個(gè)NIC的至少其中之一與多個(gè)NUMA節(jié)點(diǎn)中的處理器聯(lián)合的一種處理模式。
3.權(quán)利要求I的方法,其中,至少其中一個(gè)所述配置選項(xiàng)還指明把與聯(lián)網(wǎng)有關(guān)的任務(wù)從至少一個(gè)第一處理器重新分配到至少一個(gè)第二處理器。
4.一種用在耦合到至少一個(gè)網(wǎng)絡(luò)(1271,1273)的計(jì)算機(jī)(1210)的方法,所述計(jì)算機(jī)包括分組到多個(gè)非均勻存儲(chǔ)器存取(NUMA)節(jié)點(diǎn)(505,510,515)中的第一多個(gè)處理器(205a —205i),所述計(jì)算機(jī)包括適于通過(guò)所述至少一個(gè)網(wǎng)絡(luò)接收信息分組的啟用了 NUMA的網(wǎng)絡(luò)接口控制器(NIC) (215),其中每一個(gè)分組與分區(qū)相關(guān)聯(lián),所述方法包括 (A)把在NIC(215)處接收的分組提供到所述多個(gè)NUMA節(jié)點(diǎn)(505,510,515)當(dāng)中的每一個(gè)中的至少一個(gè)處理器(205),其中被提供到所述多個(gè)NUMA節(jié)點(diǎn)當(dāng)中的每一個(gè)的各個(gè)分組與不同的分區(qū)相關(guān)聯(lián)。
5.權(quán)利要求4的方法,其中,所述計(jì)算機(jī)還包括未被分組到任何NUMA節(jié)點(diǎn)中的第二多個(gè)處理器以及未啟用NUMA的NIC,并且其中所述方法還包括 (B)把在未啟用NUMA的NIC處接收到的分組分配到所述第二多個(gè)處理器,其中被發(fā)送到所述第二多個(gè)處理器當(dāng)中的每一個(gè)的各個(gè)分組與不同的分區(qū)相關(guān)聯(lián)。
6.權(quán)利要求5的方法,其中,所述啟用了NUMA的NIC支持最大數(shù)目的處理器,并且(A)包括把在所述NIC處接收到的分組提供到所述最大數(shù)目的處理器。
7.一種耦合到至少一個(gè)網(wǎng)絡(luò)的計(jì)算機(jī),其包括 包括多個(gè)NUMA節(jié)點(diǎn)(505,510,515)的多個(gè)處理器(1220); 適于通過(guò)至少一個(gè)網(wǎng)絡(luò)連接接收經(jīng)由所述至少一個(gè)網(wǎng)絡(luò)發(fā)送的信息分組的至少一個(gè)網(wǎng)絡(luò)接口控制器(NIC) (1270),其中每一個(gè)分組與特定的網(wǎng)絡(luò)連接相關(guān)聯(lián),并且所述至少一個(gè)網(wǎng)絡(luò)接口控制器(NIC) (1270)還適于把與每一個(gè)網(wǎng)絡(luò)連接相關(guān)聯(lián)的分組提供到所述多個(gè)NUMA節(jié)點(diǎn)當(dāng)中的特定一個(gè);以及 存儲(chǔ)第一編程指令的至少一個(gè)存儲(chǔ)設(shè)施(1230),所述第一編程指令定義可用來(lái)識(shí)別由所述至少一個(gè)NIC為之提供與特定網(wǎng)絡(luò)連接相關(guān)聯(lián)的分組的NUMA節(jié)點(diǎn)的查詢?cè)O(shè)施。
8.權(quán)利要求7的計(jì)算機(jī),其中,所述至少一個(gè)存儲(chǔ)設(shè)施還存儲(chǔ)定義用于在所述多個(gè)處理器當(dāng)中的一個(gè)或更多個(gè)之上執(zhí)行的至少一個(gè)應(yīng)用的第二編程指令,并且其中第一編程指令定義第一應(yīng)用編程接口,其允許所述至少一個(gè)應(yīng)用識(shí)別出為之提供與特定網(wǎng)絡(luò)連接相關(guān)聯(lián)的分組的NUMA節(jié)點(diǎn)。
9.權(quán)利要求8的計(jì)算機(jī),其中,所述第二編程指令允許所述應(yīng)用在所識(shí)別出的NUMA節(jié)點(diǎn)中蘇醒。
10.權(quán)利要求7的計(jì)算機(jī),其中,所述至少一個(gè)網(wǎng)絡(luò)連接當(dāng)中的每一個(gè)與分區(qū)相關(guān)聯(lián),并且其中第一編程指令定義用于識(shí)別出為之提供與特定分區(qū)相關(guān)聯(lián)的分組的NUMA節(jié)點(diǎn)的設(shè)施。
11.其上存儲(chǔ)有指令的至少一個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(1230),當(dāng)由通過(guò)至少一個(gè)網(wǎng)絡(luò)接口控制器(NIC) (1270)耦合到至少一個(gè)網(wǎng)絡(luò)(1271,1273)的包括多個(gè)處理器(1220)的計(jì)算機(jī)(1210)執(zhí)行時(shí),所述指令施行權(quán)利要求1-6中任一項(xiàng)所述的方法。
全文摘要
本發(fā)明的實(shí)施例可以改進(jìn)多處理器系統(tǒng)在處理通過(guò)網(wǎng)絡(luò)接收到的信息時(shí)的性能。舉例來(lái)說(shuō),一些實(shí)施例可以允許對(duì)系統(tǒng)進(jìn)行配置,從而可以把通過(guò)網(wǎng)絡(luò)接收到的信息分配在多個(gè)處理器當(dāng)中以進(jìn)行高效的處理。用戶(例如系統(tǒng)管理員)可以從多個(gè)配置選項(xiàng)當(dāng)中進(jìn)行選擇,其中每一個(gè)配置選項(xiàng)與處理通過(guò)網(wǎng)絡(luò)接收到的信息的一種特定模式相關(guān)聯(lián)。通過(guò)選擇配置選項(xiàng),用戶可以指明如何處理通過(guò)網(wǎng)絡(luò)接收到的信息,以便利用系統(tǒng)的特性,比如通過(guò)把系統(tǒng)上的各個(gè)處理器與特定NIC聯(lián)合。這樣,與NIC聯(lián)合的(多個(gè))處理器可以施行與由該NIC接收到的信息相關(guān)聯(lián)的與聯(lián)網(wǎng)有關(guān)的任務(wù)。如果初始聯(lián)合使得一個(gè)或更多處理器變得負(fù)荷過(guò)重,則可以把處理任務(wù)動(dòng)態(tài)地重新分配給其他處理器,以便獲得總體處理負(fù)荷在系統(tǒng)上的更加均勻的分配。
文檔編號(hào)G06F15/177GK102855216SQ20121030723
公開(kāi)日2013年1月2日 申請(qǐng)日期2012年8月27日 優(yōu)先權(quán)日2011年8月26日
發(fā)明者A.達(dá)巴格, M.斯里哈蘭, J.尼維爾特, G.斯里尼瓦桑, M.J.沙希德 申請(qǐng)人:微軟公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
唐山市| 莆田市| 西峡县| 松阳县| 左权县| 永嘉县| 尼玛县| 莫力| 新民市| 星座| 秦安县| 拜泉县| 大兴区| 神木县| 西畴县| 丽江市| 广东省| 石楼县| 太湖县| 罗江县| 鸡西市| 宾阳县| 休宁县| 富锦市| 遵化市| 嘉义县| 浦城县| 泸定县| 吴旗县| 嘉祥县| 扎鲁特旗| 蕉岭县| 晋宁县| 绥阳县| 乌恰县| 大石桥市| 永春县| 新乐市| 富蕴县| 家居| 邵武市|