專利名稱:分布式存儲器類型的信息處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于處理大量數(shù)據(jù)的信息處理方法和信息處理裝置,并且更具體地,涉及采用并行計算機體系結(jié)構(gòu)的信息處理方法和信息處理系統(tǒng)。
背景技術(shù):
傳統(tǒng)上,執(zhí)行用于積累大量信息以及對積累的信息進行檢索和制表的數(shù)據(jù)處理。該數(shù)據(jù)處理被用于,例如,已知的計算機系統(tǒng)內(nèi),其中CPU、存儲器、外部設(shè)備接口、輔助存儲設(shè)備諸如硬盤、顯示設(shè)備諸如顯示器和打印機、輸入設(shè)備諸如鍵盤和鼠標,以及電源單元被通過總線連接。具體地,作為可運行于可在市場上容易得到的計算機系統(tǒng)內(nèi)的軟件提供該數(shù)據(jù)處理。為了執(zhí)行諸如檢索和制表的數(shù)據(jù)處理,具體地,各種用于積累大量數(shù)據(jù)的數(shù)據(jù)庫是已知的。具體地,在大量數(shù)據(jù)之間,存在對可表示為表格式的數(shù)據(jù)的處理的強烈需求。
是否可以有效地對大量數(shù)據(jù)進行檢索和制表取決于用于存儲所述大量數(shù)據(jù)的格式。在傳統(tǒng)上,所謂的“行單元”存儲技術(shù)和所謂的“項目單元”存儲技術(shù)作為一般的存儲技術(shù)為人所知。在行單元存儲技術(shù)的情況下,在磁盤上按記錄號的順序并且按邏輯地址增加的順序存儲為每個記錄號形成的性別、年齡和職業(yè)的項目值的組。在另一方面,在項目單元存儲技術(shù)的情況下,在磁盤上按記錄號的順序并且在邏輯地址增加的方向上記錄項目值。
在傳統(tǒng)技術(shù)的情況下,用于所有記錄號的所有項目的項目值被直接存儲在二維數(shù)據(jù)結(jié)構(gòu)內(nèi)(由記錄號的一個維度和其它項目值的一個維度構(gòu)成)。在下文中這種數(shù)據(jù)結(jié)構(gòu)被具體地稱為“數(shù)據(jù)表”。在傳統(tǒng)技術(shù)的情況下,在對積累的數(shù)據(jù)進行檢索和制表時,訪問該數(shù)據(jù)表,以便執(zhí)行檢索和制表。
除了直接存儲項目的值作為項目值的方法之外,將值轉(zhuǎn)換為代碼并且將該代碼作為項目值存儲的方法也是已知的。即使在該情況下,該方法與上面所述的方法相同,經(jīng)過代碼轉(zhuǎn)換的代碼被作為項目值存儲在數(shù)據(jù)表內(nèi)。
在對使用傳統(tǒng)技術(shù)的數(shù)據(jù)表類型的數(shù)據(jù)結(jié)構(gòu)存儲的大量數(shù)據(jù)進行檢索或制表時,有一個問題,即,由于用于訪問這種數(shù)據(jù)表的訪問時間,用于檢索和制表的處理時間變長了。
所述數(shù)據(jù)表至少具有下面所述的基本缺點。
(1)數(shù)據(jù)表的大小增加。另外,例如,難以為各個項目(物理地)劃分數(shù)據(jù)表。實際上,難以在高速存儲設(shè)備諸如存儲器上擴展數(shù)據(jù)表,以便進行制表和檢索數(shù)據(jù)。
(2)不能以同時對各項目值排序的形式保持數(shù)據(jù)表。
(3)相同的值多次出現(xiàn)在數(shù)據(jù)表內(nèi)。
在另一方面,為了明顯地改進對大量數(shù)據(jù)檢索和制表的速度,發(fā)明人提出了一種用于檢索、制表和排序表格式數(shù)據(jù)的方法,以及一種用于通過提供數(shù)據(jù)管理機制執(zhí)行該方法的裝置,該數(shù)據(jù)管理機制具有傳統(tǒng)數(shù)據(jù)表的功能,并且其中解決了基于數(shù)據(jù)表的數(shù)據(jù)結(jié)構(gòu)的問題(見,例如,專利文檔1)。
提出的用于對表格式的數(shù)據(jù)進行檢索和制表的方法和裝置引入了可用于通常的計算機系統(tǒng)內(nèi)的新的數(shù)據(jù)管理機制。實際上,該數(shù)據(jù)管理機制具有值管理表和指向值管理表的指針數(shù)組。
圖1是用于解釋傳統(tǒng)數(shù)據(jù)管理機制的圖。在該圖中,示出了值管理表110和指向值管理表的指針數(shù)組120。值管理表110是這樣的表,其中按照項目值號的順序-對于各個項目,項目值號給出屬于表格式數(shù)據(jù)的項目的項目值的順序(以整數(shù)表示項目值)-對相應(yīng)于該項目值號的項目值(見參考號111)和與該項目值有關(guān)的分類號(見參考號112)排序。指向值管理表的指針數(shù)組120是這樣的數(shù)組,其中表格式數(shù)據(jù)的某列(即,項目)的項目值號,即,指向值管理表110的指針被按表格式數(shù)據(jù)的記錄號的順序存儲。
通過將指向值管理表的指針數(shù)組120組合到值管理表110內(nèi),當給出某個記錄號時,通過從指向與預(yù)定項目相關(guān)的值管理表的指針數(shù)組120中提取與記錄號結(jié)合在一起存儲的項目值號,并且然后提取與該項目值號結(jié)合在一起存儲在值管理表110內(nèi)的項目值,可以從該記錄號獲得項目值。因此,如在傳統(tǒng)的數(shù)據(jù)表中,可以使用記錄號(行)和項目(列)的坐標訪問所有數(shù)據(jù)(項目值)。
在下面的解釋中,包括為表格式數(shù)據(jù)中的項目內(nèi)的某個項目創(chuàng)建的值管理表,以及以這種方式指向該值管理表的指針數(shù)組的數(shù)據(jù)管理機制可以具體地稱為信息塊。
在傳統(tǒng)的數(shù)據(jù)表中,使用由相應(yīng)于記錄的行和相應(yīng)于項目的列構(gòu)成的坐標綜合管理所有數(shù)據(jù)。在另一方面,該信息塊具有一個特征,即,對于各個項目,數(shù)據(jù)被完全與表格式的每個列分離開。根據(jù)該數(shù)據(jù)管理機制,由于為各個項目將大量數(shù)據(jù)分離開,可以僅將與檢索和制表所必需的項目有關(guān)的數(shù)據(jù)記錄在高速存儲設(shè)備諸如存儲器上。結(jié)果,減少了訪問數(shù)據(jù)的時間。因此,提高了檢索和制表的處理速度,并且即使在具有極多數(shù)目項目的數(shù)據(jù)的情況下,也可以處理這些數(shù)據(jù)而不會降低性能。
在這種信息塊的情況下,項目值被存儲在值管理表內(nèi),并且指示該值出現(xiàn)的位置的記錄號與指向該值管理表的指針數(shù)組相關(guān)聯(lián)。因此,不必按記錄號的順序布置項目值。從而可以根據(jù)適合于檢索和制表的項目值對數(shù)據(jù)排序。這使得可以快速判斷與目標值相符的項目值是否出現(xiàn)在數(shù)據(jù)中。此外,因為項目值相應(yīng)于項目值號,甚至可將帶有長的項目值的數(shù)據(jù),字符串等視為整數(shù)。
此外,根據(jù)該數(shù)據(jù)管理機制,值管理表110內(nèi)的所有項目值號相應(yīng)于不同的項目值。因此,在提取包括具有特定值的項目值的記錄時,該提取所需的特定值和項目值的比較次數(shù)是項目值的種類數(shù),它最大是項目值號的數(shù)目。極大地減少了比較操作的次數(shù),并且實現(xiàn)了檢索和制表的提速。在該情況下,雖然用于存儲檢查某個項目值是否相關(guān)的結(jié)果的位置是必需的,例如,可以使用分類號112作為該存儲位置。
在圖2中,示出了包括由其中存儲有項目值的項目值數(shù)組211,其中存儲著分類號的分類號數(shù)組212,和存儲著出現(xiàn)的數(shù)目的出現(xiàn)數(shù)目數(shù)組214構(gòu)成的值管理表210的信息塊。在出現(xiàn)數(shù)目數(shù)組214中,分別存儲著表示在所有數(shù)據(jù)中出現(xiàn)了多少與某個項目相關(guān)的項目值,即,具有預(yù)定的項目值的記錄數(shù)。通過準備值管理表210中的這種出現(xiàn)數(shù)目數(shù)組214,可以立即獲得檢索和制表中所需的“出現(xiàn)了何種數(shù)據(jù)(以及多少數(shù)據(jù))”的信息。因此,實現(xiàn)了檢索和制表的提速。
然而,即使在這種數(shù)據(jù)管理機制中,雖然值列表和指針數(shù)組,具體地,指針數(shù)組根據(jù)記錄數(shù)的增加變的非常大,根據(jù)使用的硬件資源,可處理的數(shù)據(jù)量是有限的。
在除了上述的表格式數(shù)據(jù)的信息處理之外的領(lǐng)域中也需要對大量數(shù)據(jù)的處理。當今計算機被安裝在整個社會的各處,并且網(wǎng)絡(luò)諸如因特網(wǎng)遍布各處,大量數(shù)據(jù)在各處積累起來。需要大量的計算以便處理這種大量的數(shù)據(jù)。自然會試圖引入并行處理以便進行計算。
并行處理的體系結(jié)構(gòu)粗略地分為“共享存儲器類型”和“分布式存儲器類型”。前者(“共享存儲器類型”)是多個處理器共享一個巨大的存儲器空間的系統(tǒng)。在該系統(tǒng)內(nèi),因為處理器組和共享存儲器間的通信量是瓶頸,不易構(gòu)造使用一百個或更多處理器的實際系統(tǒng)。因此,例如,在計算十億個浮點變量的平方根時,單個CPU的加速比最多是100倍,根據(jù)經(jīng)驗,上限是大約為30倍。
在后者(“分布式存儲器類型”)中,各個處理器具有本地存儲器,并且本地存儲器被結(jié)合在一起構(gòu)成系統(tǒng)。在該系統(tǒng)內(nèi),可以設(shè)計包括幾百個到幾萬個處理器的硬件系統(tǒng)。因此,在計算十億個浮點變量的平方根時,單個CPU的加速比可以被設(shè)置為幾百到幾萬倍。
專利文檔1國際公開號WO00/10103小冊子發(fā)明內(nèi)容本發(fā)明解決的問題
然而,在“分布式存儲器類型”的并行處理體系結(jié)構(gòu)中還存在若干問題。
第一個問題對大數(shù)組的共享管理“分布式存儲器類型”的第一個問題是數(shù)據(jù)的共享管理問題。
不能在由一個處理器擁有的本地存儲器內(nèi)存儲大量數(shù)據(jù)(因為數(shù)據(jù)一般為數(shù)組,這些數(shù)據(jù)在下文中被解釋為數(shù)組)。大量數(shù)據(jù)不可避免地要接受多個本地存儲器的共享管理。很明顯,除非引入有效和靈活的共享管理機制,在開發(fā)并且執(zhí)行程序時會出現(xiàn)各種困難。
第二個問題處理器間通信的低效率當分布式存儲器類型系統(tǒng)的每個處理器試圖訪問大數(shù)組時,雖然處理器可以快速地訪問由該處理器擁有的本地存儲器上的數(shù)組元素,對于訪問由其它處理器擁有的數(shù)組元素來說,處理器間的通信是不可缺少的。與和本地存儲器的通信相比,這種處理器間的通信具有非常低的性能,并且需要至少100個時鐘。因此,當執(zhí)行排序時,由于執(zhí)行對整個大數(shù)組的訪問,并且頻繁出現(xiàn)處理器間的通信,性能顯著地下降。
將更具體地解釋這個問題。在1999年,使用1到幾個CPU,個人計算機被構(gòu)造為“共享存儲器類型”的計算機。用于這種個人計算機內(nèi)的典型的CPU以大約5到6倍于存儲器總線時鐘的內(nèi)部時鐘運行,其內(nèi)包括有自動并行執(zhí)行功能和自動流水線處理功能,并且可以大約用一個時鐘(存儲器總線)處理一個數(shù)據(jù)。
因此,在“分布式存儲器類型”的多處理器系統(tǒng)內(nèi),因為處理器數(shù)目多,處理速度比單個處理器(共享存儲器類型)低一百倍。
第三個問題程序提供“分布式存儲器類型”的第三個問題是如何將程序提供給大量的處理器的問題。
在用于將單獨的程序裝載到數(shù)目非常多的處理器內(nèi),以便使所有處理器協(xié)同運行的系統(tǒng)中(MIMD多指令流多數(shù)據(jù)流),創(chuàng)建、匯編和分發(fā)程序需要大量的裝載。
在另一方面,在用于使大量處理器以相同程序運行的系統(tǒng)內(nèi)(SIMD單指令流多數(shù)據(jù)流),程序的自由程度下降了,并且可以預(yù)見不能開發(fā)出產(chǎn)生所希望的結(jié)果的程序的情況。
因此,鑒于傳統(tǒng)的分布式存儲器類型的并行體系結(jié)構(gòu)的問題,本發(fā)明的目的是提供一種信息處理方法,該方法能夠在將大量數(shù)據(jù)保持在單獨處理器內(nèi)的同時實現(xiàn)對大量數(shù)據(jù)排序和制表,而不用在處理器之間共享大量數(shù)據(jù),以便盡可能多地減少處理器間的通信。
本發(fā)明的另一個目的是提供一種信息處理系統(tǒng)內(nèi)的信息處理方法,在該信息處理系統(tǒng)內(nèi)分別具有存儲著有序值列表的存儲器的多個處理模塊被邏輯地連接為環(huán)形,該方法給為各個處理模塊單獨排序的值分配在多個處理模塊之間共用的順序號,以便實現(xiàn)高速制表處理。
此外,本發(fā)明的目的是提供一種實現(xiàn)該信息處理方法的信息處理系統(tǒng)。
本發(fā)明的另一個目的是提供一種由計算機執(zhí)行的用于實現(xiàn)該信息處理方法的程序。
用于解決該問題的手段本發(fā)明采用分布式存儲器類型的并行處理體系結(jié)構(gòu),其中在單獨處理器模塊內(nèi)本地地存儲作為表格式數(shù)據(jù)的基本元素的值列表和指針數(shù)組,而不是數(shù)據(jù)本身,在多個處理模塊之間全局地存儲數(shù)據(jù)的順序號(或順序)的索引。本發(fā)明還采用這樣的算法,其中處理和通信被集成到輸入和輸出內(nèi),并且根據(jù)單個命令處理存儲在各種存儲器內(nèi)的數(shù)據(jù)。
通過一種對存儲在信息處理系統(tǒng)內(nèi)的多個處理模塊內(nèi)的項目值進行制表的信息處理方法實現(xiàn)本發(fā)明的目的,在該信息處理系統(tǒng)內(nèi),多個處理模塊被邏輯地連接為環(huán)形,并且每個處理模塊包括以值列表和指針數(shù)組的形式存儲表格式數(shù)據(jù)的存儲器,所述表格式數(shù)據(jù)表示包括相應(yīng)于信息項目的項目值的記錄的數(shù)組,在所述值列表內(nèi),項目值被以相應(yīng)于該項目值的項目值號的順序存儲,并且在所述指針數(shù)組內(nèi)用于指定項目值號的信息被以記錄的順序存儲,該信息處理方法包括在每個處理模塊內(nèi),在所述存儲器內(nèi)存儲被唯一地分配給所述多個處理模塊中的處理模塊中的記錄的全局記錄號,和按所述多個處理模塊中的處理模塊中的項目值排序的全局項目值號的步驟;在每個處理模塊內(nèi),在所述處理模塊內(nèi),按根據(jù)至少一個或多個指定的項目的全局項目值號組確定的順序?qū)λ鲇涗浥判虻牟襟E;在每個處理模塊內(nèi),在所述存儲器內(nèi)存儲相應(yīng)于所述記錄的全局項目值號組的步驟,所述全局項目值號組與表示所述在所述全局項目值號組中排序的記錄的順序的維度值號相關(guān)聯(lián);在每個處理模塊內(nèi),從其它處理模塊相互獲取全局項目值號組,對順序高于所述處理模塊內(nèi)的全局項目值號組的全局項目值號組的數(shù)目計數(shù),并且通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的全局項目值號組的維度值號,給所述全局項目值號組分配在所述多個處理模塊間共用的全局維度值號的步驟;在每個處理模塊內(nèi),為每個全局項目值號組,通過根據(jù)預(yù)定的規(guī)則對信息的預(yù)定項目的項目值制表,計算本地制表值的步驟;在每個處理模塊內(nèi),從其它處理模塊獲取每個全局項目值號組的本地制表值,并且通過對為每個全局項目值號組獲取的制表值進行制表計算制表值的步驟。
根據(jù)本發(fā)明,在將接受共享管理的表格式數(shù)據(jù)的值列表和指針數(shù)組保持在各個處理模塊內(nèi)的同時,根據(jù)每個處理模塊內(nèi)的排序處理,用于分配全局維度值號的處理,本地制表處理和制表結(jié)果的本地制表,可以高速地對整個表格式數(shù)據(jù)執(zhí)行制表。
根據(jù)優(yōu)選實施例,該信息處理方法,在所述計算制表值的步驟之后,還包括在每個處理模塊內(nèi),從所述全局項目值號組恢復(fù)一組項目值,并且創(chuàng)建包括該組項目值以及相應(yīng)于該組項目值的制表值的結(jié)果表的步驟。因此,由于以表的形式保持制表結(jié)果,可以將該制表結(jié)果用于另外的制表。
此外,通過執(zhí)行該信息處理方法的信息處理系統(tǒng)實現(xiàn)本發(fā)明的目的。本發(fā)明的信息處理系統(tǒng)是這樣的系統(tǒng),其中多個處理模塊邏輯地連接成環(huán)形,并且每個處理模塊包括以值列表和指針數(shù)組的形式存儲表格式數(shù)據(jù)的存儲器,所述表格式數(shù)據(jù)表示包括相應(yīng)于信息項目的項目值的記錄的數(shù)組,在所述值列表中,按相應(yīng)于項目值的項目值號的順序存儲項目值,在所述指針數(shù)組中,按所述記錄的順序存儲用于指定所述項目值號的信息,其中每個處理模塊在所述存儲器內(nèi)存儲被唯一地分配給所述多個處理模塊中的處理模塊中的記錄的全局記錄號和按所述多個處理模塊中的處理模塊中的項目值排序的全局項目值號;每個處理模塊包括本地排序裝置,用于在所述處理模塊內(nèi),按根據(jù)至少一個或多個指定的項目的全局項目值號組確定的順序?qū)λ鲇涗浥判?;維度值編號裝置,用于在所述存儲器內(nèi)存儲相應(yīng)于所述記錄的全局項目值號組,所述全局項目值號組按所述在所述全局項目值號組中的排序的記錄的順序與維度值號相關(guān)聯(lián);全局維度值編號裝置,用于從其它處理模塊相互獲取全局項目值號組,對順序高于所述處理模塊內(nèi)的全局項目值號組的全局項目值號組的數(shù)目計數(shù),并且通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的全局項目值組的維度值號,給所述全局項目值號組分配在所述多個處理模塊間共用的全局維度值號;制表裝置,用于為每個全局項目值號組,通過根據(jù)預(yù)定的規(guī)則對信息的預(yù)定項目的項目值制表,計算本地制表值;和全局制表裝置,用于從其它處理模塊獲取每個全局項目值號組的本地制表值,并且通過對為每個全局項目值號組獲取的制表值進行制表計算制表值。
根據(jù)本發(fā)明的優(yōu)選實施例,在該信息處理系統(tǒng)內(nèi),每個處理模塊還包括用于從所述全局項目值號組中恢復(fù)一組項目值,并且創(chuàng)建包括該組項目值以及相應(yīng)于該組項目值的制表值的結(jié)果表的裝置,該裝置被連接到所述全局制表裝置。
通過一種程序?qū)崿F(xiàn)本發(fā)明的目的,該程序用于使得信息處理系統(tǒng)內(nèi)的處理模塊的計算機執(zhí)行下面的步驟,在所述信息處理系統(tǒng)內(nèi),多個處理模塊邏輯地連接為環(huán)形,并且每個處理模塊包括以值列表和指針數(shù)組的形式存儲表格式數(shù)據(jù)的存儲器,所述表格式數(shù)據(jù)表示包括相應(yīng)于信息項目的項目值的記錄的數(shù)組,在所述值列表中,按相應(yīng)于項目值的項目值號的順序存儲項目值,在所述指針數(shù)組中,按所述記錄的順序存儲用于指定所述項目值號的信息,所述步驟包括在存儲器內(nèi)存儲被唯一地分配給所述多個處理模塊中的處理模塊中的記錄的全局記錄號和按所述多個處理模塊中的處理模塊中的項目值排序的全局項目值號的步驟;在所述處理模塊內(nèi),按根據(jù)至少一個或多個指定的項目的全局項目值號組設(shè)置的順序?qū)λ鲇涗浥判虻牟襟E;在所述存儲器內(nèi)存儲相應(yīng)于所述記錄的全局項目值號組的步驟,所述全局項目值號組與表示所述在所述全局項目值號組中的排序的記錄的順序的維度值號相關(guān)聯(lián);從其它處理模塊相互獲取全局項目值號組,對順序高于所述處理模塊內(nèi)的全局項目值號組的全局項目值號組的數(shù)目計數(shù),并且通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的全局項目值號組的維度值號,給所述全局項目值號組分配在所述多個處理模塊間共用的全局維度值號的步驟;為每個全局項目值號組,通過根據(jù)預(yù)定的規(guī)則對信息的預(yù)定項目的項目值制表,計算本地制表值的步驟;和在每個處理模塊內(nèi),從其它處理模塊獲取每個全局項目值號組的本地制表值,并且通過對為每個全局項目值號組獲取的制表值進行制表計算制表值的步驟。
在優(yōu)選實施例中,在所述計算制表值的步驟之后,該程序還包括使得所述處理模塊的計算機執(zhí)行從所述全局項目值號組恢復(fù)一組項目值,并且創(chuàng)建包括該組項目值以及相應(yīng)于該組項目值的制表值的結(jié)果表的步驟。
通過一種信息處理方法實現(xiàn)本發(fā)明的另一個目的,該信息處理方法用于給在信息處理系統(tǒng)中的每個處理模塊內(nèi)單獨排序的值分配在多個處理模塊間共用的順序號,在所述信息處理系統(tǒng)內(nèi),多個分別具有存儲著排序值列表的存儲器的處理模塊被邏輯地連接為環(huán)形,該信息處理方法包括在每個處理模塊內(nèi),在所述存儲器內(nèi)存儲相應(yīng)于所述處理模塊內(nèi)的所述值列表中的各個值的順序號的初始值的步驟;在每個處理模塊內(nèi),將存儲在該處理模塊的存儲器內(nèi)的值列表傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的第一傳輸步驟;在每個處理模塊內(nèi),對于所述處理模塊內(nèi)的值列表的各個值,對順序高于從被邏輯地連接到前一級的處理模塊接收的值列表內(nèi)的各個值的值的數(shù)目計數(shù),通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,更新該處理模塊內(nèi)的值列表中的各個值的順序號,并且將更新的順序號存儲在所述存儲器內(nèi)的第一更新步驟;在每個處理模塊內(nèi),將另一個值列表傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的第二傳輸步驟,通過從接收自被邏輯地連接到前一級的處理模塊的值列表的值中排除與該處理模塊內(nèi)的值列表中的值相符的值獲得所述另一個值列表;在每個處理模塊內(nèi),對于所述處理模塊內(nèi)的值列表中的各個值,對順序高于從被邏輯地連接到前一級的處理模塊接收的所述另一個值列表內(nèi)的各個值的值的數(shù)目計數(shù),通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,更新該處理模塊內(nèi)的值列表中的各個值的順序號,并且將更新的順序號存儲在所述存儲器內(nèi)的第二更新步驟;和在每個處理模塊內(nèi),重復(fù)執(zhí)行第二傳輸步驟和第二更新步驟,直到被邏輯地連接到前一級的處理模塊通過被邏輯地連接為環(huán)形的其它處理模塊接收到在第一傳輸步驟中傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的值列表為止的步驟。
通過一種執(zhí)行信息處理方法的信息處理系統(tǒng)實現(xiàn)本發(fā)明的另一個目的。根據(jù)本發(fā)明的該信息處理系統(tǒng)包括分別具有存儲著排序值列表的存儲器的多個處理模塊,以及將所述多個處理模塊邏輯地連接為環(huán)形的傳輸路徑,該信息處理系統(tǒng)給每個處理模塊內(nèi)的值列表內(nèi)的值分配在多個處理模塊間共用的順序號,其中每個處理模塊包括初始化裝置,用于在所述存儲器內(nèi)存儲所述處理模塊內(nèi)的值列表內(nèi)的各個值的順序號的初始值,并且將存儲在該處理模塊的存儲器內(nèi)的值列表傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊;接收裝置,用于從被邏輯地連接到前一級的處理模塊接收值列表;更新裝置,用于對于所述處理模塊內(nèi)的值列表中的各個值,對順序高于由所述接收裝置接收的值列表內(nèi)的各個值的值的數(shù)目計數(shù),通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,更新該處理模塊內(nèi)的值列表中的各個值的順序號,并且在所述存儲器內(nèi)存儲更新的順序號;傳輸裝置,用于將另一個值列表傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊,通過從所述接收裝置接收的值列表中的值中排除與該處理模塊內(nèi)的值列表中的值相符的值獲得所述另一個值列表;和控制裝置,用于啟動所述初始化裝置,并且使得所述接收裝置、更新裝置和傳輸裝置重復(fù)操作,直到被邏輯地連接到前一級的處理模塊通過被邏輯地連接為環(huán)形的其它處理模塊接收到由所述初始化裝置傳輸?shù)闹盗斜頌橹埂?br>
此外,通過一種程序?qū)崿F(xiàn)本發(fā)明的另一個目的,該程序用于使得計算機執(zhí)行信息處理系統(tǒng)內(nèi)的信息處理方法,在所述信息處理系統(tǒng)內(nèi),多個分別具有存儲著排序值列表的存儲器的處理模塊被邏輯地連接為環(huán)形。該程序使得處理模塊的計算機執(zhí)行在所述存儲器內(nèi)存儲所述處理模塊內(nèi)的值列表中的各個值的順序號的初始值的步驟;將存儲在該處理模塊的存儲器內(nèi)的值列表傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的第一傳輸步驟;對于所述處理模塊內(nèi)的值列表中的各個值,對順序高于從被邏輯地連接到前一級的處理模塊接收的值列表內(nèi)的各個值的值的數(shù)目計數(shù),通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,更新該處理模塊內(nèi)的值列表中的各個值的順序號,并且將更新的順序號存儲在所述存儲器內(nèi)的第一更新步驟;將另一個值列表傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的第二傳輸步驟,通過從接收到的值列表的值中排除與該處理模塊內(nèi)的值列表中的值相符的值獲得所述另一個值列表;對于所述處理模塊內(nèi)的值列表中的各個值,對順序高于接收自被邏輯地連接到前一級的處理模塊的所述另一個值列表內(nèi)的各個值的值的數(shù)目計數(shù),通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,更新該處理模塊內(nèi)的值列表中的各個值的順序號,并且將更新的順序號存儲在所述存儲器內(nèi)的第二更新步驟;和重復(fù)執(zhí)行第二傳輸步驟和第二更新步驟,直到被邏輯地連接到前一級的處理模塊通過被邏輯地連接為環(huán)形的其它處理模塊接收到在第一傳輸步驟中傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的值列表為止的步驟。
本發(fā)明的優(yōu)點根據(jù)本發(fā)明,可以提供一種信息處理方法和信息處理系統(tǒng),基于分布式存儲器類型的并行處理體系結(jié)構(gòu),通過采用新的數(shù)據(jù)結(jié)構(gòu)和新的并行處理算法,該信息處理方法和信息處理系統(tǒng)能夠?qū)崿F(xiàn)極快速的并行處理。
具體實施例方式下面將參考附圖解釋本發(fā)明的實施例。圖3是示意性地示出了根據(jù)本發(fā)明的實施例的信息處理系統(tǒng)的方框圖。在該實施例中,由帶有處理器的存儲器模塊構(gòu)成處理模塊(下面被稱為“PMM”)。如圖3所示,在該實施例中,為了以環(huán)形邏輯地連接多個處理模塊,帶有處理器的多個存儲器模塊PMM32-0、PMM32-1、PMM32-2等被布置為環(huán)形。用于順時針傳輸數(shù)據(jù)的第一總線(見,例如,參考號34-0和34-1)和用于逆時針傳輸數(shù)據(jù)的第二總線(見,例如,參考號36-0和36-1)連接相鄰的存儲器模塊。在第一和第二總線中,執(zhí)行PMM間的包通信。在該實施例中,傳輸路徑-通過該傳輸路徑執(zhí)行該包通信(包傳輸路徑)-被稱為第一和第二總線。
在該實施例中,在一方面,PMM被用于順時針傳輸包的第一總線連接為環(huán)形(第一傳輸路徑),并且在另一方面,被用于逆時針傳輸包的第二總線連接為環(huán)形(第二傳輸路徑)。這種構(gòu)造是有利的,因為可以使得包傳輸?shù)难舆t時間等一致。
處理模塊間的物理連接形式不限于該實施例中表示出的形式??梢圆捎萌魏涡问剑灰梢詫⑻幚砟K邏輯地連接為環(huán)形即可。例如,可以采用諸如總線類型和星型的各種連接形式。
圖4是示出了PMM32的結(jié)構(gòu)的例子的圖。如圖4所示,每個PMM32-I包括根據(jù)PMM共用的命令,控制對存儲器的訪問、算數(shù)操作的執(zhí)行等的控制電路40,總線接口(I/F)42和存儲器44。
存儲器44具有多個體BANK0,1,...,和n(參考號46-0,...,46-n),并且可以在每個體內(nèi)存儲后面描述的預(yù)定的數(shù)組。
控制電路40能夠與外部的其它計算機等交換數(shù)據(jù)。所述其它計算機能夠根據(jù)總線仲裁訪問存儲器的所希望的體。
在本實施例中制表的含意是,例如,針對某個項目(維度)的每個確定的項目值(維度值),對被表示為包括相應(yīng)于信息項目的項目值的記錄數(shù)組的表格式數(shù)據(jù)中的另一個項目的項目值(測量)制表。測量的制表的含意是對測量的數(shù)目計數(shù)、計算測量的總和、以及計算測量的平均值。維度的數(shù)目可以是2或更多。例如,圖5是某個幼兒園內(nèi)的幼兒的性別、年齡和身高的邏輯表格式數(shù)據(jù)。用于按性別和年齡計算身高總值的處理是這個實施例中的制表處理。
通過使用國際公開號WO00/10103中提出的數(shù)據(jù)管理機制,將圖5中示出的表格式數(shù)據(jù)作為圖6中示出的數(shù)據(jù)結(jié)構(gòu)存儲在單個計算機內(nèi)。
如圖6中所示,在關(guān)聯(lián)表格式數(shù)據(jù)的各個記錄的排列順序號和內(nèi)部數(shù)據(jù)的排列順序號的數(shù)組601(此后被縮寫為“OrdSet”)中,內(nèi)部數(shù)據(jù)的排列順序號被布置為針對表格式的每一個記錄的值。該例子中,由于所有的表格式數(shù)據(jù)被表示為內(nèi)部數(shù)據(jù),表格式數(shù)據(jù)的記錄號和內(nèi)部數(shù)據(jù)的排列順序號彼此相符。
例如,對于性別,從數(shù)組OrdSet601中可見,相應(yīng)于表格式數(shù)據(jù)的記錄0的內(nèi)部數(shù)據(jù)的排列順序號為“0”。通過訪問指向通過根據(jù)預(yù)定順序?qū)嶋H值排序而獲得的值列表603(此后縮寫為“VL”)的指針布置602(此后縮寫為“VNo”),可以獲取關(guān)于帶有排列順序號“0”的記錄的性別的實際值,即,“男”或“女”。在指針數(shù)組602內(nèi),指示實際值列表603內(nèi)的元素的指針被按照存儲在數(shù)組OrdSet601內(nèi)的排列順序號的順序存儲。因此,可以通過(1)從數(shù)組OrdSet601中提取相應(yīng)于記錄“0”的排列順序號“0”,(2)從指向值列表的指針數(shù)組602中提取相應(yīng)于排列順序號“0”的元素“1”,和(3)從值列表603中提取由從指向值列表的指針數(shù)組602中提取的元素“1”指示的元素“女”,獲取相應(yīng)于表格式數(shù)據(jù)的記錄“0”的性別的項目值。
還可以用相同的方式獲得關(guān)于其它記錄的并且與年齡和身高相關(guān)的項目值。
以這種方式,由值列表VL和指向該值列表的指針數(shù)組VNo的組合表示表格式數(shù)據(jù)。該組合被具體地稱為“信息塊”。在圖6中,關(guān)于性別、年齡和身高的信息塊分別被指示為信息塊608、609和610。
如果單個計算機具有單個存儲器(可以是物理地提供的多個存儲器,但是就存儲器被布置在單個地址空間內(nèi)并且被在單個地址空間內(nèi)訪問而言,該存儲器是單個存儲器),僅需將構(gòu)成各個信息塊的順序組的數(shù)組OrdSet和值列表VL以及指針數(shù)組VNo存儲在該存儲器內(nèi)。為了保持大量的記錄,因為存儲器容量也根據(jù)存儲器的大小而增加,希望分布式地布置數(shù)組OrdSet、值列表VL以及指針數(shù)組VNo。從處理的并行的角度看,還希望可以共享和掌握分布式布置的信息。
因此,在本實施例中,多個PMM共享和掌握記錄數(shù)據(jù)而不用彼此重疊,并且通過PMM間的包通信實現(xiàn)高速制表。
圖7是用于解釋根據(jù)本實施例的數(shù)據(jù)存儲結(jié)構(gòu)的圖。在該圖中,作為例子,在4個處理模塊PMM-0,PMM-1,PMM-2,PMM-3內(nèi)分布式地布置并共享和掌握由圖5和6指示的表格式數(shù)據(jù)。為了方便解釋,處理模塊的數(shù)目為4。然而,本發(fā)明不受處理模塊的數(shù)目的限制。
在本實施例中,為了可以唯一地對由4個PMM即PMM-0到PMM-3掌握的所有記錄中的由每個PMM共享和掌握的記錄進行排序,給每個記錄唯一地分配一個全局記錄號。在圖7中,以“GOrd”表示全局記錄號。該全局記錄號GOrd指示每個PMM內(nèi)的數(shù)組OrdSet的每個元素位于所有記錄內(nèi)的哪個位置。數(shù)組OrdSet被設(shè)置為是從整個數(shù)據(jù)到每個PMM的內(nèi)部的順序存儲映射。因此,GOrd可以是升序的。在每個PMM內(nèi),GOrd數(shù)組(=全局順序組數(shù)組)的大小與OrdSet數(shù)組(順序組數(shù)組)的大小相符。
此外,在該實施例中,提供了全局項目值號,用于指示由每個PMM共享和掌握的每個項目值,即,值列表VL內(nèi)的每個值放置在由所有PMM掌握的項目值中的位置。在圖7中,該全局項目值號被指示為“GVNo”。因為值列表VL內(nèi)的值以該值的順序布置(例如,升序或降序),全局項目值號GVNo也以升序(或降序)設(shè)置。數(shù)組GVNo的大小與數(shù)組VL的大小相符。通過指出由每個處理模塊單獨掌握的項目值在所有項目值內(nèi)處于哪個位置,可以將每個處理模塊內(nèi)的制表結(jié)果綜合到作為整體的一個結(jié)果內(nèi)。
在圖7中,分配給每個PMM的值OFFSET是一個偏移值,用于指示接受該PMM的共享控制的頂部記錄相應(yīng)于圖6中示出的完整的記錄內(nèi)的哪個記錄。如上所述,每個PMM的數(shù)組OrdSet被設(shè)置為是從整個數(shù)據(jù)到每個PMM的內(nèi)部的順序存儲映射。因此,通過疊加該偏移值OFFSET和該PMM內(nèi)的數(shù)組OrdSet的元素的值而獲得的值與全局記錄號GOrd相符。優(yōu)選地,將該偏移值通知給每個PMM,并且每個PMM可以基于該偏移值OFFSET確定全局記錄號。
可以事先在每個PMM之外計算每個PMM的全局記錄號GOrd和全局項目值號CVNo并且在每個PMM內(nèi)進行設(shè)置。然而,每個PMM自身能夠根據(jù)后面所述的匯編處理設(shè)置全局記錄號GOrd和全局項目值號CVNo。
將解釋根據(jù)該實施例的制表處理。這樣構(gòu)造根據(jù)該實施例的制表算法,從而可以在所有處理模塊內(nèi)執(zhí)行相同的處理。該制表算法還被這樣構(gòu)造,從而通過給多個處理模塊分配單個制表處理指令,多個處理模塊可以并行操作和執(zhí)行制表處理。因為所有處理模塊執(zhí)行相同的操作,可以通過創(chuàng)建一個程序簡單地實現(xiàn)并行處理。
本實施例中的制表算法給用于制表的維度值分配在所有處理模塊間共用的全局維度值號,在每個處理模塊內(nèi)對每個維度值號的測量制表,并且最后對所述測量全局地,即,在所有處理模塊間共同地制表。因此,根據(jù)本實施例的制表算法,在每個處理模塊內(nèi)本地地保持值列表和指向值列表的指針數(shù)組。根據(jù)該制表算法,不在多個處理模塊之間共同保持值列表和指針數(shù)組,而是在多個處理模塊之間全局地保持一個索引,即,維度值的順序。結(jié)果,防止多個處理模塊彼此訪問存儲器以獲取制表所需的數(shù)據(jù),并且僅在處理模塊之間傳遞確定維度值的順序所需的數(shù)據(jù)。因此,減少了通信量,并且實現(xiàn)了處理提速。
圖8是根據(jù)本發(fā)明的制表處理的流程圖。如圖8所示,首先,準備接受各個處理模塊的共享管理的表格式數(shù)據(jù)(步驟801)。更具體地,每個處理模塊在存儲器內(nèi)存儲唯一地分配給多個處理模塊中的處理模塊內(nèi)的記錄的全局記錄號,以及根據(jù)多個處理模塊中的處理模塊內(nèi)的項目值排序的全局項目值號。
每個處理模塊在該處理模塊內(nèi)按照指定項目的一個或多個維度的一組全局項目號的號碼順序?qū)τ涗浥判?步驟802)。
此外,通過以排序的記錄的順序分配維度值號,每個處理模塊在存儲器內(nèi)存儲相應(yīng)于所述記錄的全局項目值號組(步驟803)。
每個處理模塊從其它處理模塊相互獲取全局項目值號組,對排序高于該處理模塊內(nèi)的該組全局項目值號的組的數(shù)目計數(shù),并且通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的該組全局項目值號的維度值號,給該組全局項目值號分配在多個處理模塊之間共用的全局維度值號(步驟804)。
隨后,通過根據(jù)預(yù)定規(guī)則對預(yù)定信息的項目的項目值制表,每個處理模塊為每組全局項目值號計算本地制表值(步驟805)。
最后,每個處理模塊從其它處理模塊獲取每組全局項目值號的本地制表值,并且通過對獲取的每組全局項目值號的制表值制表,計算制表值(步驟806)。
在步驟806的制表值計算之后,每個處理模塊可以從全局項目值號組中恢復(fù)項目值組,并且創(chuàng)建包括項目值組和相應(yīng)于該項目值組的制表值的結(jié)果表(步驟807)。因為以表的形式保持該結(jié)果,通過進一步對該表制表可以容易地獲得關(guān)于另一維度的制表。例如,從根據(jù)性別和年齡而獲得的制表結(jié)果,可以容易地創(chuàng)建性別的制表結(jié)果。
將基于圖5中示出的表格式數(shù)據(jù),更詳細地解釋根據(jù)本實施例的制表處理。例如,當圖5中所示的表格式數(shù)據(jù)接受多個處理模塊的共享管理以便執(zhí)行上述的步驟801時,獲得圖7中所示的數(shù)據(jù)的存儲結(jié)構(gòu)。
對圖7中示出的數(shù)據(jù)應(yīng)用“根據(jù)性別和年齡計算身高的總值”的制表處理。性別和年齡是維度,并且身高是測量。
在步驟802,對于圖7中示出的數(shù)據(jù),在每個處理模塊內(nèi),即,每個本地環(huán)境中,存儲關(guān)于兩個維度,即,維度“年齡”和維度“性別”的每個本地環(huán)境的記錄。當在兩個或更多維度中執(zhí)行排序時,逐級地按適當?shù)木S度的順序執(zhí)行排序。一般地,由于當項目值種類數(shù)目較大時,跟隨該排序發(fā)生的置換更頻繁。因此,按從具有最大項目值種類數(shù)的維度開始對維度排序更有效。在該例子中,當對性別和年齡進行比較時,由于年齡的項目值種類數(shù)(包括一歲,二歲和三歲的3種)大于性別的項目值的種類數(shù)(包括男和女的2種),按年齡和性別的順序執(zhí)行排序。
在該實施例中,本地環(huán)境下的排序等同于置換排列順序號的數(shù)組OrdSet的元素的順序。例如,假設(shè)初始階段的排列順序號的數(shù)組的元素是0(即,記錄0),1(即,記錄1),和2(即,記錄2),并且記錄0的年齡值為3歲,記錄1的年齡值為1歲,并且記錄2的年齡值為2歲。當按從具有最小年齡的一個記錄開始的順序布置記錄時,以記錄1,記錄2和記錄3的順序布置記錄。通過以1,2,0的順序替換排列順序號數(shù)組表示此時的排序結(jié)果。對于后面的處理,該本地排序之后的順序被設(shè)置在排列順序號數(shù)組OrdSet內(nèi)。
圖9是在每個處理模塊內(nèi)通過對圖7中所示的數(shù)據(jù)順序地應(yīng)用按照年齡排序和按照性別排序獲得的結(jié)果。在圖9中,為了簡化說明,未示出關(guān)于身高的信息塊。以從具有最小年齡的記錄開始的順序執(zhí)行按年齡排序,并且按男和女的順序執(zhí)行按性別排序。根據(jù)該本地排序,PMM-0中的記錄被按照記錄1(男,1歲,82cm),記錄2(女,2歲,69cm)和記錄0(女,3歲,78cm)的順序排序,PMM-1中的記錄被按照記錄1(男,3歲,91cm),記錄0(女,1歲,82cm)的順序排序,PMM-2中的記錄被按照記錄0(女,1歲,76cm),記錄1(女,1歲,78cm)和記錄2(女,2歲,84cm)的順序排序,并且PMM-3中的記錄被按照記錄0(男,3歲,87cm),記錄1(女,3歲,80cm)的順序排序。后面將描述該本地排序。
在步驟803,每個處理模塊按本地排序的記錄的順序(即,置換之后的排列順序號的數(shù)組OrdSet的元素的順序)給所選擇的維度(在該例子中,性別和年齡)的項目值號的組分配順序號。圖10是用于解釋該例子中的順序號分配的圖。為了簡化說明,忽略了關(guān)于身高的信息塊。
解釋關(guān)于PMM-0的記錄1,性別的值號是“0”,并且相應(yīng)于值號“0”的全局項目值號是“0”。年齡的值號是“0”,并且相應(yīng)于年齡的值號“0”的全局項目值號為“0”。因此,相應(yīng)于PMM-1內(nèi)的記錄1的項目值號組是(0,0),并且按本地排序的記錄的順序?qū)㈨樞蛱柗峙浣o該(0,0)。通過給予性別的全局項目值號和年齡的全局項目值號相同的順序號“0”,可以內(nèi)部地實現(xiàn)給項目值號的組分配順序號。在該例子中,由于PMM-0中的記錄1是本地排序的第一個記錄,將順序號“0”分配給相應(yīng)于它的項目值號組(0,0)。因為PMM-0中的記錄以記錄1,記錄2和記錄0的順序排序,將順序號“1”給予相應(yīng)于記錄2的全局項目值號組(1,1),并且將順序號“2”給予相應(yīng)于記錄0的全局項目值號組(1,2)。
因為順序號被設(shè)置為與記錄相關(guān)聯(lián),當在PMM中存在具有相同維度值的兩個或多個記錄時,將不同的順序號分配給這些記錄。例如,在圖10中,PMM-2中的記錄0和記錄1內(nèi)的性別都是女,并且年齡都是1歲。因此,記錄0和記錄1內(nèi)的全局項目值號組都是(0,1)。當對一個對象進行檢索或排序時,即使全局值號的組相同,也必須單獨處理不同記錄。例如,通過組合使用全局值號的組和全局記錄號GOrd,可以分別對待所有記錄。然而,當如該例子中對一個對象制表時,將具有相同的全局項目值號組的記錄,即,具有相同維度值的記錄,視為相同維度是方便的。因此,在本實施例中,重新分配順序號,從而將相同的號碼分配給具有相同的全局項目值號組的記錄。此后將以這種方式重新分配的順序號稱為本地維度值號LDimNo。本地維度值號是僅在全局項目值號組不同時一個接一個增加的號碼。圖11是用于解釋這種本地維度值號的分配的圖。在該例子中,在PMM-0,PMM-1和PMM-3中順序號和本地維度值號是相同的。然而,在PMM-2中,按照排序的記錄的順序,本地維度值號是“0”,“0”和“1”。
在步驟804,通過將分配給全局項目值號組的本地維度值號LdimNo轉(zhuǎn)換為在多個處理模塊之間共用的全局維度值號GDimNo,每個處理模塊對維度值進行全局排序。當對維度值進行全局排序時,如后面所述,通過在每個處理模塊內(nèi)執(zhí)行針對每個維度值的制表,并且然后綜合制表結(jié)果,可以獲得總的制表結(jié)果。
圖12是用于解釋全局維度值號的分配的圖。分配全局維度值號的含義是在多個處理模塊之間共同給在每個處理模塊內(nèi)排序的全局項目值號排序。因此,每個處理模塊獲取全局維度值號GDimNo的區(qū)域,并且根據(jù)本地維度值號LdimNo創(chuàng)建全局維度值號GDimNo的初始值。為分配了相同的本地維度值號LdimNo的記錄僅獲取一個全局維度值號GDimNo的區(qū)域。因此,同時創(chuàng)建全局維度值號GDimNo到本地維度值號LdimNo的對應(yīng)關(guān)系的對應(yīng)表GdimPos。
每個處理模塊從其它處理模塊互相獲取全局項目值號組,對順序高于該處理模塊內(nèi)的全局項目值號組的組的數(shù)目計數(shù),并且通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的該組全局項目值號的全局維度值號,給全局項目值號組分配在多個處理模塊之間共用的全局維度值號。在這種方式中,需要給在各個處理模塊內(nèi)單獨排序的值,即,本地維度值號,分配在多個處理模塊之間共用的順序號,即,全局維度值號的方法,以便排除相同值的重疊,以便防止將不同的全局維度值號分配給相同的值。后面將描述該順序號分配方法。
圖13是一個表,其中匯編有根據(jù)圖12中的例子的處理模塊PMM-0到PMM-3中的本地維度值號LdimNo,性別的全局項目值號GVNo1,年齡的全局項目值號GVNo2和全局維度值號GDimNo。如從該圖可見,以將性別的全局項目值號GVNo1設(shè)置為高位的數(shù)字,并且將年齡的全局項目值號GVNo2設(shè)置為低位的數(shù)字時的全局項目值號GDimNo的組的號碼的順序,將號碼0,1,2和4被分配給全局維度值號GDimNo。
在步驟805,在各個處理模塊內(nèi),每個處理模塊對每組全局項目值號的項目值,即,對每個全局維度值號制表。在該例子中,在PMM-0到PMM-3中,在每個模塊內(nèi)按性別和年齡對身高值進行總計。
圖14和15是用于解釋在每個處理模塊內(nèi)對每個全局維度值號的項目值制表的處理的圖。首先,如圖14所示,創(chuàng)建與全局維度值號GDimNo具有相同大小的數(shù)組GMsr作為用于存儲測量的區(qū)域。在該例子中,由于對身高的總計制表,創(chuàng)建浮點、整數(shù)或類似的存儲區(qū)域。隨后,如圖15所示,在每個處理模塊內(nèi),例如,以按全局維度值號組的順序置換的數(shù)組OrdSet的元素的順序提取將要制表的項目值。在測量數(shù)組GMsr內(nèi)對這些項目值制表。
例如,在PMM-0內(nèi),由于可見排列順序號數(shù)組OrdSet的頂部的元素是No.“1”(即,記錄1),訪問指向身高信息塊內(nèi)的值列表的指針數(shù)組VNo的索引“1”的內(nèi)容。由于值“2”存儲在該指針數(shù)組內(nèi),通過獲取值列表VL的索引“2”的內(nèi)容,獲得關(guān)于PMM-0的記錄0的身高值“82”。值“82”是將要在測量數(shù)組GMsr內(nèi)制表的值。在該例子中,由于制表值是總計值,對這個值“82”進行累加。
需要指出該值“82”將被增加到測量數(shù)組GMsr的哪個元素,即,測量數(shù)組GMsr的索引。如上所述,因為本地維度值號LdimNo數(shù)組按全局維度值號組的順序布置,排列順序號數(shù)組OrdSet和本地維度值號數(shù)組LdimNo的元素的布置順序-即,索引,彼此相應(yīng)。因此,僅需在由數(shù)組LdimNo的頂部指示的測量數(shù)組GMsr的存儲區(qū)域內(nèi)對關(guān)于數(shù)組OrdSet的頂部的測量制表。在圖15的例子中,因為相應(yīng)于數(shù)組OrdSet的頂部的數(shù)組LdimNo的頂部的元素是“0”,將值“82”累加到測量數(shù)組GMsr的索引“0”指示的位置。
類似地,對于PMM-1,PMM-2和PMM-3,獲取數(shù)組OrdSet的頂部的元素的身高值“91”,“76”和“87”,并且在測量數(shù)組GMsr的頂部的區(qū)域內(nèi)制表。對于PMM-0到PMM-3,為數(shù)組OrdSet的第二個和后續(xù)的元素以相同的方式獲取項目值并在測量數(shù)組GMsr內(nèi)制表。
在PMM-2中,由于數(shù)組OrdSet的頂部元素“0”和第二個元素“1”的本地維度值號LdimNo都是“0”,相應(yīng)于它的身高值“76”和“78”兩者都被在測量數(shù)組GMsr的頂部區(qū)域內(nèi)制表。因此,數(shù)組GMsr的頂部的制表結(jié)果是76+78=154。
隨后,在步驟806,每個處理模塊從其它處理模塊獲取每個全局項目值號組的本地制表值,并且通過為每組全局項目值號對獲取的制表值進行制表計算一個制表值。根據(jù)處理模塊之間的物理傳輸路徑的構(gòu)成,可以用,例如,兩種方法實現(xiàn)該全局制表。
在第一種全局制表方法中,每個處理模塊向其它處理模塊傳輸一組全局維度值號GDimNo和結(jié)合該全局維度值號GDimNo制表的測量GMsr。當可以獲得處理模塊之間的多個傳輸路徑時,該方法適用。圖16是由于解釋第一種全局制表方法的圖。4個處理模塊PMM-0(參考號1600),PMM-1(參考號1601),PMM-2(參考號1602)和PMM-3(參考號1603)通過由參考號1604表示的傳輸路徑連接為整體。
例如,處理模塊PMM-0向其它處理模塊PMM-1,PMM-2和PMM-3傳輸3組全局維度值號GDimNo和測量GSMsr,即,(0,82),(3,69)和(4,78),作為圖15中示出的本地環(huán)境下的制表結(jié)果。處理模塊PMM-0通過傳輸路徑1604接收從處理模塊PMM-1傳輸?shù)?個組(1,91)和(2,82),從處理模塊PMM-2傳輸?shù)?個組(2,154)和(3,84),以及從處理模塊PMM-3傳輸?shù)?個組(1,87)和(4,80)。處理模塊PMM-1,PMM-2和PMM-3以相同的方式向其它模塊傳輸該處理模塊的本地制表結(jié)果,并且從其它處理模塊接收本地制表結(jié)果。
每個處理模塊累加在每個處理模塊內(nèi)為每個全局維度值號相互交換的本地制表結(jié)果,并且計算全局制表結(jié)果。圖17是用于解釋全局制表結(jié)果的計算的圖。每個處理模塊從其它處理模塊接收的本地制表結(jié)果當中的實際用于每個處理模塊的全局制表的數(shù)據(jù)僅是這樣的數(shù)據(jù),該數(shù)據(jù)包括與每個處理模塊的本地制表結(jié)果的全局維度值號相符的全局維度值號。在圖17中,以雙取消線指示每個處理模塊從其它處理模塊接收的數(shù)據(jù)中的未用于實際的全局制表的數(shù)據(jù)。每個處理模塊還能夠并行地累加從其它處理模塊接收的測量。這使得可以提高整個處理速度。
如圖17中所示,根據(jù)對本地制表結(jié)果的累加,在每個處理模塊內(nèi)獲得全局制表結(jié)果,例如,由于全局維度值號“0”最初僅出現(xiàn)在PMM-0內(nèi),全局維度值號“0”的制表結(jié)果僅出現(xiàn)在PMM-0內(nèi)。在另一方面,由于全局維度值號“3”被在兩個處理模塊PMM-0和PMM-2內(nèi)本地制表,相應(yīng)于全局維度值號“3”的全局制表結(jié)果出現(xiàn)在兩個處理模塊PMM-0和PMM-2內(nèi)。不用說,關(guān)于全局維度值號“3”的PMM-0和PMM-2的全局制表值兩者取相同的值“153”。
刪除這種重疊的全局制表結(jié)果對于后面的處理是方便的。因此,可以事先給處理模塊分配順序,并且當在順序高于各個處理模塊的處理模塊保持有與其它處理模塊所保持的全局維度值號的全局制表值相同的全局制表值時,該處理模塊刪除由該處理模塊保持的全局制表值。圖18是用于解釋排除這種全局制表值的重疊的處理的圖。在該圖中,以雙取消線表示全局制表值的重疊。通過應(yīng)用該處理,在所有處理模塊中為每個全局維度值號保持一個全局制表值。
最后,在步驟807,保持最終的全局制表值的處理模塊從全局項目值號的組中恢復(fù)項目值組,并且創(chuàng)建包括一組項目值和相應(yīng)于該組項目值的制表值的結(jié)果表。圖19是用于解釋結(jié)果表的創(chuàng)建的圖。通過以這種結(jié)果表的形式表示制表結(jié)果,有一個優(yōu)點,即,可以使用該結(jié)果表進行另外的制表處理。在圖18的例子中,由于最終的全局制表值被保持在處理模塊PMM-0和PMM-1內(nèi),僅需在處理模塊PMM-0和PMM-1內(nèi)創(chuàng)建結(jié)果表。
例如,在處理模塊PMM-0中,全局維度值號“0”的全局制表結(jié)果是“82”。通過使用參考圖12解釋的全局維度值號到本地維度值號的對應(yīng)關(guān)系的對應(yīng)關(guān)系表GdimPos,可以獲取相應(yīng)于全局維度值號“0”的本地維度值號LdimNo。在圖19的例子中,由于相應(yīng)于GDimNo“0”的GdimPos的值為“0”,數(shù)組LdimNo的頂部的元素“0”是本地維度值號。性別的全局項目值號“0”和年齡的全局項目值號“0”相應(yīng)于本地維度值號“0”。相應(yīng)于性別的全局項目值號“0”的項目值,即,維度值是“男”,并且相應(yīng)于年齡的全局項目值號“0”的項目值,即,維度值是“1”。因此,可以獲得性別的維度值“男”,年齡的維度值“1”,以及關(guān)于全局維度值號“0”的制表值(=身高總計值)“82”。通過對處理模塊PMM-0的其它全局維度值號和處理模塊PMM-1的其它全局維度值號應(yīng)用相同的處理,可以獲得結(jié)果表。圖20是用于解釋以這種方式創(chuàng)建的結(jié)果表的圖。處理模塊PMM-0和PMM-1創(chuàng)建性別維度值,年齡維度值和制表值的結(jié)果表。處理模塊PMM-2和PMM-3不創(chuàng)建結(jié)果表。
在圖16到18中解釋了第一種全局制表方法。在該實施例的修改中,執(zhí)行第二種全局制表方法。圖21是用于解釋第二種全局制表方法的圖。在該制表方法中,事先給處理模塊分配順序,并且順序地將作為本地制表結(jié)果的數(shù)組GMsr從高順序的處理模塊傳輸?shù)降晚樞虻奶幚砟K。第二或后續(xù)模塊將該處理模塊內(nèi)的本地制表結(jié)果累加到從前面的處理模塊接收的制表結(jié)果數(shù)組GMsr,并且在該累加后將制表結(jié)果數(shù)組GMsr傳輸?shù)较乱粋€處理模塊。由于處理模塊在以這種方式累加制表結(jié)果的同時,按順序?qū)⒅票斫Y(jié)果數(shù)組GMsr傳輸?shù)诫S后的處理模塊,通過一系列處理模塊傳輸?shù)牟⑶曳祷氐谝粋€最高順序的處理模塊的制表結(jié)果是存儲著關(guān)于所有全局維度值號的全局制表結(jié)果的數(shù)組。
在圖21的例子中,首先,制表結(jié)果數(shù)組(82,-,-,69,78)被從最高順序的處理模塊PMM-0傳輸?shù)较乱粋€處理模塊PMM-1?!?”表示不存在本地制表結(jié)果。處理模塊PMM-1將該處理模塊內(nèi)的本地制表結(jié)果(-,91,82,-,-)累加到接收到的制表結(jié)果數(shù)組(82,-,-,69,78),以便創(chuàng)建另一個制表結(jié)果數(shù)組(82,91,82,69,78),并且將該制表結(jié)果數(shù)組傳輸?shù)较乱粋€處理模塊PMM-2。類似地,處理模塊PMM-2將該處理模塊內(nèi)的本地制表結(jié)果(-,-,154,84,-)累加到接收到的制表結(jié)果數(shù)組,以便創(chuàng)建另一個制表結(jié)果數(shù)組(82,91,236,153,78),并且將該制表結(jié)果數(shù)組傳輸?shù)较乱粋€處理模塊PMM-3。類似地,處理模塊PMM-3將該處理模塊內(nèi)的本地制表結(jié)果(-,87,-,-,80)累加到接收到的制表結(jié)果數(shù)組,以便創(chuàng)建另一個制表結(jié)果數(shù)組(82,178,236,153,158)。由于PMM-3是最低順序的處理模塊,從PMM-3輸出的制表結(jié)果數(shù)組是最終的制表結(jié)果。
在類似于根據(jù)本實施例的信息處理系統(tǒng)的多個處理模塊(所述處理模塊具有存儲著帶有順序的一系列值的存儲器)被邏輯地連接為環(huán)形的信息處理系統(tǒng)內(nèi),需要一種給在各個處理模塊內(nèi)單獨排序的值分配在多個處理模塊間共用的順序號的信息處理方法,即,順序號分配方法。
例如,如參考圖12解釋的,在分配全局維度值號時,使用了用于給在每個處理模塊內(nèi)單獨排序的值分配在多個處理模塊之間共用的順序號的順序號分配處理。不僅在分配全局維度值號時使用該順序號分配處理,而且當在后面描述的匯編處理中設(shè)置全局項目值號時也使用它。
圖22是本實施例中的順序號分配方法的流程圖。如該圖中所示,每個處理模塊在存儲器內(nèi)存儲該處理模塊內(nèi)的值列表內(nèi)的每個元素的順序號的初始值(步驟2201)。
每個處理模塊將存儲在該處理模塊的存儲器內(nèi)的值列表傳輸?shù)竭壿嫷剡B接到下一級的處理模塊(步驟2202)。此外,對于該處理模塊內(nèi)的值列表內(nèi)的各個值,每個處理模塊計數(shù)順序高于從邏輯地連接到前一級的處理模塊接收的值列表中的各個值的值的數(shù)目,通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,更新該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,并且在存儲器內(nèi)存儲更新的順序號(步驟2203)。
每個處理模塊將通過從接收到的值列表內(nèi)的值中排除與該處理模塊內(nèi)的值列表內(nèi)的值相符的值而獲得的一列其它的值傳輸?shù)竭壿嫷剡B接到下一級的處理模塊(步驟2204)。對于該處理模塊內(nèi)的值列表內(nèi)的各個值,每個處理模塊計數(shù)順序高于從邏輯地連接到前一級的處理模塊接收的其它值列表內(nèi)的各個值的值的數(shù)目,通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,更新該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,并且在存儲器內(nèi)存儲更新的順序號(步驟2205)。
隨后,每個處理模塊重復(fù)執(zhí)行步驟2204到2205,直到在步驟2202傳輸?shù)竭壿嫷剡B接到下一級的處理模塊的值列表通過邏輯地連接于環(huán)形中的其它處理模塊被邏輯地連接到前一級的處理模塊接收到為止(步驟2206)。
根據(jù)該順序號分配方法,每個處理模塊可以接收由其它處理模塊保持的值列表而不會出現(xiàn)冗余,并且給由該處理模塊保持的值分配一個全局順序號。如上所述,當每個處理模塊保持事先具有順序的值列表時,可以極有效地分配全局號。這是因為,當值列表有序時,僅需在升序(或降序)的一個方向上比較順序。不用說,當由每個處理模塊保持的值列表未排序時可以獲得相同的結(jié)果。在該情況下,例如,每個處理模塊僅需按所有組合的順序,對從其它處理模塊接收的值列表內(nèi)的值和由該處理模塊內(nèi)保持的值列表內(nèi)的值進行比較,計數(shù)順序高于各個值(即,高順序的值)的值的數(shù)目,并且更新各個值的順序號。
在本實施例中的順序號分配方法內(nèi),每個處理模塊不必存儲從其它處理模塊接收的值列表,并且可以簡單地通過給由該處理模塊保持的值列表分配順序,給所有處理模塊分配共用的順序號。
由于該順序號分配方法不受從其它處理模塊接收值列表的順序的影響,該順序號分配方法根本不依賴處理模塊間的物理連接形式。因此,通過多路復(fù)用傳輸路徑和順序號更新電路,可以實現(xiàn)進一步提高速度。
圖23A到23D和24A到24D是用于解釋順序號分配處理的圖。在圖23A到23D中,示出了每個步驟每個PMM傳輸?shù)竭B接到下一級的PMM的值列表。在圖24A到24D中,示出了在每個步驟PMM從連接到前一級的PMM接收的值列表。在該例子中,作為初始狀態(tài),PMM-0保持有值列表[18,21,24],PMM-1保持有值列表[16,28],PMM-2保持有值列表[16,20,33],并且PMM-3保持有值列表[18,24]。
在第三步驟結(jié)束時,每個PMM可以從其它處理模塊接收值列表。此時,通過組合由該處理模塊保持的值列表和接收到的值列表,可以確定所有值的順序。此外,在步驟4結(jié)束時,可見可以接收所有值而沒有冗余。
匯編處理是用于設(shè)置用于在每個處理模塊內(nèi)管理數(shù)據(jù)的全局記錄號GOrd和全局項目值號GVNo的處理。通過使用偏移值OFFSET,可以容易地設(shè)置全局記錄號GOrd。在另一方面,全局項目值號GVNo是基于由每個處理模塊單獨保持的值列表,在所有處理模塊之間共同排序的號碼。
因此,通過使用順序號分配處理,每個處理模塊能夠設(shè)置全局項目值號GVNo。
本地排序處理是作為全局制表處理的一部分或參考圖9解釋的全局排序處理的一部分執(zhí)行的處理。在該實施例中,由于在每個處理模塊內(nèi)單獨地執(zhí)行本地排序處理,通過提高該本地排序處理的速度,可以提高制表處理的速度。
下面將解釋該本地排序處理。在這樣的假設(shè)下解釋本地排序處理,假設(shè)從如圖25中所示的匯編處理結(jié)束的狀態(tài)開始該處理。圖26是本地排序處理的流程圖。如圖26中所示,每個PMM創(chuàng)建一個出現(xiàn)數(shù)目數(shù)組區(qū)域(步驟2601),其大小等于與將要排序的項目有關(guān)的值列表VL的大小,并且將初始值“0”給予該區(qū)域內(nèi)的各個值(步驟2602)。圖27示出了這樣的狀態(tài),其中對于項目“年齡”,在每個PMM中創(chuàng)建具有與值列表VL的大小相同大小的區(qū)域,并且將初始值“0”給予該區(qū)域內(nèi)的各個值。
隨后,每個PMM為出現(xiàn)數(shù)目數(shù)組內(nèi)的每個值執(zhí)行累計(count-up)處理(步驟2603)。更具體地,每個PMM根據(jù)順序組數(shù)組OrdSet的值,指定要排序的項目的指針數(shù)組VNo的值(步驟2611)。每個PMM對由指針數(shù)組VNo的值指示的出現(xiàn)數(shù)目數(shù)組內(nèi)的位置的值進行累計(步驟2612)。重復(fù)這種處理,直到順序組數(shù)組OrdSet的結(jié)尾(見步驟2613和2614)。
圖28是示出了每個PMM內(nèi)的累計的例子的圖。例如,在PMM-0中,年齡的指針數(shù)組VNo中由順序組數(shù)組OrdSet的元素“0”指示的位置的值為“0”。因此,出現(xiàn)數(shù)目數(shù)組的“第0個”位置,即,頂部位置內(nèi)的值被從“0”累計為“1”。應(yīng)當理解,在其它PMM內(nèi)執(zhí)行相同的處理。
當累計處理結(jié)束時,如圖29中所示,每個PMM累積出現(xiàn)數(shù)目數(shù)組的元素,并且將出現(xiàn)數(shù)目數(shù)組轉(zhuǎn)換為累積號數(shù)組(步驟2901)。考慮表示指出出項目值的記錄的數(shù)目的出現(xiàn)數(shù)目,作為累積號數(shù)組的元素的累積號表示指示出布置了該累積號的位置的項目值的記錄的頂部的位置。具體地,每個PMM初始化指示數(shù)組的位置的參數(shù)“i”(步驟2911),提取由該參數(shù)指示的出現(xiàn)數(shù)目數(shù)組內(nèi)的值(步驟2912),并且將在步驟2912提取的值分別加到由參數(shù)“i”指示的位置之后的位置內(nèi)的出現(xiàn)數(shù)目數(shù)組的值上,即,位置“I+1”,“I+2”等(步驟2913)。僅需以值列表VL的元素(項目值)的數(shù)目重復(fù)由步驟2912和2913指示的處理(見步驟2914和2915)。
以這種方式,例如,可以獲得圖30中示出的累積號數(shù)組。此外,每個PMM還創(chuàng)建用于數(shù)組GVNo,GOrd’和OrdSet’的區(qū)域,用于以后存儲所有PMM內(nèi)的順序(步驟2902)。這些數(shù)組的大小分別與值列表VL的大小相符。
隨后,在每個PMM內(nèi)執(zhí)行本地排序處理。如圖31中所示,每個PMM提取順序組數(shù)組OrdSet的值(步驟3101),并且指定指針數(shù)組VNo內(nèi)由數(shù)組OrdSet的值指示的位置內(nèi)的值(指針值)(步驟3102)。此后,每個PMM獲取將要排序的項目的全局項目值號數(shù)組GVNo中的由指針數(shù)組VNo的值指示的位置的值(步驟3103)。該值用于后面描述的存儲值的處理。在另一方面,還獲取累積號數(shù)組內(nèi)的由指針數(shù)組VNo指示的位置的值(步驟3104)。該值用于在后面描述的存儲值的處理中指定數(shù)組內(nèi)的位置。
執(zhí)行存儲值的處理。每個PMM將在步驟3102內(nèi)獲取的關(guān)于將要排序的項目的GVNo的值布置在由在步驟3104內(nèi)獲取的累積號數(shù)組的值指示的位置內(nèi)(步驟3105)。每個PMM將全局順序組數(shù)組GOrd和順序組數(shù)組OrdSet內(nèi)的由在步驟3104內(nèi)獲取的累積號數(shù)組的值指示的位置的值分別布置在GOrd’和OrdSet’內(nèi)(步驟3106)。隨后,增加用于該處理的累積號數(shù)組的值(步驟3107)。
隨后對數(shù)組OrdSet內(nèi)的所有值執(zhí)行步驟3101到3107內(nèi)的處理(見步驟3108和3109)。
圖32和33是示出了在每個PMM內(nèi)執(zhí)行本地排序處理的狀態(tài)的例子的圖。例如,對于PMM-0,在圖32中,應(yīng)當理解,執(zhí)行提取數(shù)組OrdSet的值“0”(見步驟3101),指定數(shù)組VNo的由OrdSet的值“0”指示的位置內(nèi)的值“0”(見步驟3102),獲取數(shù)組GVNo的由數(shù)組VNo的值“0”指示的位置內(nèi)的值“1”(見步驟3103),并且獲取累積號數(shù)組的由數(shù)組VNo的值“0”指示的位置內(nèi)的值“0”(見步驟3104)。還可見,在累積號數(shù)組的獲取之后,累積號數(shù)組的值從“0”變?yōu)椤?”(見步驟3107)。
對于PMM-0,在圖33中,應(yīng)當理解,示出了數(shù)組GVNo,GOrd’和OrdSet’內(nèi)的由在步驟3103獲取的累積號數(shù)組的值指示的關(guān)于項目“年齡”的數(shù)組GVNo的值“1”,數(shù)組GOrd的值“0”和數(shù)組OrdSet的值“0”的布置(步驟3105和3106)。對于其它PMM,在圖32和33中,可以看到也執(zhí)行步驟3101到3105內(nèi)指示的處理。
可以根據(jù)本地排序處理(即,每個PMM內(nèi)的排序處理)獲得圖34中示出的數(shù)組。在圖32到34中,圖中的“升序順序2”的含義是全局記錄號GOrd’在全局項目值號GVNo’取相同值的范圍內(nèi)是“升序”的。
上面解釋的本地排序處理具有一個極佳的特性,即不執(zhí)行比較操作。一般地,在執(zhí)行比較的排序中,當數(shù)據(jù)數(shù)目為n時,處理量是O(n*log(n))。在不執(zhí)行比較的排序中,處理量是O(n)。不執(zhí)行比較的計數(shù)排序大致包括3個階段累計,號累積和轉(zhuǎn)移。當所有數(shù)據(jù)不同時處理步驟數(shù)等于3n。因此,當有n個不重疊的數(shù)據(jù),并且有m個計算機時,在以m劃分n個數(shù)據(jù)的模型中,對各個劃分的部分本地排序,并且以全局排序?qū)澐值牟糠诌M行綜合,全局排序的近似的步驟數(shù)等于(m-1)*(2*n/m)。第一項(m-1)表示每個計算機應(yīng)從其它計算機接收數(shù)據(jù)并且處理數(shù)據(jù)的次數(shù)。第二項(2*n/m)是當比較兩種升序列表即n升序列表和m升序列表時,平均出現(xiàn)的比較次數(shù)。當m大時,該次數(shù)近似等于2*n。全局排序的比較次數(shù)為O(n)。換言之,該全局排序比執(zhí)行比較的排序O(n*log(n))更有效??梢哉J為,這是因為通過比較升序的列表使得該排序更有效。在另一方面,不出現(xiàn)m意味著,即使計算機的數(shù)目增加,全局排序中的每一個計算機的處理量也不改變。
由于各個處理模塊可以并行操作,該本地排序處理是極佳的。然而,還可以在其它系統(tǒng)內(nèi)實現(xiàn)該本地排序處理。例如,當計算機的數(shù)目m等于數(shù)據(jù)n的數(shù)目時,可以使用順序號分配處理的思想實現(xiàn)本地排序處理。
例如,將解釋關(guān)于參考圖9解釋的基于“年齡”和“性別”執(zhí)行的排序的例子的根據(jù)該另一個實施例的本地排序處理。
在基于年齡和性別執(zhí)行排序的例子中,如果為各個記錄創(chuàng)建性別GVNo,年齡GVNo和GOrd的3維數(shù)組,并且在每個PMM內(nèi)同時給該3維數(shù)組分配順序號,獲得與本地排序處理相同的結(jié)果。圖35A到35F分別是用于解釋使用順序號分配處理的本地排序處理的圖。
首先如圖35A所示,每個PMM創(chuàng)建由性別的GVNo,年齡的GVNo和OrdSet的各個元素的GOrd構(gòu)成的3維數(shù)組。在下面的解釋中,OrdSet=I的三維數(shù)組被表示為A[i]=(a,b,c)。在該例子中,A
=[1,2,0],A[1]=
和A[2]=[1,1,2]。
隨后,如圖35B所示,每個PMM初始化順序號。
如圖35C所示,每個PMM分配順序號。在該例子中,每個PMM將A
發(fā)送到OrdSet1,將A[1]發(fā)送到OrdSet2,將A[2]發(fā)送到OrdSet0,對由PMM保持的3維數(shù)組和發(fā)送的數(shù)組進行比較,并且分配順序號。
此外,如圖35D中所示,每個PMM將A
發(fā)送到OrdSet2,將A[1]發(fā)送到OrdSet0,將A[2]發(fā)送到OrdSet1,對由PMM保持的3維數(shù)組和發(fā)送的數(shù)組進行比較,并且分配順序號。
作為這種順序號分配處理的結(jié)果,獲得圖35E中示出的結(jié)果。圖35F中示出了按順序號的順序布置的結(jié)果。圖35F中示出的結(jié)果與圖9中示出的本地排序結(jié)果相符。
當缺乏并行性算法時,難以開發(fā)程序采用SIMD以便獲得所希望的結(jié)果。即使可以開發(fā)該程序,該程序的自由程度也是低的。因此,為了采用SIMD,需要開發(fā)適用于SIMD的極佳的算法。就此而言,根據(jù)該實施例的算法在下面幾點上是極佳的。
(1)在處理的執(zhí)行中不存在條件分支。然而,在檢索處理的情況下,可能會執(zhí)行條件分支。然而,該條件分支是簡單的條件分支。
(2)可由一個命令(步驟數(shù)和時鐘數(shù))執(zhí)行的處理-諸如升序列表的相互比較-所占的比例是高的。
(3)所有處理模塊等同地具有相同的角色。如果每個處理模塊具有不同的角色,則不能根據(jù)單個命令實現(xiàn)處理。因此,在該實施例中,當采用SIMD時簡化了程序??梢源_保程序開發(fā)的容易性和程序的高的自由程度。
根據(jù)本發(fā)明的信息處理系統(tǒng)通過環(huán)形通道連接于,例如,作為前端的終端裝置,并且每個PMM從所述終端裝置接收命令。這使得可以在PMM內(nèi)執(zhí)行匯編、排序和制表處理。每個PMM僅需使用任意一種總線傳輸信息包,并且不需從外部控制PMM之間的同步等。
除了包括用于迭代操作諸如匯編和排序的硬件配置的加速器芯片之外,在控制設(shè)備內(nèi)可以包括通用CPU。通用CPU可以解釋通過所述通道從終端裝置傳輸?shù)拿?,并且向加速器芯片給出必須的指令。
此外,希望在控制設(shè)備內(nèi),特別是,在控制設(shè)備的加速器芯片內(nèi)提供寄存器組,用于容納工作所需的各種數(shù)組,諸如順序組數(shù)組和全局順序組數(shù)組。因此,一旦處理所需的值被從存儲器裝載到寄存器,控制設(shè)備僅需從寄存器讀出該值,或?qū)⒅祵懙郊拇嫫鲀?nèi)而不需在匯編、排序和制表的處理操作過程中訪問存儲器。這使得可以明顯減少存儲器訪問的次數(shù)(在算術(shù)處理和處理結(jié)果的寫之前裝載),并且明顯地減少處理時間。
將解釋本實施例中引入的數(shù)組GOrd和數(shù)組GVNo的重要性。全局順序組數(shù)組GOrd指示由每個PMM掌握的表格式數(shù)據(jù)的每個記錄在通過收集由每個PMM掌握的本地表格式數(shù)據(jù)而形成的全局表格式數(shù)據(jù)內(nèi)的位置(順序)。換言之,在該實施例中,根據(jù)全局順序組數(shù)組GOrd和順序組數(shù)組OrdSet,記錄的位置信息被分為全局部分和本地部分。這使得可以處理全局表格式數(shù)據(jù)。另外,每個PMM能夠獨立地執(zhí)行處理。
在該實施例中,PMM被構(gòu)造為保持各個項目的信息塊。然而,即使當PMM保持表格式數(shù)據(jù)時,GOrd也以相同的方式起作用。
例如,在該實施例中在匯編結(jié)束的狀態(tài)中(見,例如圖25),通過按全局順序組數(shù)組GOrd的值的順序提取各個項目的項目值,可以創(chuàng)建整個表格式數(shù)據(jù)的視圖。
不用說,本發(fā)明不限于上述的實施例,可以在權(quán)利要求描述的本發(fā)明的范圍內(nèi)對本發(fā)明進行各種修改,并且這些修改被包括在本發(fā)明的范圍內(nèi)。
在該實施例中,在一方面在用于順時針傳輸包的第一總線(第一傳輸路徑)中,并且在另一方面在用于逆時針傳輸包的第二總線(第二傳輸路徑)中以環(huán)形連接PMM。這種構(gòu)造是有利的,因為可以使得包傳輸?shù)难舆t時間等一致。然而,本發(fā)明不限于這種傳輸路徑,并且可以采用其它形式的傳輸路徑諸如總線類型的傳輸路徑。
在該實施例中,使用具有存儲器、接口和控制電路的PMM。然而,本發(fā)明不限于此。替代PMM,個人計算機,服務(wù)器等可用作使得本地表格式數(shù)據(jù)接受共享控制的信息處理單元??商鎿Q地,可以采用單個個人計算機或服務(wù)器保持多個信息處理單元的構(gòu)造。即使在這些情況下,通過接收指示記錄的順序的值,并且訪問全局順序組數(shù)組GOrd,該信息處理單元可以指定記錄。還可以通過訪問全局值號數(shù)組指定項目值。
可以采用所謂的網(wǎng)絡(luò)類型或總線類型傳輸路徑作為信息處理單元之間的傳輸路徑。
通過采用在單個個人計算機中提供多個信息處理單元的構(gòu)造,可以如下所述那樣使用本發(fā)明。例如,準備Sapporo分部,Tokyo分部和Fukuoka分部的3個表格式數(shù)據(jù),并且通常,由每個分部的單元執(zhí)行檢索,制表,排序等。此外,可以設(shè)計全局表格式數(shù)據(jù),其中綜合了3個分部并且將各個分部的表格式數(shù)據(jù)考慮為整個表的部分表,實現(xiàn)關(guān)于全局表格式數(shù)據(jù)的檢索,排序和制表。
不用說,即使當多個個人計算機連接到網(wǎng)絡(luò)時,也可以實現(xiàn)與接受所述個人計算機的共享控制的本地表格式數(shù)據(jù)有關(guān)的處理,以及與全局表格式數(shù)據(jù)有關(guān)的處理。
工業(yè)實用性可以將本發(fā)明應(yīng)用于,特別是,管理大量數(shù)據(jù)的系統(tǒng),例如,數(shù)據(jù)庫和數(shù)據(jù)倉庫。更具體地,可以為大規(guī)模的科學(xué)和技術(shù)計算,基本商務(wù)管理諸如訂單管理和證券交易和辦公管理使用本發(fā)明。
圖1是用于解釋傳統(tǒng)數(shù)據(jù)管理機制的圖;圖2是用于解釋傳統(tǒng)數(shù)據(jù)管理機制的圖;圖3是示意性地示出根據(jù)本發(fā)明的實施例的信息處理系統(tǒng)的方框圖;圖4是示出了根據(jù)本發(fā)明的實施例的PMM的結(jié)構(gòu)的例子的圖;圖5是用于解釋表格式數(shù)據(jù)的例子的圖;圖6是用于解釋用于表格式數(shù)據(jù)的傳統(tǒng)存儲結(jié)構(gòu)的圖;圖7是用于解釋根據(jù)本發(fā)明的實施例的用于表格式數(shù)據(jù)的存儲結(jié)構(gòu)的例子的圖;圖8是根據(jù)本發(fā)明的實施例的制表處理的流程圖;圖9是用于解釋本地排序處理的結(jié)果的圖;圖10是用于解釋根據(jù)本發(fā)明的實施例的順序號分配處理的圖;圖11是用于解釋根據(jù)本發(fā)明的實施例的本地維度值號分配處理的圖;圖12是用于解釋根據(jù)本發(fā)明的實施例的全局維度值號分配處理的圖;圖13是用于解釋全局維度值號分配處理的結(jié)果的圖;圖14是用于解釋根據(jù)本發(fā)明的實施例的本地制表處理的圖;圖15是用于解釋根據(jù)本發(fā)明的實施例的本地制表處理的圖;圖16是用于解釋根據(jù)本發(fā)明的實施例的第一種全局制表方法的圖;圖17是用于解釋根據(jù)本發(fā)明的實施例的全局制表結(jié)果計算的圖;圖18是用于解釋根據(jù)本發(fā)明的實施例的用于全局制表值的重疊排除處理的圖;圖19是用于解釋根據(jù)本發(fā)明的實施例的結(jié)果表創(chuàng)建處理的圖;圖20是用于解釋結(jié)果表的圖;圖21是用于解釋根據(jù)本發(fā)明的實施例的第二種全局制表方法的圖;圖22是根據(jù)本發(fā)明的實施例的順序號分配方法的流程圖;圖23A到23D分別是用于解釋根據(jù)本發(fā)明的實施例的順序號分配方法圖;圖24A到24D分部是用于解釋根據(jù)本發(fā)明的實施例的順序號分配方法圖;圖25是用于解釋當匯編處理結(jié)束時的狀態(tài)的圖;圖26是根據(jù)本發(fā)明的實施例的本地排序處理的流程圖;圖27是用于解釋本地排序處理的初始狀態(tài)的例子的圖;圖28是用于解釋每個PMM內(nèi)的累計處理的例子的圖;圖29是用于解釋累積號數(shù)組創(chuàng)建處理的例子的圖;圖30是用于解釋累積號數(shù)組的例子的圖;圖31是本地排序處理的詳細流程圖;圖32是用于解釋每個PMM內(nèi)的本地排序處理的執(zhí)行狀態(tài)的例子的圖;圖33是用于解釋每個PMM內(nèi)的本地排序處理的執(zhí)行狀態(tài)的例子的圖;圖34是用于解釋每個PMM內(nèi)的本地排序處理的結(jié)果的例子的圖;圖35A到35F分別是用于解釋本地排序處理的另一個實施例的圖。
參考號和符號的描述32 PMM34 第一總線36 第二總線40 控制電路42 總線I/F44 存儲器46 體
權(quán)利要求
1.一種對存儲在信息處理系統(tǒng)內(nèi)的多個處理模塊內(nèi)的項目值制表的信息處理方法,在所述信息處理系統(tǒng)內(nèi),多個處理模塊邏輯地連接為環(huán)形,并且每個處理模塊包括以值列表和指針數(shù)組的形式存儲表格式數(shù)據(jù)的存儲器,所述表格式數(shù)據(jù)表示包括相應(yīng)于信息項目的項目值的記錄的數(shù)組,在所述值列表中,按相應(yīng)于項目值的項目值號的順序存儲項目值,在所述指針數(shù)組中,按所述記錄的順序存儲用于指定所述項目值號的信息,該信息處理方法包括在每個處理模塊內(nèi),在所述存儲器內(nèi)存儲被唯一地分配給所述多個處理模塊中的處理模塊中的記錄的全局記錄號和按所述多個處理模塊中的處理模塊中的項目值排序的全局項目值號的步驟;在每個處理模塊內(nèi),在所述處理模塊內(nèi),按根據(jù)至少一個或多個指定的項目的全局項目值號組確定的順序?qū)λ鲇涗浥判虻牟襟E;在每個處理模塊內(nèi),在所述存儲器內(nèi)存儲相應(yīng)于所述記錄的全局項目值號組的步驟,所述全局項目值號組與表示所述在所述全局項目值號組中排序的記錄的順序的維度值號相關(guān)聯(lián);在每個處理模塊內(nèi),從其它處理模塊相互獲取全局項目值號組,對順序高于所述處理模塊內(nèi)的全局項目值號組的全局項目值號組的數(shù)目計數(shù),并且通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的全局項目值號組的維度值號,給所述全局項目值號組分配在所述多個處理模塊間共用的全局維度值號的步驟;在每個處理模塊內(nèi),為每個全局項目值號組,通過根據(jù)預(yù)定的規(guī)則對信息的預(yù)定項目的項目值制表,計算本地制表值的步驟;在每個處理模塊內(nèi),從其它處理模塊獲取每個全局項目值號組的本地制表值,并且通過對為每個全局項目值號組獲取的制表值進行制表計算制表值的步驟。
2.如權(quán)利要求1的信息處理方法,在所述計算制表值的步驟之后,還包括在每個處理模塊內(nèi),從所述全局項目值號組恢復(fù)一組項目值,并且創(chuàng)建包括該組項目值以及相應(yīng)于該組項目值的制表值的結(jié)果表的步驟。
3.一種信息處理系統(tǒng),其中多個處理模塊邏輯地連接成環(huán)形,并且每個處理模塊包括以值列表和指針數(shù)組的形式存儲表格式數(shù)據(jù)的存儲器,所述表格式數(shù)據(jù)表示包括相應(yīng)于信息項目的項目值的記錄的數(shù)組,在所述值列表中,按相應(yīng)于項目值的項目值號的順序存儲項目值,在所述指針數(shù)組中,按所述記錄的順序存儲用于指定所述項目值號的信息,其中每個處理模塊在所述存儲器內(nèi)存儲被唯一地分配給所述多個處理模塊中的處理模塊中的記錄的全局記錄號和按所述多個處理模塊中的處理模塊中的項目值排序的全局項目值號;每個處理模塊包括本地排序裝置,用于在所述處理模塊內(nèi),按根據(jù)至少一個或多個指定的項目的全局項目值號組確定的順序?qū)λ鲇涗浥判?;維度值編號裝置,用于在所述存儲器內(nèi)存儲相應(yīng)于所述記錄的全局項目值號組,所述全局項目值號組按所述在所述全局項目值號組中的排序的記錄的順序與維度值號相關(guān)聯(lián);全局維度值編號裝置,用于從其它處理模塊相互獲取全局項目值號組,對順序高于所述處理模塊內(nèi)的全局項目值號組的全局項目值號組的數(shù)目計數(shù),并且通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的全局項目值組的維度值號,給所述全局項目值號組分配在所述多個處理模塊間共用的全局維度值號;制表裝置,用于為每個全局項目值號組,通過根據(jù)預(yù)定的規(guī)則對信息的預(yù)定項目的項目值制表,計算本地制表值;全局制表裝置,用于從其它處理模塊獲取每個全局項目值號組的本地制表值,并且通過對為每個全局項目值號組獲取的制表值進行制表計算制表值。
4.如權(quán)利要求3的信息處理系統(tǒng),其中每個處理模塊還包括用于從所述全局項目值號組中恢復(fù)一組項目值,并且創(chuàng)建包括該組項目值以及相應(yīng)于該組項目值的制表值的結(jié)果表的裝置,所述裝置被連接到所述全局制表裝置。
5.一種程序,用于使得信息處理系統(tǒng)內(nèi)的處理模塊的計算機執(zhí)行下面的步驟,在所述信息處理系統(tǒng)內(nèi),多個處理模塊邏輯地連接為環(huán)形,并且每個處理模塊包括以值列表和指針數(shù)組的形式存儲表格式數(shù)據(jù)的存儲器,所述表格式數(shù)據(jù)表示包括相應(yīng)于信息項目的項目值的記錄的數(shù)組,在所述值列表中,按相應(yīng)于項目值的項目值號的順序存儲項目值,在所述指針數(shù)組中,按所述記錄的順序存儲用于指定所述項目值號的信息,所述步驟包括在存儲器內(nèi)存儲被唯一地分配給所述多個處理模塊中的處理模塊中的記錄的全局記錄號和按所述多個處理模塊中的處理模塊中的項目值排序的全局項目值號的步驟;在所述處理模塊內(nèi),按根據(jù)至少一個或多個指定的項目的全局項目值號組設(shè)置的順序?qū)λ鲇涗浥判虻牟襟E;在所述存儲器內(nèi)存儲相應(yīng)于所述記錄的全局項目值號組的步驟,所述全局項目值號組與表示所述在所述全局項目值號組中的排序的記錄的順序的維度值號相關(guān)聯(lián);從其它處理模塊相互獲取全局項目值號組,對順序高于所述處理模塊內(nèi)的全局項目值號組的全局項目值號組的數(shù)目計數(shù),并且通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的全局項目值號組的維度值號,給所述全局項目值號組分配在所述多個處理模塊間共用的全局維度值號的步驟;為每個全局項目值號組,通過根據(jù)預(yù)定的規(guī)則對信息的預(yù)定項目的項目值制表,計算本地制表值的步驟;及在每個處理模塊內(nèi),從其它處理模塊獲取每個全局項目值號組的本地制表值,并且通過對為每個全局項目值號組獲取的制表值進行制表計算制表值的步驟。
6.如權(quán)利要求5的程序,在所述計算制表值的步驟之后,還包括使得所述處理模塊的計算機執(zhí)行從所述全局項目值號組恢復(fù)一組項目值,并且創(chuàng)建包括該組項目值以及相應(yīng)于該組項目值的制表值的結(jié)果表的步驟。
7.一種信息處理方法,用于給在信息處理系統(tǒng)中的每個處理模塊內(nèi)單獨排序的值分配在多個處理模塊間共用的順序號,在所述信息處理系統(tǒng)內(nèi),多個分別具有存儲著排序值列表的存儲器的處理模塊被邏輯地連接為環(huán)形,該信息處理方法包括在每個處理模塊內(nèi),在所述存儲器內(nèi)存儲相應(yīng)于所述處理模塊內(nèi)的所述值列表中的各個值的順序號的初始值的步驟;在每個處理模塊內(nèi),將存儲在該處理模塊的存儲器內(nèi)的值列表傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的第一傳輸步驟;在每個處理模塊內(nèi),對于所述處理模塊內(nèi)的值列表的各個值,對順序高于從被邏輯地連接到前一級的處理模塊接收的值列表內(nèi)的各個值的值的數(shù)目計數(shù),通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,更新該處理模塊內(nèi)的值列表中的各個值的順序號,并且將更新的順序號存儲在所述存儲器內(nèi)的第一更新步驟;在每個處理模塊內(nèi),將另一個值列表傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的第二傳輸步驟,通過從接收自被邏輯地連接到前一級的處理模塊的值列表的值中排除與該處理模塊內(nèi)的值列表中的值相符的值獲得所述另一個值列表;在每個處理模塊內(nèi),對于所述處理模塊內(nèi)的值列表中的各個值,對順序高于從被邏輯地連接到前一級的處理模塊接收的所述另一個值列表內(nèi)的各個值的值的數(shù)目計數(shù),通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,更新該處理模塊內(nèi)的值列表中的各個值的順序號,并且將更新的順序號存儲在所述存儲器內(nèi)的第二更新步驟;在每個處理模塊內(nèi),重復(fù)執(zhí)行第二傳輸步驟和第二更新步驟,直到被邏輯地連接到前一級的處理模塊通過被邏輯地連接為環(huán)形的其它處理模塊接收到在第一傳輸步驟中傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的值列表為止的步驟。
8.一種信息處理系統(tǒng),包括分別具有存儲著排序值列表的存儲器的多個處理模塊,以及將所述多個處理模塊邏輯地連接為環(huán)形的傳輸路徑,該信息處理系統(tǒng)給每個處理模塊內(nèi)的值列表內(nèi)的值分配在多個處理模塊間共用的順序號,其中每個處理模塊包括初始化裝置,用于在所述存儲器內(nèi)存儲所述處理模塊內(nèi)的值列表內(nèi)的各個值的順序號的初始值,并且將存儲在該處理模塊的存儲器內(nèi)的值列表傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊;接收裝置,用于從被邏輯地連接到前一級的處理模塊接收值列表;更新裝置,用于對于所述處理模塊內(nèi)的值列表中的各個值,對順序高于由所述接收裝置接收的值列表內(nèi)的各個值的值的數(shù)目計數(shù),通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,更新該處理模塊內(nèi)的值列表中的各個值的順序號,并且在所述存儲器內(nèi)存儲更新的順序號;傳輸裝置,用于將另一個值列表傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊,通過從所述接收裝置接收的值列表中的值中排除與該處理模塊內(nèi)的值列表中的值相符的值獲得所述另一個值列表;和控制裝置,用于啟動所述初始化裝置,并且使得所述接收裝置、更新裝置和傳輸裝置重復(fù)操作,直到被邏輯地連接到前一級的處理模塊通過被邏輯地連接為環(huán)形的其它處理模塊接收到由所述初始化裝置傳輸?shù)闹盗斜頌橹埂?br>
9.一種程序,用于使得計算機執(zhí)行信息處理系統(tǒng)內(nèi)的信息處理方法,在所述信息處理系統(tǒng)內(nèi),多個分別具有存儲著排序值列表的存儲器的處理模塊被邏輯地連接為環(huán)形,該程序使得處理模塊的計算機執(zhí)行在所述存儲器內(nèi)存儲所述處理模塊內(nèi)的值列表中的各個值的順序號的初始值的步驟;將存儲在該處理模塊的存儲器內(nèi)的值列表傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的第一傳輸步驟;對于所述處理模塊內(nèi)的值列表中的各個值,對順序高于從被邏輯地連接到前一級的處理模塊接收的值列表內(nèi)的各個值的值的數(shù)目計數(shù),通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,更新該處理模塊內(nèi)的值列表中的各個值的順序號,并且將更新的順序號存儲在所述存儲器內(nèi)的第一更新步驟;將另一個值列表傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的第二傳輸步驟,通過從接收到的值列表的值中排除與該處理模塊內(nèi)的值列表中的值相符的值獲得所述另一個值列表;對于所述處理模塊內(nèi)的值列表中的各個值,對順序高于接收自被邏輯地連接到前一級的處理模塊的所述另一個值列表內(nèi)的各個值的值的數(shù)目計數(shù),通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,更新該處理模塊內(nèi)的值列表中的各個值的順序號,并且將更新的順序號存儲在所述存儲器內(nèi)的第二更新步驟;重復(fù)執(zhí)行第二傳輸步驟和第二更新步驟,直到被邏輯地連接到前一級的處理模塊通過被邏輯地連接為環(huán)形的其它處理模塊接收到在第一傳輸步驟中傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的值列表為止的步驟。
10.一種信息處理方法,用于給在信息處理系統(tǒng)中的每個處理模塊內(nèi)單獨保持的值分配在多個處理模塊間共用的順序號,在所述信息處理系統(tǒng)內(nèi),多個分別具有存儲著值列表的存儲器的處理模塊被邏輯地連接為環(huán)形,該信息處理方法包括在每個處理模塊內(nèi),在所述存儲器內(nèi)存儲相應(yīng)于所述處理模塊內(nèi)的所述值列表中的各個值的順序號初始值的步驟;在每個處理模塊內(nèi),將存儲在該處理模塊的存儲器內(nèi)的值列表傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的第一傳輸步驟;在每個處理模塊內(nèi),對于所述處理模塊內(nèi)的值列表中的各個值,對順序高于從被邏輯地連接到前一級的處理模塊接收的值列表內(nèi)的各個值的值的數(shù)目計數(shù),通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,更新該處理模塊內(nèi)的值列表中的各個值的順序號,并且將更新的順序號存儲在所述存儲器內(nèi)的第一更新步驟;在每個處理模塊內(nèi),將另一個值列表傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的第二傳輸步驟,通過從接收到的值列表中的值中排除與該處理模塊內(nèi)的值列表中的值相符的值獲得所述另一個值列表;在每個處理模塊內(nèi),對于所述處理模塊內(nèi)的值列表中的各個值,對順序高于接收自被邏輯地連接到前一級的處理模塊的所述另一個值列表內(nèi)的各個值的值的數(shù)目計數(shù),通過以計數(shù)的數(shù)目增加該處理模塊內(nèi)的值列表內(nèi)的各個值的順序號,更新該處理模塊內(nèi)的值列表中的各個值的順序號,并且將更新的順序號存儲在所述存儲器內(nèi)的第二更新步驟;和在每個處理模塊內(nèi),重復(fù)執(zhí)行第二傳輸步驟和第二更新步驟,直到被邏輯地連接到前一級的處理模塊通過被邏輯地連接為環(huán)形的其它處理模塊接收到在第一傳輸步驟中傳輸?shù)奖贿壿嫷剡B接到下一級的處理模塊的值列表為止的步驟。
全文摘要
在并行計算機中,在將大規(guī)模數(shù)據(jù)保持在各個處理器內(nèi)的同時實現(xiàn)了對大規(guī)模數(shù)據(jù)的排序和計算,而不用在處理器間共享大規(guī)模的數(shù)據(jù),以至于減少了處理器間的通信。一種信息處理方法將在所有處理模塊間共用的全局維度值號授予維度值用于計算,計算處理模塊內(nèi)的每個維度值號的測量,并且最后在所有處理模塊間共同計算測量。由各個處理模塊本地地保持值列表和指向值列表的指針布置,并且在處理模塊間全局地保持維度值的順序作為參考。結(jié)果,可以消除處理模塊獲取計算所需的數(shù)據(jù)的相互訪問,并且僅在處理模塊間傳輸確定維度值的順序所需的數(shù)據(jù)。
文檔編號G06F17/30GK1886739SQ200480034920
公開日2006年12月27日 申請日期2004年10月19日 優(yōu)先權(quán)日2003年10月27日
發(fā)明者古莊晉二 申請人:特博數(shù)據(jù)實驗室公司