一種平衡節(jié)點負(fù)載的方法及裝置制造方法
【專利摘要】本發(fā)明實施例公開了一種平衡節(jié)點的負(fù)載的方法及裝置,該方法應(yīng)用于眾核平臺,該方法包括:獲取眾核平臺中的第一核內(nèi)記錄的負(fù)載信息;對于任一消息,根據(jù)消息的目的地址信息和消息的源地址信息,確定將消息發(fā)送至目的地址信息對應(yīng)的核所需經(jīng)過的節(jié)點;根據(jù)消息的數(shù)量以及消息所需經(jīng)過的節(jié)點的信息,計算出完成所有消息的發(fā)送時,各個節(jié)點所需承載的負(fù)載量;將所承載的負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第一節(jié)點,從消息中確定所有經(jīng)過第一節(jié)點的第一消息;從第一消息的源核或目的核中選擇待遷移核;將待遷移核中的至少一個執(zhí)行程序分別遷移至從眾核平臺中選擇出的相應(yīng)的目標(biāo)核。采用本發(fā)明實施例提供的方法及裝置可以提高CPU的性能。
【專利說明】一種平衡節(jié)點負(fù)載的方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,更具體的說,是涉及一種平衡節(jié)點負(fù)載的方法及裝置。
【背景技術(shù)】
[0002] 隨著互聯(lián)網(wǎng)的發(fā)展,眾核平臺上核的數(shù)量越來越多,各個核之間通信的消息數(shù)量 也越來越多。下面以Mesh網(wǎng)絡(luò)芯片為例對眾核平臺上各個核之間的通信過程進行說明。
[0003] 請參閱圖1,為現(xiàn)有技術(shù)中二維Mesh網(wǎng)絡(luò)芯片內(nèi)布局的示意圖,每一個核都對應(yīng) 一節(jié)點Switch,節(jié)點Switch是各個核之間進行通信時消息的中轉(zhuǎn)站。節(jié)點Switch會根據(jù) 其接收到的消息的目的核地址與節(jié)點Switch自身的位置決定向哪個位置發(fā)送該消息。假 設(shè)一消息的源核地址為(0,0)、目的核地址為(1,1),節(jié)點Switch先比較X坐標(biāo)再比較y坐 標(biāo),則核(〇,〇)向核(1,1)發(fā)送消息的過程如下:核(0,0)將消息發(fā)送到節(jié)點Switch (0,0), 節(jié)點Switch (0,0)對比消息的目的核地址(1,1)與節(jié)點Switch (0,0)的位置,由于目的 核的X坐標(biāo)1大于節(jié)點Switch (0, 0)的X坐標(biāo)0,所以節(jié)點Switch (0, 0)將消息發(fā)送至節(jié) 點Switch (1,0);節(jié)點Switch (1,0)確定出該消息的目的核的X坐標(biāo)1等于節(jié)點Switch (1,0)的X坐標(biāo)1后,分析該消息的目的核的y坐標(biāo),由于目的核的y坐標(biāo)1大于節(jié)點Switch (1,〇)的y坐標(biāo)0,所以將該消息發(fā)送至節(jié)點Switch (1,1),節(jié)點Switch (1, 1)對比該消息 的目的核(1,1)的y坐標(biāo)1與節(jié)點(1,1)的y坐標(biāo)1相等,則把該消息發(fā)送到核(1,1 )。對 于節(jié)點Switch (0,0)與節(jié)點Switch (1,1)來說,上述消息為本地負(fù)載,對于節(jié)點Switch (1,0)來說上述消息為遠(yuǎn)端負(fù)載。
[0004] 發(fā)明人在實現(xiàn)本發(fā)明創(chuàng)造的過程中發(fā)現(xiàn),在核與核進行通信時,可能會造成一些 節(jié)點Switch的負(fù)載量過多,從而導(dǎo)致CPU的性能降低。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本發(fā)明提供了一種平衡節(jié)點負(fù)載的方法及裝置,以克服現(xiàn)有技術(shù)中由 于一些節(jié)點的負(fù)載量過多,導(dǎo)致CPU的性能降低的問題。
[0006] 為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
[0007] 第一方面,一種平衡節(jié)點負(fù)載的方法,應(yīng)用于眾核平臺,所述方法包括:獲取所述 眾核平臺中的第一核內(nèi)記錄的負(fù)載信息,所述第一核包括所述眾核平臺中已分配有執(zhí)行程 序的核,所述負(fù)載信息包括所述第一核中需要發(fā)送的消息的數(shù)量、所述消息的目的地址信 息和所述消息的源地址信息,所述執(zhí)行程序用于生成與所述消息相關(guān)的信息;對于任一所 述消息,根據(jù)所述消息的目的地址信息和所述消息的源地址信息,確定將所述消息發(fā)送至 所述目的地址信息對應(yīng)的核所需經(jīng)過的節(jié)點;根據(jù)所述消息的數(shù)量以及所述消息所需經(jīng)過 的節(jié)點的信息,計算出完成所有消息的發(fā)送時,各個節(jié)點所需承載的負(fù)載量;將所承載的 負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第一節(jié)點,從所述消息中確定所有經(jīng)過所述第一 節(jié)點的第一消息以及所述第一消息的源核地址信息對應(yīng)的源核或所述第一消息的目的核 地址信息對應(yīng)的目的核;從所述第一消息的源核或目的核中選擇待遷移核;將所述待遷移 核中的至少一個所述執(zhí)行程序分別遷移至從所述眾核平臺中選擇出的相應(yīng)的目標(biāo)核,以便 所述目標(biāo)核將所述至少一個所述執(zhí)行程序?qū)?yīng)的消息,發(fā)送至相應(yīng)的目的地址信息對應(yīng)的 核,所需經(jīng)過的節(jié)點不包括所述第一節(jié)點,所述目標(biāo)核對應(yīng)的節(jié)點所承載的負(fù)載量低于第 二預(yù)設(shè)負(fù)載值。 __
[0008] 在第一方面的第一種可能實現(xiàn)方式中,從所述眾核平臺中選擇目標(biāo)核包括:將所 承載的負(fù)載量低于所述第二預(yù)設(shè)負(fù)載值的節(jié)點作為第二節(jié)點,檢測所述第二節(jié)點對應(yīng)的核 的狀態(tài)標(biāo)識,所述狀態(tài)標(biāo)識包括空閑狀態(tài)標(biāo)識與非空閑狀態(tài)標(biāo)識;將狀態(tài)標(biāo)識為空閑狀態(tài) 標(biāo)識的核確定為第二核;從所述第二核中選擇出所述目標(biāo)核。 _
[0009] 在第一方面的第二種可能實現(xiàn)方式中,從所述眾核平臺中選擇目標(biāo)核包括:將所 承載的負(fù)載量低于所述第二預(yù)設(shè)負(fù)載值的節(jié)點作為第二節(jié)點,從所述第二節(jié)點中選擇所承 載的負(fù)載量最小的節(jié)點,并將所述所承載的負(fù)載量最小的節(jié)點對應(yīng)的核作為所述目標(biāo)核。
[0010] 結(jié)合第一方面、結(jié)合第一方面的第一種可能實現(xiàn)方式或者結(jié)合第一方面的第二種 可能實現(xiàn)方式,在第三種可能實現(xiàn)方式中,所述從所述第一消息的源核或目的核中選擇待 遷移核包括:比較各個所述第一消息的源核中消息的數(shù)量,獲得消息數(shù)量最多的源核,并將 所述消息數(shù)量最多的源核或所述消息數(shù)量最多的源核對應(yīng)的目的核作為所述待遷移核。
[0011] 在第一方面的第四種可能實現(xiàn)方式中,所述將所述待遷移核中的至少一個所述執(zhí) 行程序分別遷移至從所述眾核平臺中選擇出的相應(yīng)的目標(biāo)核包括:對于所述至少一個所 述執(zhí)行程序中的每一所述執(zhí)行程序,獲得所述執(zhí)行程序,將所述執(zhí)行程序設(shè)置于相應(yīng)的所 述目標(biāo)核,并根據(jù)相應(yīng)的所述目標(biāo)核的地址信息和所述執(zhí)行程序?qū)?yīng)的待遷移核的負(fù)載信 息,對所述目標(biāo)核的負(fù)載信息進行更新,將所述待遷移核中的所述執(zhí)行程序刪除。
[0012] 結(jié)合第一方面或者結(jié)合第一方面的第四種可能實現(xiàn)方式,在第五種可能實現(xiàn)方式 中,在所述將所述待遷移核中的至少一個所述執(zhí)行程序分別遷移至從所述眾核平臺中選擇 出的相應(yīng)的目標(biāo)核之后,還包括:將目的地址信息為所述待遷移核的地址信息的核,中的目 的地址信息更新為相應(yīng)的目標(biāo)核的地址信息。
[0013] 結(jié)合第一方面或者結(jié)合第一方面的第四種可能實現(xiàn)方式,在第六種可能實現(xiàn)方式 中,在將所述待遷移核中的至少一個所述執(zhí)行程序分別遷移至從所述眾核平臺中選擇出的 相應(yīng)的目標(biāo)核之后,還包括:在所述待遷移核中設(shè)置反饋程序,所述反饋程序用于在所述 待遷移核接收到其他核發(fā)送的消息時,向所述其他核發(fā)送更新目的核地址信息的指示;在 所述其他核中設(shè)置應(yīng)答程序,所述應(yīng)答程序用于在接收到所述更新目的核地址信息的指示 時,將所述其他核中與所述至少一個執(zhí)行程序?qū)?yīng)的消息的目的核地址信息更新為相應(yīng)目 標(biāo)核的地址信息。
[0014] 在第一方面的第七種可能實現(xiàn)方式中,所述第一核中還記錄有應(yīng)用程序類別,所 述將所述待遷移核中的至少一個所述執(zhí)行程序分別遷移至從所述眾核平臺中選擇出的相 應(yīng)的目標(biāo)核包括:獲得所述第一核中各個執(zhí)行程序的執(zhí)行程序類別;將同一執(zhí)行程序類別 的執(zhí)行程序設(shè)置于同一所述目標(biāo)核中;將所述第一核中所述同一執(zhí)行程序類別的執(zhí)行程序 清除。
[0015] 結(jié)合第一方面、結(jié)合第一方面的第一種可能實現(xiàn)方式、結(jié)合第一方面的第二種可 能實現(xiàn)方式、結(jié)合第一方面的第三種可能實現(xiàn)方式或者結(jié)合第一方面的第七種可能實現(xiàn)方 式,在第八種可能實現(xiàn)方式中,在將所述待遷移核中的至少一個所述執(zhí)行程序分別遷移至 從所述眾核平臺中選擇出的相應(yīng)的目標(biāo)核之前,還包括:確定所述第一節(jié)點所承載的負(fù)載 量中的本地負(fù)載量;當(dāng)所述第一節(jié)點的本地負(fù)載量不大于所述第一節(jié)點的預(yù)設(shè)本地負(fù)載值 時,執(zhí)行所述將所述待遷移核中的至少一個所述執(zhí)行程序分別遷移至從所述眾核平臺中選 擇出的相應(yīng)的目標(biāo)核的操作。
[0016] 在第一方面的第九種實現(xiàn)方式中,所述第一核記錄負(fù)載信息包括:在檢測到所述 第一核發(fā)送消息時,檢測所述消息的相關(guān)信息,所述相關(guān)信息包括所述消息的目的地址信 息和所述消息的源地址信息;確定所述消息的第一消息數(shù)量;當(dāng)已經(jīng)記錄有具有相同源地 址信息和目的地址信息的消息時,將所述具有相同源地址信息和目的地址信息的消息對應(yīng) 的消息的數(shù)量增加所述第一消息數(shù)量;當(dāng)未記錄有具有相同源地址信息和目的地址信息的 消息時,記錄所述第一核發(fā)送消息的目的地址信息和消息的源地址信息,并將其對應(yīng)的消 息數(shù)量設(shè)置為所述第一消息數(shù)量。
[0017] 結(jié)合第一方面的第九種實現(xiàn)方式,在第十種實現(xiàn)方式中,所述相關(guān)信息還包括所 述消息的長度信息,所述確定所述消息的第一消息數(shù)量包括:根據(jù)所述長度信息以及所述 眾核平臺中的各個節(jié)點一次發(fā)送消息的最大長度信息,計算出所述消息的第一消息數(shù)量。
[0018] 第二方面,一種平衡節(jié)點負(fù)載的裝置,應(yīng)用于眾核平臺,所述裝置包括:獲取模塊, 用于獲取所述眾核平臺中的第一核內(nèi)記錄的負(fù)載信息,所述第一核包括所述眾核平臺中已 分配有執(zhí)行程序的核,所述負(fù)載信息包括所述第一核中需要發(fā)送的消息的數(shù)量、所述消息 的目的地址信息和所述消息的源地址信息,所述執(zhí)行程序用于生成與所述消息相關(guān)的信 息;第一確定模塊,用于對于任一所述消息,根據(jù)所述獲得模塊獲得的所述消息的目的地址 信息和所述消息的源地址信息,確定將所述消息發(fā)送至所述目的地址信息對應(yīng)的核所需經(jīng) 過的節(jié)點;計算模塊,用于根據(jù)所述第一確定模塊確定出的所述消息的數(shù)量以及所述消息 所需經(jīng)過的節(jié)點的信息,計算出完成所有消息的發(fā)送時,各個節(jié)點所需承載的負(fù)載量;第二 確定模塊,用于將所承載的負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第一節(jié)點,從所述消 息中確定所有經(jīng)過所述第一節(jié)點的第一消息以及所述第一消息的源核地址信息對應(yīng)的源 核或所述第一消息的目的核地址信息對應(yīng)的目的核;第一選擇模塊,用于從所述第二確定 模塊確定出的所述第一消息的源核或目的核中選擇待遷移核;遷移模塊,用于將所述第- 選擇模塊選擇出的所述待遷移核中的至少一個所述執(zhí)行程序分別遷移至從所述眾核平臺 中選擇出的相應(yīng)的目標(biāo)核,以便所述目標(biāo)核將所述至少一個所述執(zhí)行程序?qū)?yīng)的消息,發(fā) 送至相應(yīng)的目的地址信息對應(yīng)的核,所需經(jīng)過的節(jié)點不包括所述第一節(jié)點,所述目標(biāo)核對 應(yīng)的節(jié)點所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值。
[0019] 在第二方面的第一種可能實現(xiàn)方式中,還包括:檢測模塊,用于將所承載的負(fù)載量 低于所述第二預(yù)設(shè)負(fù)載值的節(jié)點作為第二節(jié)點,檢測所述第二節(jié)點對應(yīng)的核的狀態(tài)標(biāo)識, 所述狀態(tài)標(biāo)識包括空閑狀態(tài)標(biāo)識與非空閑狀態(tài)標(biāo)識;第三確定模塊,用于將狀態(tài)標(biāo)識為空 閑狀態(tài)標(biāo)識的核確定為第二核;第二選擇模塊,用于從所述第二核中選擇出所述目標(biāo)核。
[0020] 在第二方面的第二種可能實現(xiàn)方式中,還包括:第三選擇模塊,用于將所承載的負(fù) 載量低于所述第二預(yù)設(shè)負(fù)載值的節(jié)點作為第二節(jié)點,從所述第二節(jié)點中選擇所承載的負(fù)載 量最小的節(jié)點,并將所述所承載的負(fù)載量最小的節(jié)點對應(yīng)的核作為所述目標(biāo)核。
[0021] 結(jié)合第二方面、結(jié)合第二方面的第一種可能實現(xiàn)方式或者結(jié)合第二方面的第二種 可能實現(xiàn)方式,在第三種可能實現(xiàn)方式中,所述第一選擇模塊包括:比較單元,用于比較各 個所述第一消息的源核中消息的數(shù)量,獲得消息數(shù)量最多的源核,并將所述消息數(shù)量最多 的源核或所述消息數(shù)量最多的源核對應(yīng)的目的核作為所述待遷移核。
[0022] 在第二方面的第四種可能實現(xiàn)方式中,所述遷移模塊具體用于:對于所述至少一 個所述執(zhí)行程序中的每一所述執(zhí)行程序,獲得所述執(zhí)行程序,將所述執(zhí)行程序設(shè)置于相應(yīng) 的所述目標(biāo)核,并根據(jù)相應(yīng)的所述目標(biāo)核的地址信息和所述執(zhí)行程序?qū)?yīng)的待遷移核的負(fù) 載信息,對所述目標(biāo)核的負(fù)載信息進行更新,將所述待遷移核中的所述執(zhí)行程序刪除。
[0023] 結(jié)合第二方面或者結(jié)合第二方面的第四種可能實現(xiàn)方式,在第五種可能實現(xiàn)方式 中,還包括:更新模塊,用于在將所述待遷移核中的至少一個所述執(zhí)行程序分別遷移至從所 述眾核平臺中選擇出的相應(yīng)的目標(biāo)核之后,將目的地址信息為所述待遷移核的地址信息的 核,中的目的地址信息更新為相應(yīng)的目標(biāo)核的地址信息。
[0024] 結(jié)合第二方面或者結(jié)合第二方面的第四種可能實現(xiàn)方式,在第六種可能實現(xiàn)方式 中,還包括:第一設(shè)置模塊,用于在所述待遷移核中設(shè)置反饋程序,所述反饋程序用于在所 述待遷移核接收到其他核發(fā)送的消息時,向所述其他核發(fā)送更新目的核地址信息的指示; 第二設(shè)置模塊,用于在所述其他核中設(shè)置應(yīng)答程序,所述應(yīng)答程序用于在接收到所述更新 目的核地址信息的指示時,將所述其他核中與所述至少一個執(zhí)行程序?qū)?yīng)的消息的目的核 地址信息更新為相應(yīng)目標(biāo)核的地址信息。
[0025] 在第二方面的第七種可能實現(xiàn)方式中,所述第一核中還記錄有應(yīng)用程序類別,所 述遷移模塊包括:獲得單元,用于獲得所述第一核中各個執(zhí)行程序的執(zhí)行程序類別;設(shè)置 單元,用于將同一執(zhí)行程序類別的執(zhí)行程序設(shè)置于同一所述目標(biāo)核中;清除單元,用于將所 述第一核中所述同一執(zhí)行程序類別的執(zhí)行程序清除。
[0026] 結(jié)合第二方面、結(jié)合第二方面的第一種可能實現(xiàn)方式、結(jié)合第二方面的第二種可 能實現(xiàn)方式、結(jié)合第二方面的第三種可能實現(xiàn)方式或者結(jié)合第二方面的第七種可能實現(xiàn)方 式,在第八種可能實現(xiàn)方式中,還包括:第三確定模塊,用于確定所述第一節(jié)點所承載的負(fù) 載量中的本地負(fù)載量;觸發(fā)模塊,用于當(dāng)所述第一節(jié)點的本地負(fù)載量不大于所述第一節(jié)點 的預(yù)設(shè)本地負(fù)載值時,觸發(fā)所述遷移模塊。
[0027] 在第二方面的第九種實現(xiàn)方式中,還包括:檢測模塊,用于在檢測到所述第一核發(fā) 送消息時,檢測所述消息的相關(guān)信息,所述相關(guān)信息包括所述消息的目的地址信息和所述 消息的源地址信息;第四確定模塊,用于確定所述消息的第一消息數(shù)量;增加模塊,用于當(dāng) 已經(jīng)記錄有具有相同源地址信息和目的地址信息的消息時,將所述具有相同源地址信息和 目的地址信息的消息對應(yīng)的消息的數(shù)量增加所述第一消息數(shù)量;第三設(shè)置模塊,用于當(dāng)未 記錄有具有相同源地址信息和目的地址信息的消息時,記錄所述第一核發(fā)送消息的目的地 址信息和消息的源地址信息,并將其對應(yīng)的消息數(shù)量設(shè)置為所述第一消息數(shù)量。
[0028] 結(jié)合第二方面的第九種實現(xiàn)方式,在第十種實現(xiàn)方式中,所述相關(guān)信息還包括所 述消息的長度信息,所述第四確定模塊包括:計算單元,用于根據(jù)所述長度信息以及所述眾 核平臺中的各個節(jié)點一次發(fā)送消息的最大長度信息,計算出所述消息的第一消息數(shù)量。
[0029] 經(jīng)由上述的技術(shù)方案可知,本發(fā)明實施例提供的平衡節(jié)點負(fù)載的方法中,第一核 中記錄有負(fù)載信息,負(fù)載信息包括第一核中需要發(fā)送的消息的數(shù)量、上述消息的目的地址 信息和上述消息的源地址信息,對于第一核需要發(fā)送的任一消息,可以根據(jù)第一核記錄的 各個消息的目的地址信息和源地址信息,確定出各個消息發(fā)送至相應(yīng)的目的地址對應(yīng)的核 所需經(jīng)過的節(jié)點,從而可以計算出第一核中所有消息發(fā)送完畢后,各個節(jié)點所需承載的負(fù) 載量,將所承載的負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第一節(jié)點,當(dāng)?shù)谝还?jié)點承載的 負(fù)載量大于第一預(yù)設(shè)負(fù)載值時,表明第一節(jié)點所承載的負(fù)載量過多,甚至超載,此時會影響 CPU的性能,從各個消息中確定所有經(jīng)過第一節(jié)點的第一消息以及第一消息的源核地址信 息對應(yīng)的源核或第一消息的目的核地址信息對應(yīng)的目的核,可以從第一消息的源核或目的 核中選擇待遷移核,將該待遷移核中的至少一個執(zhí)行程序分別遷移至從眾核平臺選擇出的 目標(biāo)核,由于目標(biāo)核對應(yīng)節(jié)點所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值,所以當(dāng)將上述至少一 個執(zhí)行程序遷移至目標(biāo)核后,目標(biāo)核對應(yīng)節(jié)點所承載的負(fù)載量在一個合適的范圍內(nèi),目標(biāo) 核將上述至少一個執(zhí)行程序?qū)?yīng)的消息發(fā)送中至相應(yīng)的目的地址信息對應(yīng)的核所需經(jīng)過 的節(jié)點不包括第一節(jié)點,這樣就可以降低第一節(jié)點的負(fù)載量,從而提升CPU的性能。
【專利附圖】
【附圖說明】
[0030] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù) 提供的附圖獲得其他的附圖。
[0031] 圖1為現(xiàn)有技術(shù)中二維Mesh網(wǎng)絡(luò)芯片內(nèi)布局的示意圖;
[0032]圖2為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的方法的流程示意圖;
[0033]圖3為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的方法的另一實施例的方法流程 不意圖;
[0034]圖4為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的方法又一實施例的方法流程示 意圖;
[0035]圖5為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的方法的另一方法流程示意圖; [0036]圖6為本發(fā)明實施例提供的一種根據(jù)默認(rèn)路由算法得到的各個節(jié)點的遠(yuǎn)端負(fù)載 量以及本地負(fù)載量的方法流程圖;
[0037]圖7為本發(fā)明實施例提供的平衡節(jié)點負(fù)載的方法中從眾核平臺中選擇目標(biāo)核的 一種實現(xiàn)方法的流程示意圖;
[0038]圖8為本發(fā)明實施例提供的平衡節(jié)點負(fù)載的方法中將所述待遷移核中的至少一 個上述執(zhí)行程序分別遷移至從眾核平臺中選擇出的相應(yīng)的目標(biāo)核的一種實現(xiàn)方法的流程 示意圖;
[0039]圖9為本發(fā)明實施例提供的平衡節(jié)點負(fù)載的方法中第一核記錄負(fù)載信息的一種 實現(xiàn)方法的流程示意圖;
[0040]圖1〇為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的示意圖;
[0041]圖11為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的裝置的結(jié)構(gòu)示意圖;
[0042]圖12為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的裝置的另一實施例的裝置結(jié)構(gòu) 示意圖;
[0043] 圖13為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的裝置又一實施例的裝置結(jié)構(gòu)示 意圖;
[0044]圖14為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的裝置的另一裝置結(jié)構(gòu)示意圖;
[0045]圖15為本發(fā)明實施例提供的終端的結(jié)構(gòu)示意圖。
【具體實施方式】
[0046] 下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;?本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。
[0047]請參閱附圖2,為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的方法的流程示意圖,該 方法應(yīng)用于眾核平臺,該方法包括:
[0048]步驟S2〇l :獲取該眾核平臺中的第一核內(nèi)記錄的負(fù)載信息。
[0049] 第一核包括眾核平臺中已分配有執(zhí)行程序的核,上述負(fù)載信息包括第一核中需要 發(fā)送的消息的數(shù)量、該消息的目的地址信息和該消息的源地址信息,上述執(zhí)行程序用于生 成與該消息相關(guān)的信息,與該消息相關(guān)的信息可以包括生成消息的指令、該消息或者接收 消息的指令。
[0050] 眾核平臺包括:空閑核與已分配有執(zhí)行程序的核??臻e核是指未分配有執(zhí)行程序 的核。
[0051] 第一核可以包括一個或多個核,將多個核中的每一個核稱為核A,則核A中都記錄 有核A需要發(fā)送的消息的數(shù)量、核A需要發(fā)送消息的目的地址信息和核A需要發(fā)送消息的 源地址信息,其中需要發(fā)送消息的源地址信息就是核A的地址信息。
[0052]步驟S202 :對于任一上述消息,根據(jù)上述消息的目的地址信息和上述消息的源地 址信息,確定將上述消息發(fā)送至目的地址信息對應(yīng)的核所需經(jīng)過的節(jié)點。
[0053]步驟S2〇3 :根據(jù)上述消息的數(shù)量以及上述消息所需經(jīng)過的節(jié)點的信息,計算出完 成所有消息的發(fā)送時,各個節(jié)點所需承載的負(fù)載量。
[0054] 步驟S204 :將所承載的負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第一節(jié)點,從上 述消息中確定所有經(jīng)過第一節(jié)點的第一消息以及第一消息的源核地址信息對應(yīng)的源核或 第一消息的目的核地址信息對應(yīng)的目的核。
[0055]第一預(yù)設(shè)負(fù)載值可以為節(jié)點的消息負(fù)載閾值,即節(jié)點所能承載消息數(shù)量的最大 值,當(dāng)然,第一預(yù)設(shè)負(fù)載值也可以低于節(jié)點的消息負(fù)載閾值。
[0056] 第一核可以包括一個或多個核,每一個核對應(yīng)的第一預(yù)設(shè)負(fù)載值可能不同,也可 能相同,每一個核的第一預(yù)設(shè)負(fù)載值得大小可以由眾核平臺分配,在此本發(fā)明不作具體限 定。
[0057] 步驟S205 :從第一消息的源核或目的核中選擇待遷移核。
[0058] 步驟S206 :將待遷移核中的至少一個執(zhí)行程序分別遷移至從眾核平臺中選擇出 的相應(yīng)的目標(biāo)核,以便目標(biāo)核將至少一個執(zhí)行程序?qū)?yīng)的消息,發(fā)送至相應(yīng)的目的地址信 息對應(yīng)的核,所需經(jīng)過的節(jié)點不包括第一節(jié)點。
[0059] 待遷移核可以包括一個或多個執(zhí)行程序,可以將待遷移核中需要遷移的執(zhí)行程 序分別遷移至不同的核中,也可以將待遷移核中需要遷移的執(zhí)行程序遷移至同一核中,也 可以將待遷移核中需要遷移的執(zhí)行程序部分遷移至同一個核中,部分分別遷移至不同的核 中,本發(fā)明實施例對此不作具體限定。
[0060] 綜上,目標(biāo)核可能是一個核,也可能是多個核,但是目標(biāo)核對應(yīng)的節(jié)點所承載的負(fù) 載量低于第二預(yù)設(shè)負(fù)載值。
[0061] 當(dāng)目標(biāo)核對應(yīng)的節(jié)點所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值時,可能表明需要經(jīng)由 目標(biāo)核對應(yīng)的節(jié)點轉(zhuǎn)發(fā)的消息負(fù)載數(shù)量低于該目標(biāo)核對應(yīng)節(jié)點的第一預(yù)設(shè)負(fù)載值或者目 標(biāo)核對應(yīng)的節(jié)點所承載的負(fù)載量為空,優(yōu)選的,目標(biāo)核為空閑核。
[0062] 第二預(yù)設(shè)負(fù)載值可以與第一預(yù)設(shè)負(fù)載值相同,也可以低于第一預(yù)設(shè)負(fù)載值。
[0063] 本發(fā)明實施例提供的平衡節(jié)點負(fù)載的方法中,第一核中記錄有負(fù)載信息,負(fù)載信 息包括第一核中需要發(fā)送的消息的數(shù)量、上述消息的目的地址信息和上述消息的源地址信 息,對于第一核需要發(fā)送的任一消息,可以根據(jù)第一核記錄的各個消息的目的地址信息和 源地址信息,確定出各個消息發(fā)送至相應(yīng)的目的地址對應(yīng)的核所需經(jīng)過的節(jié)點,從而可以 計算出第一核中所有消息發(fā)送完畢后,各個節(jié)點所需承載的負(fù)載量,將所承載的負(fù)載量超 過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第一節(jié)點,當(dāng)?shù)谝还?jié)點承載的負(fù)載量大于第一預(yù)設(shè)負(fù)載值 時,表明第一節(jié)點所承載的負(fù)載量過多,甚至超載,此時會影響CPU的性能,從各個消息中 確定所有經(jīng)過第一節(jié)點的第一消息以及第一消息的源核地址信息對應(yīng)的源核或第一消息 的目的核地址信息對應(yīng)的目的核,可以從第一消息的源核或目的核中選擇待遷移核,將該 待遷移核中的至少一個執(zhí)行程序分別遷移至從眾核平臺選擇出的目標(biāo)核,由于目標(biāo)核對應(yīng) 節(jié)點所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值,所以當(dāng)將上述至少一個執(zhí)行程序遷移至目標(biāo)核 后,目標(biāo)核對應(yīng)節(jié)點所承載的負(fù)載量在一個合適的范圍內(nèi),目標(biāo)核將上述至少一個執(zhí)行程 序?qū)?yīng)的消息發(fā)送中至相應(yīng)的目的地址信息對應(yīng)的核所需經(jīng)過的節(jié)點不包括第一節(jié)點,這 樣就可以降低第一節(jié)點的負(fù)載量,從而提升CPU的性能。
[0064] 請參閱圖3,為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的方法的另一實施例的方 法流程示意圖,該方法應(yīng)用于眾核平臺,該方法包括:
[0065] 步驟S301 :獲取眾核平臺中的第一核內(nèi)記錄的負(fù)載信息。
[0066] 第一核為眾核平臺中已分配有執(zhí)行程序的核,上述負(fù)載信息包括第一核中需要發(fā) 送的消息的數(shù)量、該消息的目的地址信息和該消息的源地址信息,上述執(zhí)行程序用于生成 與上述消息相關(guān)的信息。
[0067] 步驟S302 :對于任一消息,根據(jù)上述消息的目的地址信息和上述消息的源地址信 息,確定將上述消息發(fā)送至目的地址信息對應(yīng)的核所需經(jīng)過的節(jié)點。
[0068] 步驟S303 :根據(jù)上述消息的數(shù)量以及上述消息所需經(jīng)過的節(jié)點的信息,計算出完 成所有消息的發(fā)送時,各個節(jié)點所需承載的負(fù)載量。
[0069] 步驟S304 :將所承載的負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第一節(jié)點,從上 述消息中確定所有經(jīng)過第一節(jié)點的第一消息以及第一消息的源核地址信息對應(yīng)的源核或 第一消息的目的核地址信息對應(yīng)的目的核。
[0070] 步驟S305 :從第一消息的源核或目的核中選擇待遷移核。
[0071] 步驟S3〇6 :將待遷移核中的至少一個執(zhí)行程序分別遷移至從眾核平臺中選擇出 的相應(yīng)的目標(biāo)核,以便目標(biāo)核將至少一個執(zhí)行程序?qū)?yīng)的消息,發(fā)送至相應(yīng)的目的地址信 息對應(yīng)的核,所需經(jīng)過的節(jié)點不包括所述第一節(jié)點。
[0072]由于待遷移核中的至少一個執(zhí)行程序分別遷移至眾核平臺中選擇出的相應(yīng)的目 的核,所以接收到某一執(zhí)行程序的目的核可以執(zhí)行與該某一執(zhí)行程序?qū)?yīng)的功能。
[0073] 目標(biāo)核對應(yīng)的節(jié)點所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值。
[0074] 步驟S307 :將目的地址信息為待遷移核的地址信息的核中的目的地址信息更新 為相應(yīng)的目標(biāo)核的地址信息。
[0075] 如果沒有步驟S307,假設(shè)執(zhí)行程序A遷移至目標(biāo)核A,且源核A需要將消息A發(fā)送 至包含執(zhí)行程序A的核,那么執(zhí)行程序A對應(yīng)的待接收消息的目的地址信息為目標(biāo)核A的 地址信息,由于源核A中消息A對應(yīng)的目的核地址信息并沒有改變,仍為待遷移核,所以當(dāng) 消息A發(fā)送至待遷移核時,待遷移核可以向源核A發(fā)送"目標(biāo)地址信息已經(jīng)更新為目標(biāo)核A" 的消息,以便源核A可以正確的將消息A發(fā)送至目標(biāo)核A中,即當(dāng)待遷移核中的至少一個執(zhí) 行程序分別遷移至相應(yīng)的目標(biāo)核后,還需要向其他源核發(fā)送相應(yīng)的變更地址信息的消息。
[0076] 步驟S307可以避免待遷移核發(fā)送目標(biāo)地址信息己經(jīng)更新為目標(biāo)核A的消息,因為 步驟S307是主動將源核A中消息A對應(yīng)的目的核地址信息進行了更新,所以當(dāng)源核A發(fā)送 消息A時,無需再次發(fā)送至待遷移核,從而減輕了節(jié)點的所承載的負(fù)載量,進一步的提高了 CPU的效率。
[0077] 請參閱圖4,為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的方法又一實施例的方法 流程示意圖,該方法應(yīng)用于眾核平臺,該方法包括:
[0078] 步驟S401 :獲取眾核平臺中的第一核內(nèi)記錄的負(fù)載信息。
[0079] 第一核為眾核平臺中已分配有執(zhí)行程序的核,上述負(fù)載信息包括第一核中需要發(fā) 送的消息的數(shù)量、該消息的目的地址信息和該消息的源地址信息,上述執(zhí)行程序用于生成 與上述消息相關(guān)的信息。
[0080] 步驟S402 :對于任一消息,根據(jù)上述消息的目的地址信息和上述消息的源地址信 息,確定將上述消息發(fā)送至目的地址信息對應(yīng)的核所需經(jīng)過的節(jié)點。
[0081] 步驟S403 :根據(jù)上述消息的數(shù)量以及上述消息所需經(jīng)過的節(jié)點的信息,計算出完 成所有消息的發(fā)送時,各個節(jié)點所需承載的負(fù)載量。
[0082] 步驟S404 :將所承載的負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第一節(jié)點,從上 述消息中確定所有經(jīng)過第一節(jié)點的第一消息以及第一消息的源核地址信息對應(yīng)的源核或 第一消息的目的核地址信息對應(yīng)的目的核。
[0083] 步驟S405 :從第一消息的源核或目的核中選擇待遷移核。
[0084] 步驟S406 :將待遷移核中的至少一個執(zhí)行程序分別遷移至從眾核平臺中選擇出 的相應(yīng)的目標(biāo)核,以便目標(biāo)核將至少一個執(zhí)行程序?qū)?yīng)的消息,發(fā)送至相應(yīng)的目的地址信 息對應(yīng)的核,所需經(jīng)過的節(jié)點不包括所述第一節(jié)點。
[0085]目標(biāo)核對應(yīng)的節(jié)點所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值。
[0086] 步驟S4〇7 :在待遷移核中設(shè)置反饋程序,反饋程序用于在待遷移核接收到其他核 發(fā)送的消息時,向上述其他核發(fā)送更新目的核地址信息的指示。
[0087] 步驟S408 :在上述其他核中設(shè)置應(yīng)答程序,應(yīng)答程序用于在接收到所述更新目的 核地址信息的指示時,將上述其他核中與上述至少一個執(zhí)行程序?qū)?yīng)的消息的目的核地址 信息更新為相應(yīng)目標(biāo)核的地址信息。
[0088] 本發(fā)明實施例在待遷移核中設(shè)置反饋程序,在上述其他核中設(shè)置應(yīng)答程序,可以 使上述其他核只需要向待遷移核發(fā)送一次消息,即可根據(jù)待遷移核反饋的更新目的核地址 信息的指示,對相應(yīng)的消息的目的核地址信息進行更新,不必每次都向待遷移核發(fā)送消息, 從而減輕了節(jié)點所承載的負(fù)載量,進一步提高了 CPU的性能。
[0089] 請參閱圖5,為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的方法的另一方法流程示 意圖,該方法應(yīng)用于眾核平臺,該方法包括:
[0090] 步驟S501 :獲取眾核平臺中的第一核內(nèi)記錄的負(fù)載信息。
[0091] 第一核為眾核平臺中已分配有執(zhí)行程序的核,上述負(fù)載信息包括第一核中需要發(fā) 送的消息的數(shù)量、該消息的目的地址信息和該消息的源地址信息,上述執(zhí)行程序用于生成 與上述消息相關(guān)的信息。
[0092] 步驟S5〇2 :對于任一消息,根據(jù)上述消息的目的地址信息和上述消息的源地址信 息,確定將上述消息發(fā)送至目的地址信息對應(yīng)的核所需經(jīng)過的節(jié)點。
[0093] 步驟S503 :根據(jù)上述消息的數(shù)量以及上述消息所需經(jīng)過的節(jié)點的信息,計算出完 成所有消息的發(fā)送時,各個節(jié)點所需承載的負(fù)載量。
[0094]步驟S504 :將所承載的負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第一節(jié)點,從上 述消息中確定所有經(jīng)過第一節(jié)點的第一消息以及第一消息的源核地址信息對應(yīng)的源核或 第一消息的目的核地址信息對應(yīng)的目的核。
[0095] 步驟S505 :從第一消息的源核或目的核中選擇待遷移核。
[0096] 步驟S506 :確定第一節(jié)點所承載的負(fù)載量中的本地負(fù)載量。
[0097]可以根據(jù)記錄的每一核中的消息對應(yīng)的源核地址信息、目的核地址信息以及消息 的數(shù)量,確定出各個節(jié)點的本地負(fù)載量以及遠(yuǎn)端負(fù)載量。下面舉一根據(jù)默認(rèn)路由算法得到 各個節(jié)點所承載的負(fù)載量的過程,以二維Mesh網(wǎng)絡(luò)且節(jié)點先比較X坐標(biāo)再比較y坐標(biāo)為例 進行說明(當(dāng)然也可以先考慮y坐標(biāo),在考慮X坐標(biāo),該過程與先考慮 X坐標(biāo),在考慮y坐標(biāo) 相同,此處不再一一贅述)。
[0098]消息1的源核地為(0,0),目的核地址為(1,1),消息1的數(shù)量為10。消息2的源 核地址為(0, 0),目的核地址為(〇, 〇,消息2的數(shù)量為500。消息3的源核地址為(丨,丨),目 的核地址為(0, 0),消息3的數(shù)量為700。消息4的源核地址為(1,1),目的核地址為(0, 1 ), 消息4的數(shù)量為600。
[00"]請參閱圖6,為本發(fā)明實施例提供的一種根據(jù)默認(rèn)路由算法得到的各個節(jié)點的遠(yuǎn) 端負(fù)載量以及本地負(fù)載量的方法流程圖,該方法包括:
[0100]步驟S601 :根據(jù)記錄的消息1的源核地址(〇, 〇)、目的核地址(丨,丨)以及消息1的 數(shù)量10,將節(jié)點(0, 0)的本地消息負(fù)載加10,并比較節(jié)點(0, 0)的地址與目的核地址(丨,i ), 得知消息1向右發(fā)送。 ^101]步驟S602 :比較節(jié)點(1,0)與目的核對應(yīng)的節(jié)點(1,1),得知消息1向下發(fā)送,將 節(jié)點(1,〇)的遠(yuǎn)端負(fù)載加10,比較節(jié)點(1,;〇與目的核(1,υ,得知將消息1發(fā)送至目的核 (1,1)。
[0102]步驟S6〇3 :節(jié)點(1,1)收到消息后,經(jīng)過對比目的核的地址信息與節(jié)點(丨,丨)的地 址信息一致,把消息發(fā)送到核(hl),并將節(jié)點(1,η的本地消息負(fù)載加 1〇。
[0=3]對于消息2、消息3以及消息4,可以執(zhí)行與步驟S601至步驟S603相應(yīng)的步驟,從 而獲得各個節(jié)點的本地負(fù)載量以及遠(yuǎn)端負(fù)載量,在此本發(fā)明實施例對此不作具體限定。 [0104]根據(jù)上述方法可以得出,核(〇,〇)的遠(yuǎn)端消息負(fù)載的數(shù)量為〇,本地負(fù)載量為 1210 ;核(1,〇)的遠(yuǎn)端消息負(fù)載的數(shù)量為1〇,本地負(fù)載量為〇 ;核(〇, υ的遠(yuǎn)端消息負(fù)載的 數(shù)量為1300,本地負(fù)載量為5〇0 ;核α, 1)的遠(yuǎn)端消息負(fù)載的數(shù)量為0,本地負(fù)載量為1310。
[0105] 步驟S506可以在步驟S505之前,也可在步驟S505之后。
[0106] 步驟S5〇7 :當(dāng)?shù)谝还?jié)點的本地負(fù)載量不大于第一節(jié)點的預(yù)設(shè)本地負(fù)載值時,執(zhí)行 將待遷移核中的至少一個上述執(zhí)行程序分別迀移至從眾核平臺中選擇出的相應(yīng)的目標(biāo)核 的操作。
[0107] 因為當(dāng)?shù)谝还?jié)點的本地負(fù)載量大于第一節(jié)點的預(yù)設(shè)本地負(fù)載值時,很難甚至是不 能將第一節(jié)點的本地負(fù)載量調(diào)低,所以當(dāng)?shù)谝还?jié)點的本地負(fù)載量大于第一節(jié)點的預(yù)設(shè)本地 負(fù)載值時,無需在執(zhí)行步驟S508。當(dāng)然也可以繼續(xù)執(zhí)行步驟S508,以便將第一節(jié)點的遠(yuǎn)端 負(fù)載量調(diào)低一些,從而緩解第一節(jié)點負(fù)載量過多的狀態(tài)。
[0108] 步驟S507可以在步驟S505之前,也可在步驟S505之后,對此本發(fā)明實施例對此 不作具體限定,但是步驟S507必須在步驟S 5〇6之后。
[0109] 步驟S508 :將待遷移核中的至少一個執(zhí)行程序分別迀移至從眾核平臺中選擇出 的相應(yīng)的目標(biāo)核,以便目標(biāo)核將至少一個執(zhí)行程序?qū)?yīng)的消息,發(fā)送至相應(yīng)的目的地址信 息對應(yīng)的核,所需經(jīng)過的節(jié)點不包括所述第一節(jié)點。
[0110] 目標(biāo)核對應(yīng)的節(jié)點所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值。
[0111] 可以理解的是,上述任一實施例中當(dāng)將待遷移核中的至少一個執(zhí)行程序分別遷移 至相應(yīng)的目標(biāo)核中后,可能導(dǎo)致目標(biāo)核對應(yīng)的節(jié)點承載的負(fù)載量過多,所以可以將第二預(yù) 設(shè)負(fù)載值設(shè)置在一個合理的范圍內(nèi),以便當(dāng)相應(yīng)的執(zhí)行程序遷移至目標(biāo)核后,目標(biāo)核對應(yīng) 的節(jié)點所承載的負(fù)載量仍低于第一預(yù)設(shè)負(fù)載值,或者在將待遷移核中的至少一個執(zhí)行程序 分別遷移至相應(yīng)的目標(biāo)核中后,檢查目標(biāo)核所承載的負(fù)載量是否大于其對應(yīng)的第一預(yù)設(shè)負(fù) 載值,如果大于,則可以將目標(biāo)核中的執(zhí)行程序進行遷移,或者取消將待遷移核中的執(zhí)行程 序遷移至目標(biāo)核的步驟,以使待遷移核重新選擇其他目標(biāo)核。
[0112] 上述任一實施例中從眾核平臺中選擇目標(biāo)核的方法有多種,請參閱圖7,為本發(fā)明 實施例提供的平衡節(jié)點負(fù)載的方法中從眾核平臺中選擇目標(biāo)核的一種實現(xiàn)方法的流程示 意圖,該實現(xiàn)方法包括:
[0113] 步驟S701 :將所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值的節(jié)點作為第二節(jié)點,檢測第 二節(jié)點對應(yīng)的核的狀態(tài)標(biāo)識。 _
[0114] 狀態(tài)標(biāo)識包括空閑狀態(tài)標(biāo)識與非空閑狀態(tài)標(biāo)識。
[0115] 步驟S702 :將狀態(tài)標(biāo)識為空閑狀態(tài)標(biāo)識的核確定為第二核。
[0116] 步驟S703 :從第二核中選擇出目標(biāo)核。 -
[0117] 本發(fā)明實施例選擇狀態(tài)標(biāo)識為空閑狀態(tài)標(biāo)識的空閑核作為目標(biāo)核,這樣在空閑核 接收執(zhí)行程序后,空閑核所承載的負(fù)載量一般不會超過其對應(yīng)的第一預(yù)設(shè)負(fù)載值,所以優(yōu) 選的目標(biāo)核為空閑核。 _
[0118] 本發(fā)明實施例提供的平衡節(jié)點負(fù)載的方法中從眾核平臺中選擇目標(biāo)核的另一種 實現(xiàn)方法為:將所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值的節(jié)點作為第二、節(jié)點,從第二節(jié)點中 選擇所承載的負(fù)載量最小的節(jié)點,并將所承載的負(fù)載量最小的節(jié)點對應(yīng)的核作為目標(biāo)核。
[0119] 當(dāng)上述實施例中"從眾核平臺中選擇出的相應(yīng)的目標(biāo)核"為一個目標(biāo)核時,目標(biāo)核 可以為上述獅細(xì)減量最小的節(jié)點對應(yīng)賊;當(dāng)上述實酬巾"從嫌平臺中選擇出 的相應(yīng)的目標(biāo)核,,為至少一個核時,可以將第二節(jié)點所承載的負(fù)載量進行排序,然后選擇所 承載的負(fù)載量相對較少的核作為目標(biāo)核。
[0120] 上述任一實施例中從第一消息的源核或目的核中選擇待遷移核的方法有多種,本 發(fā)明實施例提供的平衡節(jié)點負(fù)載的方法中從第一消息的源核或目的核中選擇待遷移核的 一種實現(xiàn)方法為:比較各個第一消息的源核中消息的數(shù)量,獲得消息數(shù)量最多的源核,并將 消息數(shù)量最多的源核或消息數(shù)量最多的源核對應(yīng)的目的核作為待遷移核。
[0121] 假設(shè)第一消息包括:消息B、消息C和消息D,消息B對應(yīng)的源核為源核B、目的核 為目的核B,消息C對應(yīng)的源核為源核C、目的核為目的核C,消息D對應(yīng)的源核為源核D、目 的核為目的核D,且消息B的數(shù)量為10、消息C的數(shù)量為20、消息D的數(shù)量為30,假設(shè)第一 節(jié)點所承載的負(fù)載量超過其對應(yīng)的第一預(yù)設(shè)負(fù)載值為30,那么如果將消息D對應(yīng)的源核D 或目的核D作為待遷移核,只需要遷移一個待遷移核即可使第一節(jié)點所承載的負(fù)載不大于 第一預(yù)設(shè)負(fù)載值,如果將源核B或目的核B作為待遷移核,那么還需要將源核c或目的核C 作為待遷移核,即需要至少遷移兩次。
[0122] 上述任一實施例中將待遷移核中的至少一個上述執(zhí)行程序分別遷移至從眾核平 臺中選擇出的相應(yīng)的目標(biāo)核的方法有多種,本發(fā)明實施例提供的平衡節(jié)點負(fù)載的方法中將 待遷移核中的至少一個上述執(zhí)行程序分別遷移至從眾核平臺中選擇出的相應(yīng)的目標(biāo)核的 一種實現(xiàn)方法為:對于上述至少一個上述執(zhí)行程序中的每一執(zhí)行程序,獲得該執(zhí)行程序,將 該執(zhí)行程序設(shè)置于相應(yīng)的目標(biāo)核,并根據(jù)相應(yīng)的目標(biāo)核的地址信息和該執(zhí)行程序?qū)?yīng)的待 遷移核的負(fù)載信息,對目標(biāo)核的負(fù)載信息進行更新,將待遷移核中的該執(zhí)行程序刪除。
[0123] 為了節(jié)省各個核中的空間,優(yōu)選地,可以將待遷移核中的執(zhí)行程序刪除。
[0124] 上述任一實施例中的第一核中還可以記錄有應(yīng)用程序類別,此時上述任一實施例 中將待遷移核中的至少一個上述執(zhí)行程序分別遷移至從眾核平臺中選擇出的相應(yīng)的目標(biāo) 核的實現(xiàn)方法有多種,請參閱圖8,為本發(fā)明實施例提供的平衡節(jié)點負(fù)載的方法中將所述待 遷移核中的至少一個上述執(zhí)行程序分別遷移至從眾核平臺中選擇出的相應(yīng)的目標(biāo)核的一 種實現(xiàn)方法的流程示意圖,該實現(xiàn)方法包括:
[0125] 步驟S801 :獲得第一核中各個執(zhí)行程序的執(zhí)行程序類別。
[0126] 步驟S802 :將同一執(zhí)行程序類別的執(zhí)行程序設(shè)置于同一目標(biāo)核中。
[0127] 步驟S803 :將第一核中上述同一執(zhí)行程序類別的執(zhí)行程序清除。
[0128] 上述任一實施例中第一核記錄負(fù)載信息的方法有多種,請參閱圖9,為本發(fā)明實施 例提供的平衡節(jié)點負(fù)載的方法中第一核記錄負(fù)載信息的一種實現(xiàn)方法的流程示意圖,該實 現(xiàn)方法包括:
[0129] 步驟S901 :在檢測到第一核發(fā)送消息時,檢測上述消息的相關(guān)信息。
[0130] 上述相關(guān)信息包括上述消息的目的地址信息和上述消息的源地址信息。
[0131] 步驟S902 :確定上述消息的第一消息數(shù)量。
[0132] 上述相關(guān)信息還可以包括上述消息的長度信息,此時確定上述消息的第一消息數(shù) 量的方法可以為根據(jù)上述長度信息以及眾核平臺中的各個節(jié)點一次發(fā)送消息的最大長度 信息,計算出上述消息的第一消息數(shù)量。
[0133] 將上述消息的長度信息除以上述最大長度信息所得的商進行向上取整,得到的 值,可以為第一消息數(shù)量。
[0134] 當(dāng)然根據(jù)不同的實際情況,相關(guān)信息可以不包括上述消息的長度信息。
[0135]步驟S9〇3:當(dāng)已經(jīng)記錄有具有相同源地址信息和目的地址信息的消息時,將上述 具有相同源地址信息和目的地址信息的消息對應(yīng)的消息的數(shù)量加所述第一消息數(shù)量。
[0136] 步驟S904 :當(dāng)未記錄有具有相同源地址信息和目的地址信息的消息時,記錄所述 第一核發(fā)送消息的目的地址信息和消息的源地址信息,并將其對應(yīng)的消息數(shù)量設(shè)置為所述 第一消息數(shù)量。
[0137] 上述任一實施例中,優(yōu)選的,可以周期性的執(zhí)行實施例中的各個步驟,或者設(shè)定預(yù) 設(shè)時間,在當(dāng)前時間到達(dá)預(yù)設(shè)時間時,執(zhí)行上述實施例中的步驟。
[0138] 為了本領(lǐng)域人員更加理解本發(fā)明實施例,下面舉一具體例子對平衡節(jié)點負(fù)載的過 程進行說明。
[0139] 請參閱圖10,為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的示意圖。
[0140] 圖10中包括節(jié)點(〇,〇)、節(jié)點(1,0)、節(jié)點(2,0)、節(jié)點(0, 1)、節(jié)點(1,1)、節(jié)點 (2, 1)、節(jié)點(0, 2)、節(jié)點(1,2)以及節(jié)點(2, 2),圖10中還畫出了消息記錄單元在內(nèi)存中為 各個節(jié)點保留的空間,用箭頭的方式表示節(jié)點與內(nèi)存空間的對應(yīng)關(guān)系。圖10中僅用位置坐 標(biāo)表示各個節(jié)點的地址信息。
[0141] 假設(shè)節(jié)點(1,2)的遠(yuǎn)端消息負(fù)載閾值小于節(jié)點(1,2)的遠(yuǎn)端負(fù)載量,即節(jié)點(1, 2) 過載,而節(jié)點(1,2)包括10條遠(yuǎn)端消息負(fù)載,這10條遠(yuǎn)端消息是由核(0,0)發(fā)送至核 (2, 2),假設(shè)該10條遠(yuǎn)端消息的傳輸路徑為:核(0,0)、節(jié)點(〇,1)、節(jié)點(0, 2)、節(jié)點(1,2)、 節(jié)點(2,2)以及核(2,2),可知該消息從核(0,0)發(fā)送至核(2,2)的過程中需要經(jīng)過節(jié)點 (1,2),為了使節(jié)點(1,2)不過載,此時可以選擇一空閑節(jié)點(2,0),將節(jié)點(2, 2)的執(zhí)行程 序(或?qū)⒐?jié)點(0, 0)的執(zhí)行程序)遷移至節(jié)點(2,0),以使該10條遠(yuǎn)端消息的傳輸路徑為:核 (〇, 0)、節(jié)點(1,〇)以及節(jié)點(2, 0),這樣可以避免這10條消息經(jīng)過節(jié)點(1,2),從而可以使 節(jié)點(1,2)上的遠(yuǎn)端負(fù)載量降低,且使節(jié)點(2, 0)的遠(yuǎn)端消息負(fù)載從0變?yōu)?0,從而平衡了 節(jié)點的消息負(fù)載。
[0142] 在改變傳輸路徑之后,傳輸路徑中出現(xiàn)了新的節(jié)點,例如節(jié)點(1,〇),這個節(jié)點很 有可能出現(xiàn)負(fù)載量過多的情況,所以優(yōu)選的,再次計算各個節(jié)點所承載的負(fù)載量,并判斷各 個節(jié)點是否超過其對應(yīng)的第一預(yù)設(shè)負(fù)載值
[0143] 上述實施例中都是以二維的Mesh網(wǎng)絡(luò)為例進行說明的,本發(fā)明實施例還可以應(yīng) 用于三維Mesh網(wǎng)絡(luò)以及至少三維Mesh網(wǎng)絡(luò)等等。
[0144] 現(xiàn)有技術(shù)中的核分為兩種,一種是宏內(nèi)核,一種是微內(nèi)核,上述實施例可以應(yīng)用于 這兩種內(nèi)核。
[0145] 上述本發(fā)明公開的實施例中詳細(xì)描述了方法,對于本發(fā)明的方法可采用多種形式 的裝置實現(xiàn),因此本發(fā)明還公開了多種裝置,下面給出具體的實施例進行詳細(xì)說明;
[0146] 請參閱圖11,為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的裝置的結(jié)構(gòu)示意圖,該 裝置應(yīng)用于眾核平臺,該裝置包括:
[0147] 獲取模塊1101、第一確定模塊1102、計算模塊1103、第二確定模塊11〇4、第一選擇 模塊1105以及遷移模塊1106,其中:
[0148] 獲取模塊1101,用于獲取上述眾核平臺中的第一核內(nèi)記錄的負(fù)載信息。
[0149] 第一核包括上述眾核平臺中已分配有執(zhí)行程序的核,負(fù)載信息包括第一核中需要 發(fā)送的消息的數(shù)量、上述消息的目的地址信息和上述消息的源地址信息,執(zhí)行程序用于生 成與上述消息相關(guān)的信息。
[0150] 第一確定模塊1102,用于對于任一上述消息,根據(jù)獲得模塊1101獲得的上述消息 的目的地址信息和上述消息的源地址信息,確定將上述消息發(fā)送至上述目的地址信息對應(yīng) 的核所需經(jīng)過的節(jié)點。
[0151] 計算模塊1103,用于根據(jù)第一確定模塊11〇2確定出的上述消息的數(shù)量以及上述 消息所需經(jīng)過的節(jié)點的信息,計算出完成所有消息的發(fā)送時,各個節(jié)點所需承載的負(fù)載量。
[0152] 第二確定模塊1104,用于將所承載的負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第 一節(jié)點,從上述消息中確定所有經(jīng)過第一節(jié)點的第一消息以及第一消息的源核地址信息對 應(yīng)的源核或第一消息的目的核地址信息對應(yīng)的目的核。
[0153] 第一選擇模塊1105,用于從第二確定模塊1104確定出的第一消息的源核或目的 核中選擇待遷移核。
[0154] 遷移模塊1106,用于將第一選擇模塊1105選擇出的待遷移核中的至少一個上述 執(zhí)行程序分別遷移至從上述眾核平臺中選擇出的相應(yīng)的目標(biāo)核,以便上述目標(biāo)核將上述至 少一個上述執(zhí)行程序?qū)?yīng)的消息,發(fā)送至相應(yīng)的目的地址信息對應(yīng)的核,所需經(jīng)過的節(jié)點 不包括上述第一節(jié)點。
[0155] 上述目標(biāo)核對應(yīng)的節(jié)點所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值。
[0156] 本發(fā)明實施例提供的平衡節(jié)點負(fù)載的裝置中,首先通過獲取模塊1101獲取第一 核內(nèi)記錄的負(fù)載信息,負(fù)載信息包括第一核中需要發(fā)送的消息的數(shù)量、上述消息的目的地 址信息和上述消息的源地址信息,第一確定模塊1102對于第一核需要發(fā)送的任一消息,可 以根據(jù)第一核記錄的各個消息的目的地址信息和源地址信息,確定出各個消息發(fā)送至相應(yīng) 的目的地址對應(yīng)的核所需經(jīng)過的節(jié)點,從而可以由計算模塊1103計算出在第一核中所有 消息發(fā)送完畢后,各個節(jié)點所需承載的負(fù)載量,第二確定模塊1104將所承載的負(fù)載量超過 其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第一節(jié)點,當(dāng)?shù)谝还?jié)點承載的負(fù)載量大于第一預(yù)設(shè)負(fù)載值 時,表明第一節(jié)點所承載的負(fù)載量過多,甚至超載,此時會影響CPU的性能,從各個消息中 確定所有經(jīng)過第一節(jié)點的第一消息以及第一消息的源核地址信息對應(yīng)的源核或第一消息 的目的核地址信息對應(yīng)的目的核,第一選擇模塊1105可以從第一消息的源核或目的核中 選擇待遷移核,遷移模塊1106將該待遷移核中的至少一個執(zhí)行程序分別遷移至從眾核平 臺選擇出的目標(biāo)核,由于目標(biāo)核對應(yīng)節(jié)點所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值,所以當(dāng)將 上述至少一個執(zhí)行程序遷移至目標(biāo)核后,目標(biāo)核對應(yīng)節(jié)點所承載的負(fù)載量在一個合適的范 圍內(nèi),目標(biāo)核將上述至少一個執(zhí)行程序?qū)?yīng)的消息發(fā)送中至相應(yīng)的目的地址信息對應(yīng)的核 所需經(jīng)過的節(jié)點不包括第一節(jié)點,這樣就可以降低第一節(jié)點的負(fù)載量,從而提升CPU的性 能。
[0157] 請參閱圖12,為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的裝置的另一實施例的裝 置結(jié)構(gòu)示意圖,該裝置應(yīng)用于眾核平臺,該裝置包括:
[0158] 獲取模塊1101、第一確定模塊1102、計算模塊1103、第二確定模塊11〇4、第一選擇 模塊1105、遷移模塊1106以及更新模塊1201,其中:
[0159] 獲取模塊1101,用于獲取上述眾核平臺中的第一核內(nèi)記錄的負(fù)載信息。
[0160] 第一核包括上述眾核平臺中己分配有執(zhí)行程序的核,負(fù)載信息包括第一核中需要 發(fā)送的消息的數(shù)量、上述消息的目的地址信息和上述消息的源地址信息,執(zhí)行程序用于生 成與上述消息相關(guān)的信息。
[0161] 第一確定模塊1102,用于對于任一上述消息,根據(jù)獲得模塊1101獲得的上述消息 的目的地址信息和上述消息的源地址信息,確定將上述消息發(fā)送至上述目的地址信息對應(yīng) 的核所需經(jīng)過的節(jié)點。
[0162] 計算模塊1103,用于根據(jù)第一確定模塊1102確定出的上述消息的數(shù)量以及上述 消息所需經(jīng)過的節(jié)點的信息,計算出完成所有消息的發(fā)送時,各個節(jié)點所需承載的負(fù)載量。
[0163] 第二確定模塊1104,用于將所承載的負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第 一節(jié)點,從上述消息中確定所有經(jīng)過第一節(jié)點的第一消息以及第一消息的源核地址信息對 應(yīng)的源核或第一消息的目的核地址信息對應(yīng)的目的核。
[0164] 第一選擇模塊1105,用于從第二確定模塊1104確定出的第一消息的源核或目的 核中選擇待遷移核。
[0165] 遷移模塊1106,用于將第一選擇模塊1105選擇出的待遷移核中的至少一個上述 執(zhí)行程序分別遷移至從上述眾核平臺中選擇出的相應(yīng)的目標(biāo)核,以便上述目標(biāo)核將上述至 少一個上述執(zhí)行程序?qū)?yīng)的消息,發(fā)送至相應(yīng)的目的地址信息對應(yīng)的核,所需經(jīng)過的節(jié)點 不包括上述第一節(jié)點。
[0166] 上述目標(biāo)核對應(yīng)的節(jié)點所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值。
[0167] 更新模塊1201,用于在將上述待遷移核中的至少一個上述執(zhí)行程序分別遷移至從 上述眾核平臺中選擇出的相應(yīng)的目標(biāo)核之后,將目的地址信息為上述待遷移核的地址信息 的核,中的目的地址信息更新為相應(yīng)的目標(biāo)核的地址信息。
[0168] 請參閱圖13,為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的裝置又一實施例的裝置 結(jié)構(gòu)示意圖,該裝置應(yīng)用于眾核平臺,該裝置包括 :
[0169] 獲取模塊1101、第一確定模塊1102、計算模塊1103、第二確定模塊1104、第一選擇 模塊1105、遷移模塊1106、第一設(shè)置模塊1301以及第二設(shè)置模塊1302,其中:
[0170] 獲取模塊1101,用于獲取上述眾核平臺中的第一核內(nèi)記錄的負(fù)載信息。
[0171] 第一核包括上述眾核平臺中已分配有執(zhí)行程序的核,負(fù)載信息包括第一核中需要 發(fā)送的消息的數(shù)量、上述消息的目的地址信息和上述消息的源地址信息,執(zhí)行程序用于生 成與上述消息相關(guān)的信息。
[0172] 第一確定模塊1102,用于對于任一上述消息,根據(jù)獲得模塊1101獲得的上述消息 的目的地址信息和上述消息的源地址信息,確定將上述消息發(fā)送至上述目的地址信息對應(yīng) 的核所需經(jīng)過的節(jié)點。
[0173] 計算模塊1103,用于根據(jù)第一確定模塊1102確定出的上述消息的數(shù)量以及上述 消息所需經(jīng)過的節(jié)點的信息,計算出完成所有消息的發(fā)送時,各個節(jié)點所需承載的負(fù)載量。
[0174] 第二確定模塊1104,用于將所承載的負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第 一節(jié)點,從上述消息中確定所有經(jīng)過第一節(jié)點的第一消息以及第一消息的源核地址信息對 應(yīng)的源核或第一消息的目的核地址信息對應(yīng)的目的核。
[0175] 第一選擇模塊1105,用于從第二確定模塊1104確定出的第一消息的源核或目的 核中選擇待遷移核。
[0176] 遷移模塊1106,用于將第一選擇模塊1105選擇出的待遷移核中的至少一個上述 執(zhí)行程序分別遷移至從上述眾核平臺中選擇出的相應(yīng)的目標(biāo)核,以便上述目標(biāo)核將上述至 少一個上述執(zhí)行程序?qū)?yīng)的消息,發(fā)送至相應(yīng)的目的地址信息對應(yīng)的核,所需經(jīng)過的節(jié)點 不包括上述第一節(jié)點。
[0177] 上述目標(biāo)核對應(yīng)的節(jié)點所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值。
[0178] 第一設(shè)置模塊1301,用于在待遷移核中設(shè)置反饋程序,反饋程序用于在上述待遷 移核接收到其他核發(fā)送的消息時,向上述其他核發(fā)送更新目的核地址信息的指不。
[0179] 第二設(shè)置模塊1302,用于在上述其他核中設(shè)置應(yīng)答程序,應(yīng)答程序用于在接收到 上述更新目的核地址信息的指示時,將上述其他核中與上述至少一個執(zhí)行程序?qū)?yīng)的消息 的目的核地址信息更新為相應(yīng)目標(biāo)核的地址信息。 >
[0180] 請參閱圖14,為本發(fā)明實施例提供的一種平衡節(jié)點負(fù)載的裝置的另一裝置結(jié)構(gòu)示 意圖,該裝置應(yīng)用于眾核平臺,該裝置包括:
[0181] 獲取模塊1101、第一確定模塊1102、計算模塊1103、第二確定模塊1104、第一選擇 模塊1105、第三確定模塊1401、觸發(fā)模塊1402以及遷移模塊1106,其中:
[0182] 獲取模塊1101,用于獲取上述眾核平臺中的第一核內(nèi)記錄的負(fù)載信息。
[0183] 第一核包括上述眾核平臺中已分配有執(zhí)行程序的核,上述負(fù)載信息包括第一核中 需要發(fā)送的消息的數(shù)量、上述消息的目的地址信息和上述消息的源地址信息,執(zhí)行程序用 于生成與上述消息相關(guān)的信息。
[0184] 第一確定模塊1102,用于對于任一上述消息,根據(jù)上述獲得模塊獲得的上述消息 的目的地址信息和上述消息的源地址信息,確定將上述消息發(fā)送至上述目的地址信息對應(yīng) 的核所需經(jīng)過的節(jié)點。
[0185] 計算模塊1103,用于根據(jù)第一確定模塊1102確定出的上述消息的數(shù)量以及上述 消息所需經(jīng)過的節(jié)點的信息,計算出完成所有消息的發(fā)送時,各個節(jié)點所需承載的負(fù)載量。
[0186] 第二確定模塊1104,用于將所承載的負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第 一節(jié)點,從上述消息中確定所有經(jīng)過第一節(jié)點的第一消息以及第一消息的源核地址信息對 應(yīng)的源核或第一消息的目的核地址信息對應(yīng)的目的核。
[0187] 第一選擇模塊1105,用于從第二確定模塊1104確定出的第一消息的源核或目的 核中選擇待遷移核。
[0188] 第三確定模塊1401,用于確定第一節(jié)點所承載的負(fù)載量中的本地負(fù)載量;
[0189] 觸發(fā)模塊1402,用于當(dāng)?shù)谝还?jié)點的本地負(fù)載量不大于第一節(jié)點的預(yù)設(shè)本地負(fù)載值 時,觸發(fā)遷移模塊1106。
[0190] 遷移模塊1106,用于將第一選擇模塊1105選擇出的上述待遷移核中的至少一個 上述執(zhí)行程序分別遷移至從上述眾核平臺中選擇出的相應(yīng)的目標(biāo)核,以便上述目標(biāo)核將上 述至少一個上述執(zhí)行程序?qū)?yīng)的消息,發(fā)送至相應(yīng)的目的地址信息對應(yīng)的核,所需經(jīng)過的 節(jié)點不包括第一節(jié)點,上述目標(biāo)核對應(yīng)的節(jié)點所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值。
[0191] 上述任一裝置實施例中還可以包括:檢測模塊,用于將所承載的負(fù)載量低于第二 預(yù)設(shè)負(fù)載值的節(jié)點作為第二節(jié)點,檢測第二節(jié)點對應(yīng)的核的狀態(tài)標(biāo)識,狀態(tài)標(biāo)識包括空閑 狀態(tài)標(biāo)識與非空閑狀態(tài)標(biāo)識;第三確定模塊,用于將狀態(tài)標(biāo)識為空閑狀態(tài)標(biāo)識的核確定為 第二核;第二選擇模塊,用于從第二核中選擇出上述目標(biāo)核。
[0192] 上述任一裝置實施例中還可以包括:第三選擇模塊,用于將所承載的負(fù)載量低于 第二預(yù)設(shè)負(fù)載值的節(jié)點作為第二節(jié)點,從第二節(jié)點中選擇所承載的負(fù)載量最小的節(jié)點,并 將上述所承載的負(fù)載量最小的節(jié)點對應(yīng)的核作為上述目標(biāo)核。
[0193] 上述任一裝置實施例中的第一選擇模塊可以包括:比較單元,用于比較各個第一 消息的源核中消息的數(shù)量,獲得消息數(shù)量最多的源核,并將上述消息數(shù)量最多的源核或上 述消息數(shù)量最多的源核對應(yīng)的目的核作為上述待遷移核。 ^
[0194] 上述任一裝置實施例中的遷移模塊可以具體用于對于上述至少一個上述執(zhí)行程 序中的每一上述執(zhí)行程序,獲得上述執(zhí)行程序,將上述執(zhí)行程序設(shè)置于相應(yīng)的上述目標(biāo)核, 并根據(jù)相應(yīng)的上述目標(biāo)核的地址信息和上述執(zhí)行程序?qū)?yīng)的待遷移核的負(fù)載信息,對上述 目標(biāo)核的負(fù)載信息進行更新,將上述待遷移核中的上述執(zhí)行程序刪除。
[0195] 上述任一裝置實施例中的第一核還可以記錄有應(yīng)用程序類別,此時上述任一裝置 實施例中的遷移模塊可以包括:獲得單元,用于獲得第一核中各個執(zhí)行程序的執(zhí)行程序類 另IJ ;設(shè)置單元,用于將同一執(zhí)行程序類別的執(zhí)行程序設(shè)置于同-上述目標(biāo)核中;清除單元, 用于將第一核中上述同一執(zhí)行程序類別的執(zhí)行程序清除。
[0196] 上述任一裝置實施例中還可以包括:檢測模塊,用于在檢測到第一核發(fā)送消息時, 檢測上述消息的相關(guān)信息,上述相關(guān)信息包括上述消息的目的地址信息和上述消息的源地 址信息;第四確定模塊,用于確定上述消息的第一消息數(shù)量;增加模塊,用于當(dāng)己經(jīng)記錄有 具有相同源地址信息和目的地址信息的消息時,將上述具有相同源地址信息和目的地址信 息的消息對應(yīng)的消息的數(shù)量增加第一消息數(shù)量;第三設(shè)置模塊,用于當(dāng)未記錄有具有相同 源地址信息和目的地址信息的消息時,記錄第一核發(fā)送消息的目的地址信息和消息的源地 址信息,并將其對應(yīng)的消息數(shù)量設(shè)置為第一消息數(shù)量。
[0197] 上述任一裝置實施例中的第四確定模塊可以包括:計算單元,用于根據(jù)上述長度 信息以及上述眾核平臺中的各個節(jié)點一次發(fā)送消息的最大長度信息,計算出上述消息的第 一消息數(shù)量。
[0198] 本發(fā)明實施例提供的一種終端,該終端可用于執(zhí)行上述任一實施例所述的方法。 請參閱圖15,為本發(fā)明實施例提供的終端的結(jié)構(gòu)示意圖。
[0199] 該終端可以為服務(wù)器、平板電腦、PDA (Personal Digital Assistant,個人數(shù)字助 理)、P0S (Point of Sales,銷售終端)或車載電腦等終端設(shè)備,以終端為服務(wù)器為例,圖15 示出的是與本發(fā)明實施例提供的終端相關(guān)的服務(wù)器的部分結(jié)構(gòu)的框圖。參考圖I 5,服務(wù)器 包括存儲器1510以及處理器1520等部件。本領(lǐng)域技術(shù)人員可以理解,圖15中示出的服務(wù) 器結(jié)構(gòu)只做實現(xiàn)方式的舉例,并不構(gòu)成對服務(wù)器的限定,可以包括比圖示更多或更少的部 件,或者組合某些部件,或者不同的部件布置。
[0200] 下面結(jié)合圖15對服務(wù)器中的各個構(gòu)成部件進行具體的介紹:
[0201] 存儲器1510可用于存儲軟件程序以及模塊,處理器1520通過運行存儲在存儲器 1510的軟件程序以及模塊,從而執(zhí)行服務(wù)器的各種功能應(yīng)用以及數(shù)據(jù)處理。存儲器1510可 主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需 的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)服務(wù)器的使 用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器1510可以包括高速隨機存取 存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失 性固態(tài)存儲器件。
[0202] 處理器1520是服務(wù)器的控制中心,利用各種接口和線路連接整個服務(wù)器的各個 部分,通過運行或執(zhí)行存儲在存儲器1510內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲 器1δ1〇內(nèi)的數(shù)據(jù),執(zhí)行服務(wù)器的各種功能和處理數(shù)據(jù),從而對服務(wù)器進行整體監(jiān)控??蛇x 的,處理器152〇可包括一個或多個處理單元;優(yōu)選的,處理器1520可集成應(yīng)用處理器和調(diào) 制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處 理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器1520 中。
[0203] 在本發(fā)明實施例中,該終端所包括處理器具有以下功能:
[0204]獲取所述眾核平臺中的第一核內(nèi)記錄的負(fù)載信息,所述第一核包括所述眾核平臺 中已分配有執(zhí)行程序的核,所述負(fù)載信息包括所述第一核中需要發(fā)送的消息的數(shù)量、所述 消息的目的地址信息和所述消息的源地址信息,所述執(zhí)行程序用于生成與所述消息相關(guān)的 信息;對于任一所述消息,根據(jù)所述消息的目的地址信息和所述消息的源地址信息,確定將 所述消息發(fā)送至所述目的地址信息對應(yīng)的核所需經(jīng)過的節(jié)點;根據(jù)所述消息的數(shù)量以及所 述消息所需經(jīng)過的節(jié)點的信息,計算出完成所有消息的發(fā)送時,各個節(jié)點所需承載的負(fù)載 量;將所承載的負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第一節(jié)點,從所述消息中確定所 有經(jīng)過所述第一節(jié)點的第一消息以及所述第一消息的源核地址信息對應(yīng)的源核或所述第 一消息的目的核地址信息對應(yīng)的目的核;從所述第一消息的源核或目的核中選擇待遷移 核;將所述待遷移核中的至少一個所述執(zhí)行程序分別遷移至從所述眾核平臺中選擇出的相 應(yīng)的目標(biāo)核,以便所述目標(biāo)核將所述至少一個所述執(zhí)行程序?qū)?yīng)的消息發(fā)送中至相應(yīng)的目 的地址信息對應(yīng)的核所需經(jīng)過的節(jié)點不包括所述第一節(jié)點,所述目標(biāo)核對應(yīng)的節(jié)點所承載 的負(fù)載量低于第二預(yù)設(shè)負(fù)載值。
[0205]該終端包括的存儲器存儲有第一核中需要發(fā)送的消息的數(shù)量、所述消息的目的地 址信息和所述消息的源地址信息。
[0206]本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他 實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置 而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說 明即可。
[0207]還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個 實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間 存在任何這種實際的關(guān)系或者順序。而且,術(shù)語"包括"、"包含"或者其任何其他變體意在 涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些 要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè) 備所固有的要素。在沒有更多限制的情況下,由語句"包括一個……"限定的要素,并不排 除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0208]結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí) 行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存 儲器(ROM)、電可編程ROM、電可擦除可編程R0M、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù) 領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
[0209] 對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。 對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的 一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明 將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一 致的最寬的范圍。
【權(quán)利要求】
1. 一種平衡節(jié)點負(fù)載的方法,應(yīng)用于眾核平臺,其特征在于,所述方法包括: 獲取所述眾核平臺中的第一核內(nèi)記錄的負(fù)載信息,所述第一核包括所述眾核平臺中 己分配有執(zhí)行程序的核,所述負(fù)載信息包括所述第一核中需要發(fā)送的消息的數(shù)量、所述消 息的目的地址信息和所述消息的源地址信息,所述執(zhí)行程序用于生成與所述消息相關(guān)的信 息; 對于任一所述消息,根據(jù)所述消息的目的地址信息和所述消息的源地址信息,確定將 所述消息發(fā)送至所述目的地址信息對應(yīng)的核所需經(jīng)過的節(jié)點; 根據(jù)所述消息的數(shù)量以及所述消息所需經(jīng)過的節(jié)點的信息,計算出完成所有消息的發(fā) 送時,各個節(jié)點所需承載的負(fù)載量; 將所承載的負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第一節(jié)點,從所述消息中確定所 有經(jīng)過所述第一節(jié)點的第一消息以及所述第一消息的源核地址信息對應(yīng)的源核或所述第 -消息的目的核地址信息對應(yīng)的目的核; 從所述第一消息的源核或目的核中選擇待遷移核; 將所述待遷移核中的至少一個所述執(zhí)行程序分別遷移至從所述眾核平臺中選擇出的 相應(yīng)的目標(biāo)核,以便所述目標(biāo)核將所述至少一個所述執(zhí)行程序?qū)?yīng)的消息,發(fā)送至相應(yīng)的 目的地址信息對應(yīng)的核,所需經(jīng)過的節(jié)點不包括所述第-節(jié)點,所述目標(biāo)核對應(yīng)的節(jié)點所 承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值。
2. 根據(jù)權(quán)利要求1所述方法,其特征在于,從所述眾核平臺中選擇目標(biāo)核包括: 將所承載的負(fù)載量低于所述第二預(yù)設(shè)負(fù)載值的節(jié)點作為第二節(jié)點,檢測所述第二節(jié)點 對應(yīng)的核的狀態(tài)標(biāo)識,所述狀態(tài)標(biāo)識包括空閑狀態(tài)標(biāo)識與非空閑狀態(tài)標(biāo)識; 將狀態(tài)標(biāo)識為空閑狀態(tài)標(biāo)識的核確定為第二核; 從所述第二核中選擇出所述目標(biāo)核。
3. 根據(jù)權(quán)利要求1所述方法,其特征在于,從所述眾核平臺中選擇目標(biāo)核包括: 將所承載的負(fù)載量低于所述第二預(yù)設(shè)負(fù)載值的節(jié)點作為第二節(jié)點,從所述第二節(jié)點中 選擇所承載的負(fù)載量最小的節(jié)點,并將所述所承載的負(fù)載量最小的節(jié)點對應(yīng)的核作為所述 目標(biāo)核。
4. 根據(jù)權(quán)利要求1至3任一所述方法,其特征在于,所述從所述第一消息的源核或目的 核中選擇待遷移核包括: 比較各個所述第一消息的源核中消息的數(shù)量,獲得消息數(shù)量最多的源核,并將所述消 息數(shù)量最多的源核或所述消息數(shù)量最多的源核對應(yīng)的目的核作為所述待遷移核。
5. 根據(jù)權(quán)利要求1所述方法,其特征在于,所述將所述待遷移核中的至少一個所述執(zhí) 行程序分別遷移至從所述眾核平臺中選擇出的相應(yīng)的目標(biāo)核包括: 對于所述至少一個所述執(zhí)行程序中的每一所述執(zhí)行程序,獲得所述執(zhí)行程序,將所述 執(zhí)行程序設(shè)置于相應(yīng)的所述目標(biāo)核,并根據(jù)相應(yīng)的所述目標(biāo)核的地址信息和所述執(zhí)行程序 對應(yīng)的待遷移核的負(fù)載信息,對所述目標(biāo)核的負(fù)載信息進行更新,將所述待遷移核中的所 述執(zhí)行程序刪除。
6. 根據(jù)權(quán)利要求1或5所述方法,其特征在于,在所述將所述待遷移核中的至少一個所 述執(zhí)行程序分別遷移至從所述眾核平臺中選擇出的相應(yīng)的目標(biāo)核之后,還包括: 將目的地址信息為所述待遷移核的地址信息的核,中的目的地址信息更新為相應(yīng)的目 標(biāo)核的地址信息。
7. 根據(jù)權(quán)利要求1或5所述方法,其特征在于,在將所述待遷移核中的至少一個所述執(zhí) 行程序分別遷移至從所述眾核平臺中選擇出的相應(yīng)的目標(biāo)核之后,還包括: 在所述待遷移核中設(shè)置反饋程序,所述反饋程序用于在所述待遷移核接收到其他核發(fā) 送的消息時,向所述其他核發(fā)送更新目的核地址信息的指示; 在所述其他核中設(shè)置應(yīng)答程序,所述應(yīng)答程序用于在接收到所述更新目的核地址信息 的指示時,將所述其他核中與所述至少一個執(zhí)行程序?qū)?yīng)的消息的目的核地址信息更新為 相應(yīng)目標(biāo)核的地址信息。
8. 根據(jù)權(quán)利要求1所述方法,其特征在于,所述第一核中還記錄有應(yīng)用程序類別,所述 將所述待遷移核中的至少一個所述執(zhí)行程序分別遷移至從所述眾核平臺中選擇出的相應(yīng) 的目標(biāo)核包括: 獲得所述第一核中各個執(zhí)行程序的執(zhí)行程序類別; 將同一執(zhí)行程序類別的執(zhí)行程序設(shè)置于同一所述目標(biāo)核中; 將所述第一核中所述同一執(zhí)行程序類別的執(zhí)行程序清除。
9. 根據(jù)權(quán)利要求1、2、3和8任一所述方法,其特征在于,在將所述待遷移核中的至少一 個所述執(zhí)行程序分別遷移至從所述眾核平臺中選擇出的相應(yīng)的目標(biāo)核之前,還包括: 確定所述第一節(jié)點所承載的負(fù)載量中的本地負(fù)載量; 當(dāng)所述第一節(jié)點的本地負(fù)載量不大于所述第一節(jié)點的預(yù)設(shè)本地負(fù)載值時,執(zhí)行所述將 所述待遷移核中的至少一個所述執(zhí)行程序分別遷移至從所述眾核平臺中選擇出的相應(yīng)的 目標(biāo)核的操作。
10. 根據(jù)權(quán)利要求1所述方法,其特征在于,所述第一核記錄負(fù)載信息包括: 在檢測到所述第一核發(fā)送消息時,檢測所述消息的相關(guān)信息,所述相關(guān)信息包括所述 消息的目的地址信息和所述消息的源地址信息; 確定所述消息的第一消息數(shù)量; 當(dāng)已經(jīng)記錄有具有相同源地址信息和目的地址信息的消息時,將所述具有相同源地址 信息和目的地址信息的消息對應(yīng)的消息的數(shù)量增加所述第一消息數(shù)量; 當(dāng)未記錄有具有相同源地址信息和目的地址信息的消息時,記錄所述第一核發(fā)送消息 的目的地址信息和消息的源地址信息,并將其對應(yīng)的消息數(shù)量設(shè)置為所述第一消息數(shù)量。
11. 根據(jù)權(quán)利要求10所述方法,其特征在于,所述相關(guān)信息還包括所述消息的長度信 息,所述確定所述消息的第一消息數(shù)量包括: 根據(jù)所述長度信息以及所述眾核平臺中的各個節(jié)點一次發(fā)送消息的最大長度信息,計 算出所述消息的第一消息數(shù)量。
12. -種平衡節(jié)點負(fù)載的裝置,應(yīng)用于眾核平臺,其特征在于,所述裝置包括: 獲取模塊,用于獲取所述眾核平臺中的第一核內(nèi)記錄的負(fù)載信息,所述第一核包括所 述眾核平臺中已分配有執(zhí)行程序的核,所述負(fù)載信息包括所述第一核中需要發(fā)送的消息的 數(shù)量、所述消息的目的地址信息和所述消息的源地址信息,所述執(zhí)行程序用于生成與所述 消息相關(guān)的信息; 第一確定模塊,用于對于任一所述消息,根據(jù)所述獲得模塊獲得的所述消息的目的地 址信息和所述消息的源地址信息,確定將所述消息發(fā)送至所述目的地址信息對應(yīng)的核所需 經(jīng)過的節(jié)點; 計算模塊,用于根據(jù)所述第一確定模塊確定出的所述消息的數(shù)量以及所述消息所需經(jīng) 過的節(jié)點的信息,計算出完成所有消息的發(fā)送時,各個節(jié)點所需承載的負(fù)載量; 第二確定模塊,用于將所承載的負(fù)載量超過其第一預(yù)設(shè)負(fù)載值的節(jié)點作為第一節(jié)點, 從所述消息中確定所有經(jīng)過所述第一節(jié)點的第一消息以及所述第一消息的源核地址信息 對應(yīng)的源核或所述第一消息的目的核地址信息對應(yīng)的目的核; 第一選擇模塊,用于從所述第二確定模塊確定出的所述第一消息的源核或目的核中選 擇待遷移核; 遷移模塊,用于將所述第一選擇模塊選擇出的所述待遷移核中的至少一個所述執(zhí)行程 序分別遷移至從所述眾核平臺中選擇出的相應(yīng)的目標(biāo)核,以便所述目標(biāo)核將所述至少一個 所述執(zhí)行程序?qū)?yīng)的消息,發(fā)送至相應(yīng)的目的地址信息對應(yīng)的核,所需經(jīng)過的節(jié)點不包括 所述第一節(jié)點,所述目標(biāo)核對應(yīng)的節(jié)點所承載的負(fù)載量低于第二預(yù)設(shè)負(fù)載值。
13. 根據(jù)權(quán)利要求12所述裝置,其特征在于,還包括: 檢測模塊,用于將所承載的負(fù)載量低于所述第二預(yù)設(shè)負(fù)載值的節(jié)點作為第二節(jié)點,檢 測所述第二節(jié)點對應(yīng)的核的狀態(tài)標(biāo)識,所述狀態(tài)標(biāo)識包括空閑狀態(tài)標(biāo)識與非空閑狀態(tài)標(biāo) 識; 第三確定模塊,用于將狀態(tài)標(biāo)識為空閑狀態(tài)標(biāo)識的核確定為第二核; 第二選擇模塊,用于從所述第二核中選擇出所述目標(biāo)核。
14. 根據(jù)權(quán)利要求12所述裝置,其特征在于,還包括: 第三選擇模塊,用于將所承載的負(fù)載量低于所述第二預(yù)設(shè)負(fù)載值的節(jié)點作為第二節(jié) 點,從所述第二節(jié)點中選擇所承載的負(fù)載量最小的節(jié)點,并將所述所承載的負(fù)載量最小的 節(jié)點對應(yīng)的核作為所述目標(biāo)核。
15. 根據(jù)權(quán)利要求12至14任一所述裝置,其特征在于,所述第一選擇模塊包括: 比較單元,用于比較各個所述第一消息的源核中消息的數(shù)量,獲得消息數(shù)量最多的源 核,并將所述消息數(shù)量最多的源核或所述消息數(shù)量最多的源核對應(yīng)的目的核作為所述待遷 移核。
16. 根據(jù)權(quán)利要求12所述裝置,其特征在于,所述遷移模塊具體用于:對于所述至少一 個所述執(zhí)行程序中的每一所述執(zhí)行程序,獲得所述執(zhí)行程序,將所述執(zhí)行程序設(shè)置于相應(yīng) 的所述目標(biāo)核,并根據(jù)相應(yīng)的所述目標(biāo)核的地址信息和所述執(zhí)行程序?qū)?yīng)的待遷移核的負(fù) 載信息,對所述目標(biāo)核的負(fù)載信息進行更新,將所述待遷移核中的所述執(zhí)行程序刪除。
17. 根據(jù)權(quán)利要求12或16所述裝置,其特征在于,還包括: 更新模塊,用于在將所述待遷移核中的至少一個所述執(zhí)行程序分別遷移至從所述眾核 平臺中選擇出的相應(yīng)的目標(biāo)核之后,將目的地址信息為所述待遷移核的地址信息的核,中 的目的地址信息更新為相應(yīng)的目標(biāo)核的地址信息。
18. 根據(jù)權(quán)利要求12或16所述裝置,其特征在于,還包括: 第一設(shè)置模塊,用于在所述待遷移核中設(shè)置反饋程序,所述反饋程序用于在所述待遷 移核接收到其他核發(fā)送的消息時,向所述其他核發(fā)送更新目的核地址信息的指示; 第二設(shè)置模塊,用于在所述其他核中設(shè)置應(yīng)答程序,所述應(yīng)答程序用于在接收到所述 更新目的核地址信息的指示時,將所述其他核中與所述至少一個執(zhí)行程序?qū)?yīng)的消息的目 的核地址信息更新為相應(yīng)目標(biāo)核的地址信息。
19. 根據(jù)權(quán)利要求12所述裝置,其特征在于,所述第一核中還記錄有應(yīng)用程序類別,所 述遷移模塊包括: 獲得單元,用于獲得所述第一核中各個執(zhí)行程序的執(zhí)行程序類別; 設(shè)置單元,用于將同一執(zhí)行程序類別的執(zhí)行程序設(shè)置于同一所述目標(biāo)核中; 清除單元,用于將所述第一核中所述同一執(zhí)行程序類別的執(zhí)行程序清除。
20. 根據(jù)權(quán)利要求12、13、14和19任一所述裝置,其特征在于,還包括: 第三確定模塊,用于確定所述第一節(jié)點所承載的負(fù)載量中的本地負(fù)載量; 觸發(fā)模塊,用于當(dāng)所述第一節(jié)點的本地負(fù)載量不大于所述第一節(jié)點的預(yù)設(shè)本地負(fù)載值 時,觸發(fā)所述遷移模塊。
21. 根據(jù)權(quán)利要求12所述裝置,其特征在于,還包括: 檢測模塊,用于在檢測到所述第一核發(fā)送消息時,檢測所述消息的相關(guān)信息,所述相關(guān) 信息包括所述消息的目的地址信息和所述消息的源地址信息; 第四確定模塊,用于確定所述消息的第一消息數(shù)量; 增加模塊,用于當(dāng)已經(jīng)記錄有具有相同源地址信息和目的地址信息的消息時,將所述 具有相同源地址信息和目的地址信息的消息對應(yīng)的消息的數(shù)量增加所述第一消息數(shù)量; 第三設(shè)置模塊,用于當(dāng)未記錄有具有相同源地址信息和目的地址信息的消息時,記錄 所述第一核發(fā)送消息的目的地址信息和消息的源地址信息,并將其對應(yīng)的消息數(shù)量設(shè)置為 所述第一消息數(shù)量。
22. 根據(jù)權(quán)利要求21所述裝置,其特征在于,所述相關(guān)信息還包括所述消息的長度信 息,所述第四確定模塊包括: 計算單元,用于根據(jù)所述長度信息以及所述眾核平臺中的各個節(jié)點一次發(fā)送消息的最 大長度信息,計算出所述消息的第一消息數(shù)量。
【文檔編號】H04L12/803GK104219161SQ201310218830
【公開日】2014年12月17日 申請日期:2013年6月4日 優(yōu)先權(quán)日:2013年6月4日
【發(fā)明者】王金堂 申請人:華為技術(shù)有限公司