多核雲計算平臺並行應用優化方法
2023-06-14 13:23:31 1
專利名稱:多核雲計算平臺並行應用優化方法
技術領域:
本發明涉及並行應用優化方法,特別涉及多核雲計算平臺上的並行應用優化方法。
背景技術:
過去30年,在摩爾定律的推動下,CPU (Central Processing Unit,中央處理器) 速度差不多每兩年就提升一倍,CPU的主頻、即CPU的工作頻率一直是提高微處理器性能 的主要因素。然而由於功耗的原因,主頻提升已顯得力不從心。當處理器頻率達到其極限 時,一種流行的提高性能的方法是添加更多的處理器,典型的為早期的SMP(Symmetrical Multi-Processing,對稱多處理)技術,將更多的處理器添加到主板上形成多核計算平臺, 或將多個獨立計算機集群到一起形成雲計算平臺。一般地,構成雲計算平臺的多個獨立計 算機的每一個被稱為一個節點。而最近,CMP (Chip Multi-Processor,多核處理器)技術在 單個晶片上實現SMP,成為當前和未來處理器發展的主要方向。多核處理器的引入,使得雲計算平臺節點內通信(包括晶片內通信和晶片間通 信)性能得到大幅提升,節點內外通信性能差距明顯增大,為並行應用的優化帶來了新的 挑戰。目前改善並行應用性能的主要方法例如有下述的方法。第一種方法為具體並行應用局部優化方法,比如專利200810104205. 9中具有多 個處理器的多核編碼器及圖像切片單元的處理即屬這種方法。其中圖像切片單元用於將視 頻圖像劃分為多個切片,並將每個切片分配到多核編碼器的不同處理器中進行處理;多核 編碼器在利用多個處理器對圖像的切片進行處理的過程中,採用並行流水的方式執行圖像 編碼;並在多核編碼器的處理器處理完一個切片後,給圖像切片單元發送消息以使圖像切 片單元發送下一個切片給該處理器。另外,目前還有在特定結構下通過鏈路最小化、節點競爭以及通信節點距離最小 化來改善並行應用性能的方法。另外,目前還有針對網絡架構的層次性來優化並行應用的性能的方法,如使網速 較快的區域網環境承載更多的通信量而使網速較慢的廣域網上的通信量最小化來實現並 行應用的優化。上述的這些方法雖然可以在一定程度上提升並行應用性能,但都與具體應用有較 大的相關性,普遍適用性較差,且對多核雲計算平臺的性能改善程度是有限的。另外,目前還有從作業系統層對多核雲計算平臺進行並行應用優化的方法,但研 究表明,這種方法存在實現複雜、實用性差的問題。
發明內容
鑑於上述並行應用優化方法存在的問題,本發明的目的在於提供一種普遍適用性 好、實現簡單的多核雲計算平臺並行應用優化方法。
為了實現上述目的,根據本發明的多核雲計算平臺並行應用優化方法,包括第一 步驟,從組成多核雲計算平臺的多個節點中,為並行應用分配多個應用節點,並在每一個所 述應用節點上分別為所述並行應用分配多個CPU核心,在所分配的多個CPU核心上分別啟 動線程;第二步驟,為所述並行應用創建主通信組,所述主通信組由分配給所述並行應用的 每一個所述應用節點上的所述多個線程中的首線程組成;第三步驟,為每一個所述應用節 點創建子通信組,每一個所述子通信組由其所對應的所述應用節點上為所述並行應用所啟 動的多個線程組成;第四步驟,由所述主通信組中的所述多個線程中的首線程向所述主通 信組中的其餘線程廣播所述並行應用的應用通信數據;第五步驟,由每一個所述子通信組 中的所述多個線程中的首線程向所述子通信組中的其餘線程廣播所述應用通信數據。而且,在上述的多核雲計算平臺並行應用優化方法中,在所述第四步驟之前還包 括第六步驟,將所述應用通信數據切分成多個數據塊。而且,在上述的多核雲計算平臺並行應用優化方法中,所述第六步驟包括第七步 驟,當所述應用通信數據大於一級高速緩存(Li cache)大小時,將所述應用通信數據按所 述一級高速緩存大小切分成所述多個數據塊,當所述應用通信數據小於等於所述一級高速 緩存大小時,將所述應用通信數據直接做為一個數據塊。而且,在上述的多核雲計算平臺並行應用優化方法中,在所述第七步驟之前還包 括將所述應用通信數據與大於所述一級高速緩存的二級高速緩存(L2 cache)進行大小 比較,當所述應用通信數據大於所述二級高速緩存大小時,將所述應用通信數據按所述二 級高速緩存大小切分成所述多個數據塊。根據本發明的多核雲計算平臺並行應用優化方法,在多核雲計算平臺中,由分配 給同一併行應用的每一個節點的首線程組成主通信組,由主通信組中的首線程向主通信組 中的其他線程廣播數據來進行節點間通信,再由同一節點內的同一併行應用的首線程向該 節點內同一併行應用的其餘線程廣播數據,即由子通信組中的首線程向子通信組中的其餘 線程廣播數據來進行節點內通信。這樣,無需增加設備,而且不限於平臺結構,即為並行應 用的數據廣播形成了層次化的規整的拓撲結構,解決了現有多核雲計算平臺並行應用優化 方法普遍適用性差、實用性差的問題。並且通過上述拓撲結構,減少了節點間的數據廣播, 而更多採用節點內的數據通信,從而提高了並行應用的執行速度。
通過下面結合附圖進行的描述,本發明的上述和其他目的和特點將會變得更加清 楚,其中圖1是表示根據本發明實施例的多核雲計算平臺並行應用優化方法的流程圖;圖2是表示根據本發明實施例的多核雲計算平臺並行應用優化方法的示意圖;圖3是表示根據本發明實施例的多核雲計算平臺並行應用優化方法中的數據切 分方法的流程圖。主要符號說明S1010-S1060及S2010-S2050為步驟。
具體實施例方式以下,參照附圖來詳細說明本發明的實施例。
(實施例)圖1是表示根據本發明實施例的多核雲計算平臺並行應用優化方法的流程圖。根 據本發明實施例的多核雲計算平臺並行應用優化方法由並行應用優化系統執行。首先,在步驟S1010,由並行應用優化系統從組成多核雲計算平臺的多個節點中, 為一併行應用分配多個應用節點,並在每一個應用節點上分別為該並行應用分配多個CPU 核心,在所分配的多個CPU核心上分別啟動線程。這裡,通過重複上述處理,為多個並行應 用分別分配多個應用節點及多個CPU核心,並在分配的CPU核心上分別為相應的並行應用 啟動線程。接著,在步驟S1020,由並行應用優化系統創建主通信組,該主通信組由分配給同 一併行應用的每一個所述應用節點上的多個CPU核心的線程中的首線程,即rank為0的線 程組成。同樣地,這裡通過重複上述處理,為多個並行應用的每一個分別創建一個主通信組。接著,在步驟S1030,由並行應用優化系統為每一個應用節點創建子通信組,每一 個子通信組由其所對應的應用節點上為同一併行應用所啟動的多個線程組成。即,這裡在 每一節點中為每一個不同的並行應用分別創建子通信組。接著,在步驟S1040,由並行應用優化系統對並行應用的應用通信數據進行切分, 得到多個數據塊。這裡應用通信數據的切分是以並行應用為單位進行的,即對每一個並行 應用分別進行應用通信數據的切分,分別得到多個數據塊。具體的切分方法將在後詳細說 明。接著,在步驟S1050,由並行應用的主線程,即並行應用的主通信組中的首線程向 該主通信組中的其他線程廣播在步驟S1040中切分而得的多個數據塊,即將多個數據塊廣 播到主通信組中的其他節點。這裡,每一個並行應用可分別通過自己的主通信組,由主通信 組中的首線程所在的節點向主通信組中的其他節點將自己的應用通信數據廣播出去。接著,在步驟S1060,在每一個應用節點內,由每一個並行應用的子通信組中的首 線程將該並行應用的多個數據塊廣播到該子通信組中的其他線程。圖2是表示根據本發明實施例的多核雲計算平臺並行應用優化方法的示意圖。在此圖中,舉例表示了為一個並行應用分配資源及廣播應用通信數據的情形。具 體地,由並行應用優化系統為該並行應用分配節點A、B、C、D、及N,並由這些節點為組成該 並行應用的主通信組。進一步地,由並行應用優化系統在這些節點上為該並行應用分別分配多個CPU核 心,比如在節點為A上為該並行應用分配三個CPU核心,並在所分配的CPU核心上分別啟動 線程。而且,在每一個節點上,由為該並行單元啟動的多個線程組成該並行應用的子通信 組,圖中具體示出了節點A中為該並行單元啟動的4個線程組成的子通信組。進一步地,在此圖中,將主通信組中的首線程,也即主通信組中的該並行應用的執 行入口標示為主線程,圖中主線程位於節點N上。在執行該並行應用時,首先由節點N上的 主線程向節點A、B、C、及D的首線程廣播並行應用的應用通信數據,接著由節點A、B、C、及 D各自的首線程分別向本節點內的該並行應用的其他線程廣播上述應用通信數據。這裡被 廣播的應用通信數據在廣播前被切分成了多個數據塊。下面,對本發明實施例的多核雲計算平臺並行應用優化方法中應用通信數據的切分進行說明。在多核雲計算平臺中處理應用通信數據時,是將應用通信數據放置在緩存 (cache)中。因此通過減少不必要的cache替換,可以得到更好的cache命中率。如對一個 大的應用通信數據進行操作時,如果應用通信數據不能夠完全放入cache中,則需要將在 這之前進入cache的數據移出來,將應用通信數據替換進cache中,在進行下一步操作時, 再將此次被替換出cache的數據重新放入cache中。這種反覆的cache替換會導致數據頻 繁地在內存與cache之間交換,不但降低了數據的訪問速度,而且佔用了大量的內存帶寬 並降低執行效率。所以將大的應用通信數據切分成多個小的數據塊,並依次對每個小的數據塊執行 操作,這樣就可能保證在對每個小數據塊執行操作時,數據始終駐留在cache中,可以利用 晶片內高速通道進行節點內數據通信。對消息進行切分時,數據塊越小,廣播的數據塊全部駐留在最內層Cache的可能 性就越高,但是數據塊越小,循環的次數就越多,進行多次廣播增加的額外開銷就越大。因此,在本發明實施例中,數據塊大小是根據一級高速緩存(Li cache)和二級高 速緩存(L2 cache)的大小來確定的。圖3是表示根據本發明實施例的多核雲計算平臺並行應用優化方法中的數據切 分方法的流程圖。這裡,數據切分是由並行應用優化系統來執行的。首先,在步驟S2010,判斷應用通信數據大小是否大於L2 Cache的大小。當應用通信數據大小大於L2 Cache的大小(S2010:「是」)時,則接著在步驟 S2020,按L2 Cache的大小將應用通信數據切分成多個數據塊。接著,在步驟S2050,進行多個數據塊的廣播,即執行圖2中的步驟S1050及步驟 S1060。當應用通信數據大小不大於L2 Cache的大小(S2010 「否」)時,則接著在步驟 S2030,判斷應用通信數據大小是否大於一級緩存(Li Cache)的大小。當應用通信數據大小大於Ll Cache的大小(S2030:「是」)時,則接著在步驟 S2040,按Ll Cache的大小將應用通信數據切分成多個數據塊。接著,執行步驟S2050。當應用通信數據大小不大於Ll Cache的大小(S2030 「否」)時,則直接執行步驟 S2050。以上,對本發明實施例進行了說明。如上所述,根據本發明,在多核雲計算平臺中,由分配給同一併行應用的每一個節 點的首線程組成主通信組,由主通信組中的首線程向主通信組中的其他線程廣播數據來進 行節點間通信,再由同一節點內的首線程向該節點內同一併行應用的其餘線程廣播數據, 即由子通信組中的首線程向子通信組中的其餘線程廣播數據來進行節點內通信。這樣,無 需增加設備,而且不限於平臺結構,即為並行應用的數據廣播形成了層次化的規整的拓撲 結構,通過該拓撲結構,避免了一次性向所有節點廣播數據,減少了廣播規模,從而能夠減 少網絡間的通信量,降低了網絡衝突的概率。並且減少了節點間的數據廣播,而更多採用性能相對較好的節點內數據通信,因 此能夠提高通信效率,降低並行應用的執行時間。而且根據本發明,因為根據多級cache的大小來切分應用通信數據,將大的數據切分成多個小的數據塊,並依次對每個小的數據塊執行操作,因此能夠保證在對每個數據 塊執行操作時,數據始終駐留在cache中,提高處理器各級cache的命中率,提高了數據的 訪問速度,釋放大量的內存帶寬,提高節點內通信的性能,進而進一步降低並行應用執行時 間。另外,在本發明並不限於上述實施例,而是可以進行等同的變換來實施。例如,在本發明實施例中,作為並行應用的執行單元雖然以線程為例進行了說明, 但本發明並不限於此,並行應用的執行單元也可以為進程,此時,主通信組、子通信組的創 建以及應用通信數據的廣播均以進程為單位進行。又例如,在本發明實施例中,雖然以兩級緩存的情形為例對數據切分進行了說明, 但本發明並不限於此,緩存的級數也可以為一級或三級以上。而且,各級緩存的大小是根據 平臺不同而不同的。產業上的可利用性本發明的多核雲計算平臺並行應用優化方法適用於多核雲計算平臺的並行應用 優化系統。
權利要求
1.多核雲計算平臺並行應用優化方法,包括第一步驟,從組成多核雲計算平臺的多個節點中,為並行應用分配多個應用節點,並在 每一個所述應用節點上分別為所述並行應用分配多個CPU核心,在所分配的多個CPU核心 上分別啟動線程;第二步驟,為所述並行應用創建主通信組,所述主通信組由分配給所述並行應用的每 一個所述應用節點上的所述多個線程中的首線程組成;第三步驟,為每一個所述應用節點創建子通信組,每一個所述子通信組由其所對應的 所述應用節點上為所述並行應用所啟動的多個線程組成;第四步驟,由所述主通信組中的所述多個線程中的首線程向所述主通信組中的其餘線 程廣播所述並行應用的應用通信數據;第五步驟,由每一個所述子通信組中的所述多個線程中的首線程向所述子通信組中的 其餘線程廣播所述應用通信數據。
2.如權利要求1所述的多核雲計算平臺並行應用優化方法,其中在所述第四步驟之前 還包括第六步驟,將所述應用通信數據切分成多個數據塊。
3.如權利要求2所述的多核雲計算平臺並行應用優化方法,其中所述第六步驟包括 第七步驟,當所述應用通信數據大於一級高速緩存(LI cache)大小時,將所述應用通信數據按所述一級高速緩存大小切分成所述多個數據塊,當所述應用通信數據小於等於所 述一級高速緩存大小時,將所述應用通信數據直接做為一個數據塊。
4.如權利要求2所述的多核雲計算平臺並行應用優化方法,其中在所述第七步驟之前 還包括將所述應用通信數據與大於所述一級高速緩存的二級高速緩存(L2 cache)進行大小 比較,當所述應用通信數據大於所述二級高速緩存大小時,將所述應用通信數據按所述二 級高速緩存大小切分成所述多個數據塊。
全文摘要
公開了一種多核雲計算平臺並行應用優化方法。該方法包括從組成多核雲計算平臺的多個節點中,為並行應用分配多個應用節點,並在每一個應用節點上分別為該並行應用分配多個CPU核心,在所分配的多個CPU核心上分別啟動線程;為該並行應用創建主通信組,該主通信組由分配給該並行應用的每一個應用節點上的多個線程中的首線程組成;為每一個應用節點創建子通信組,每一個子通信組由其所對應的應用節點上為該並行應用所啟動的多個線程組成;對該並行應用的應用通信數據進行切分,得到多個數據塊;由主通信組中的多個線程中的首線程向主通信組中的其餘線程廣播多個數據塊;由每一個子通信組中的多個線程中的首線程向子通信組中的其餘線程廣播多個數據塊。
文檔編號G06F9/54GK101996103SQ20091016660
公開日2011年3月30日 申請日期2009年8月20日 優先權日2009年8月20日
發明者江瀅, 王劍, 胡晨 申請人:三星電子(中國)研發中心;三星電子株式會社