專利名稱:從復(fù)雜網(wǎng)絡(luò)中識(shí)別模塊化結(jié)構(gòu)的方法和工具的制作方法
技術(shù)領(lǐng)域:
本發(fā)明主要涉及模塊化結(jié)構(gòu)的識(shí)別,特別是一種從復(fù)雜網(wǎng)絡(luò)中識(shí)別模塊化結(jié)構(gòu)的 方法和工具,以及一個(gè)計(jì)算系統(tǒng)。
背景技術(shù):
復(fù)雜網(wǎng)絡(luò)是指具有復(fù)雜拓?fù)涮卣鞯木W(wǎng)絡(luò)。復(fù)雜網(wǎng)絡(luò)的研究因諸如生物技術(shù)網(wǎng)絡(luò) (細(xì)胞網(wǎng)絡(luò),蛋白相互作用網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)),互聯(lián)網(wǎng)/萬維網(wǎng),社交網(wǎng)絡(luò)等真實(shí)網(wǎng)絡(luò)的實(shí)證研 究而被激發(fā)。這些真實(shí)網(wǎng)絡(luò)最廣泛的特征之一是存在模塊化結(jié)構(gòu)或群組,例如,如果用一個(gè) 圖來代表一種復(fù)雜網(wǎng)絡(luò),群組由頂點(diǎn)組織,同一群組中含有許多邊以及相對(duì)較少的邊連接 不同群組的頂點(diǎn)。從復(fù)雜網(wǎng)絡(luò)中識(shí)別模塊化結(jié)構(gòu)對(duì)理解圖表描述的實(shí)際問題具有重要意 義,例如,追蹤在線病毒,社交網(wǎng)絡(luò)服務(wù)中的社會(huì)行為分析,檢測(cè)重要基因功能等等。目前已經(jīng)有一些方法可以利用串行計(jì)算設(shè)備,即中央處理器(CPUs)來從復(fù)雜網(wǎng) 絡(luò)中識(shí)別模塊化結(jié)構(gòu)。傳統(tǒng)方法像分層聚類法,劃分聚類法,譜聚類法等,分割方法中的 Girvan-Newman算法以及模塊化貪婪算法需要花費(fèi)很長(zhǎng)時(shí)間才能完成計(jì)算,這歸因于復(fù)雜 網(wǎng)絡(luò)的巨大規(guī)模。例如,社交網(wǎng)絡(luò)領(lǐng)域的Facebook在2010年2月宣布有4億用戶。因此, 相應(yīng)的圖有上百萬的邊和頂點(diǎn)?,F(xiàn)存真實(shí)復(fù)雜網(wǎng)絡(luò)具有數(shù)據(jù)量大,計(jì)算的時(shí)間和空間復(fù)雜 度高的特征.因此,利用串行計(jì)算設(shè)備從復(fù)雜網(wǎng)絡(luò)中檢測(cè)模塊化結(jié)構(gòu)的方法已經(jīng)暴露出了 執(zhí)行時(shí)間長(zhǎng),用戶交互低和能源效率低的缺陷。另一方面,雖然超級(jí)計(jì)算機(jī)工作站或高性能 計(jì)算集群能夠在較短時(shí)間內(nèi)完成計(jì)算,但是花費(fèi)較高,對(duì)開發(fā)人員不友好,阻礙了通用研究 和商業(yè)推廣。因此,需要尋找從復(fù)雜網(wǎng)絡(luò)中鑒定模型結(jié)構(gòu)的方法和工具,或者一個(gè)具有CPU和 并行處理設(shè)備,比如圖形處理器(GPU)或者分布于網(wǎng)絡(luò)中的處理單元的計(jì)算系統(tǒng),這個(gè)計(jì)算 系統(tǒng)能夠在較短時(shí)間內(nèi)完成計(jì)算,同時(shí)節(jié)約成本。
發(fā)明摘要本發(fā)明提供一套工具,一種方法和一個(gè)系統(tǒng)用于從復(fù)雜網(wǎng)絡(luò)中識(shí)別模塊化結(jié)構(gòu), 它們能夠在較短時(shí)間完成計(jì)算并節(jié)約成本。本發(fā)明一個(gè)方面,是一套用于從復(fù)雜網(wǎng)絡(luò)中識(shí)別模塊化結(jié)構(gòu)的工具。其使用了一 個(gè)具有CPU和一個(gè)并行處理設(shè)備的計(jì)算系統(tǒng)。此工具包括一個(gè)位于CPU上的數(shù)據(jù)讀取工 具,用來讀取任務(wù)數(shù)據(jù),該任務(wù)數(shù)據(jù)包括復(fù)雜網(wǎng)絡(luò)中的節(jié)點(diǎn),具有節(jié)點(diǎn)間關(guān)系權(quán)重的邊和復(fù) 雜網(wǎng)絡(luò)中執(zhí)行任務(wù)的任務(wù)參數(shù);一個(gè)位于CPU上的模塊儲(chǔ)存工具,用于儲(chǔ)存預(yù)定義的子塊 集合,這些子模塊各自指示著一個(gè)特殊進(jìn)程;一個(gè)位于CPU上的確定工具,用于確定任務(wù)模 塊,從而根據(jù)任務(wù)數(shù)據(jù)從一套分別指示著一個(gè)特定進(jìn)程的預(yù)設(shè)子模塊中分配子任務(wù)進(jìn)程, 這些子任務(wù)進(jìn)程將會(huì)分別由并行處理設(shè)備上的多重并行處理器中執(zhí)行;一個(gè)位于CPU上的 第一界面,用于接收由確定工具轉(zhuǎn)換而來的任務(wù)模塊;一個(gè)位于CPU上的發(fā)報(bào)機(jī)工具,用于 根據(jù)多重并行處理器將任務(wù)數(shù)據(jù)分為多重?cái)?shù)據(jù)子集;一個(gè)位于CPU上的第二界面,用于接 收由發(fā)報(bào)機(jī)轉(zhuǎn)換而來的任務(wù)數(shù)據(jù);一個(gè)位于并行處理設(shè)備上的第一前端,連接著第一界面,用于接收由第一界面轉(zhuǎn)換而來的任務(wù)模塊;一個(gè)位于并行處理設(shè)備上的程序匯編工具,用 于接收由第一前端傳遞過來的任務(wù)模塊,產(chǎn)生能被多重并行處理器從任務(wù)模塊中讀取的子 任務(wù)進(jìn)程,以及分配這些子任務(wù)進(jìn)程到多重并行處理器;一個(gè)位于并行處理設(shè)備上的第二 前端,連接著第二界面,用于接收來自于第二界面的多重?cái)?shù)據(jù)子集,并將這些多重?cái)?shù)據(jù)子集 分別傳遞給多重并行處理器;多重并行處理器,用于分別平行執(zhí)行子任務(wù)進(jìn)程,這些子任務(wù) 進(jìn)程是由程序匯編工具根據(jù)數(shù)據(jù)子集分配形成的,并獲得平行結(jié)果;以及一個(gè)分類工具,用 于處理平行結(jié)果,從復(fù)雜網(wǎng)絡(luò)中獲得模型結(jié)構(gòu)。本發(fā)明另一方面,從復(fù)雜網(wǎng)絡(luò)中鑒定一種模型結(jié)構(gòu)的方法,其使用了一個(gè)具有一 個(gè)CPU和一個(gè)并行處理器的計(jì)算系統(tǒng),此方法包括通過CPU上的數(shù)據(jù)閱讀工具閱讀任務(wù)數(shù) 據(jù),該任務(wù)數(shù)據(jù)包括復(fù)雜網(wǎng)絡(luò)中的節(jié)點(diǎn),具有指明節(jié)點(diǎn)間關(guān)系數(shù)值的邊緣,以及復(fù)雜網(wǎng)絡(luò)中 執(zhí)行任務(wù)的任務(wù)參數(shù);通過CPU上的確定工具確定任務(wù)模塊,從而根據(jù)任務(wù)數(shù)據(jù)分配子任 務(wù)進(jìn)程,這些子任務(wù)進(jìn)程分別由并行處理設(shè)備中的多重并行處理器執(zhí)行,它們來自于一套 預(yù)設(shè)的指明了一個(gè)特殊進(jìn)程的子模塊,并將任務(wù)模塊轉(zhuǎn)換到CPU上的第一界面;通過第一 界面將任務(wù)模塊轉(zhuǎn)換到并行處理設(shè)備上的第一前端;通過第一前端將任務(wù)模塊傳遞給并行 處理設(shè)備上的程序匯編工具;由程序匯編工具產(chǎn)生可由多重并行處理器從任務(wù)模塊中讀取 的子任務(wù)進(jìn)程,并將子任務(wù)進(jìn)程分配給多重并行處理器;由位于CPU上的發(fā)報(bào)機(jī)工具根據(jù) 多重并行處理器將任務(wù)數(shù)據(jù)分成多重?cái)?shù)據(jù)子集;由位于CPU上的第二界面將多重?cái)?shù)據(jù)子集 轉(zhuǎn)換到并行處理設(shè)備上的第二前端;由第二前端分別將多重?cái)?shù)據(jù)子集傳遞給多重并行處理 器;通過多重并行處理器平行執(zhí)行子任務(wù)進(jìn)程,這些子任務(wù)進(jìn)程是由程序匯編工具分別根 據(jù)數(shù)據(jù)子集分配的,獲得平行結(jié)果;以及通過分類工具處理平行結(jié)果,從復(fù)雜網(wǎng)絡(luò)中獲得模 型結(jié)構(gòu)。本發(fā)明另一方面,從復(fù)雜網(wǎng)絡(luò)中鑒定模型結(jié)構(gòu)的系統(tǒng),其包括一個(gè)CPU和一個(gè)并 行處理設(shè)備。CPU包括一個(gè)用于閱讀任務(wù)數(shù)據(jù)的數(shù)據(jù)閱讀工具,這些任務(wù)數(shù)據(jù)包括復(fù)雜網(wǎng) 絡(luò)中的節(jié)點(diǎn),具有指明節(jié)點(diǎn)間關(guān)系數(shù)值的邊緣和復(fù)雜網(wǎng)絡(luò)中任務(wù)執(zhí)行的任務(wù)參數(shù);一個(gè)用 來儲(chǔ)存一套預(yù)設(shè)子模塊的模塊儲(chǔ)存工具,這些子模塊各自分別指示著一個(gè)特定的進(jìn)程;一 個(gè)確定任務(wù)模塊的確定工具,從而根據(jù)任務(wù)數(shù)據(jù)從一套分別指示著一個(gè)特定進(jìn)程的預(yù)設(shè)子 模塊中分配子任務(wù)進(jìn)程,這些子任務(wù)進(jìn)程將會(huì)分別由并行處理設(shè)備上的多重并行處理器中 執(zhí)行;一個(gè)用于接收由確定工具轉(zhuǎn)換而來的任務(wù)模塊的第一界面;一個(gè)用來根據(jù)多重并行 處理器將任務(wù)數(shù)據(jù)分成多重?cái)?shù)據(jù)子集的發(fā)報(bào)機(jī)工具;一個(gè)用來接收由發(fā)報(bào)機(jī)工具轉(zhuǎn)換而來 的任務(wù)數(shù)據(jù)的第二界面。并行處理設(shè)備包括一個(gè)連接第一界面的第一前端,用來接收由第 一界面轉(zhuǎn)換而來的任務(wù)模塊;一個(gè)用來接收由第一前端傳遞過來的任務(wù)模塊的程序匯編工 具,從任務(wù)模塊中產(chǎn)生可被多重并行處理器讀取的子任務(wù)進(jìn)程;一個(gè)連接第二界面的第二 前端,用來接收來自第二界面的多重?cái)?shù)據(jù)子集和分別將多重?cái)?shù)據(jù)子集傳遞給多重并行處理 器;多重并行處理器用來平行執(zhí)行任務(wù),子任務(wù)進(jìn)程根據(jù)數(shù)據(jù)子集分別被程序匯編工具分 配來獲得平行結(jié)果;一個(gè)分類工具,用來處理平行結(jié)果,從復(fù)雜網(wǎng)絡(luò)中獲得模型結(jié)構(gòu)。
結(jié)合閱讀文中的附圖,將能夠更好的理解前面提到的發(fā)明內(nèi)容,以及接下來的具 體實(shí)施方式,這些附圖以舉例的行式給出,不能作為對(duì)權(quán)利要求的限制。
圖1是一個(gè)說明一個(gè)發(fā)明實(shí)例的計(jì)算系統(tǒng)模塊圖。圖2是一個(gè)說明另一個(gè)發(fā)明實(shí)例的計(jì)算系統(tǒng)模塊圖。圖3說明復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)的一種結(jié)構(gòu)實(shí)例。圖4顯示的是儲(chǔ)存預(yù)定義子圖的一個(gè)模塊儲(chǔ)存工具實(shí)例。圖5是子圖的BFS搜索流程圖。圖6是計(jì)算結(jié)點(diǎn)中心度流程圖。圖7是分類工具執(zhí)行的流程圖。圖8是另一個(gè)發(fā)明實(shí)例中用到的從復(fù)雜網(wǎng)絡(luò)中識(shí)別模塊化結(jié)構(gòu)的方法流程圖。
具體實(shí)施例方式這里將對(duì)
中的具體實(shí)例進(jìn)行參照說明。在下面的詳盡描述中,闡述了許 多具體細(xì)節(jié)以提供一個(gè)關(guān)于本發(fā)明的透徹理解。圖1是對(duì)應(yīng)一個(gè)發(fā)明實(shí)例的計(jì)算系統(tǒng)1000的說明圖。計(jì)算系統(tǒng)1000包含一個(gè) CPU 200和GPU 300,作為并行處理設(shè)備的舉例。需要聲明的是,盡管圖1僅例出了一個(gè)CPU 200和一個(gè)GPU 300,計(jì)算系統(tǒng)1000中包含的CPUs和GPUs的數(shù)量不局限于一個(gè),并且它們 的數(shù)量可以根據(jù)需求調(diào)整。同樣需要理解的是,盡管圖1展示了 GPU 300作為并行處理設(shè) 備,不同情況下并行處理設(shè)備的具體產(chǎn)品形式可以改變。例如,并行處理設(shè)備可能是分布在 一個(gè)網(wǎng)絡(luò)中的多個(gè)處理單元,這些設(shè)備能夠執(zhí)行并行處理,彼此間能夠交換數(shù)據(jù)或信息,例 如一個(gè)局域網(wǎng)(LAN)或者是一個(gè)萬維網(wǎng)(WAN)。GPU 300實(shí)例可能使用nVidia開發(fā)的通用圖形處理單元(GPGPU)平臺(tái)的計(jì)算統(tǒng) 一設(shè)備架構(gòu)(CUDA)。然而,在本發(fā)明的啟發(fā)下,其他的商用GPUs也可以使用。參照?qǐng)D1,CPU 200包含一個(gè)數(shù)據(jù)讀取工具210,一個(gè)調(diào)度工具220,一個(gè)模塊儲(chǔ) 存工具230,一個(gè)決策工具240,一個(gè)第一接口 250和一個(gè)第二接口 255。GPU 300包含多 個(gè)并行處理器310-1,310-2…,310-N,其中N是一個(gè)整數(shù)。為了描述清晰,多個(gè)并行處理器 310-1,310-2…,310-N將會(huì)在下文中統(tǒng)一被稱作是并行處理器310。GPU 300進(jìn)一步由一個(gè)第一前端320,一個(gè)第二前端325,一個(gè)裝配工具330和一 個(gè)分類工具340組成。然而,需要聲明的是,盡管分類工具340顯示為包含在GPU 300中, 它可以有不同的位置。例如,分類工具340可能放置在CPU 200中,本發(fā)明也適用于這些實(shí) 例。特別地,數(shù)據(jù)讀取工具210讀取任務(wù)數(shù)據(jù),這些數(shù)據(jù)包括復(fù)雜網(wǎng)絡(luò)中的結(jié)點(diǎn),具有 指示結(jié)點(diǎn)間關(guān)系的數(shù)值的邊,以及復(fù)雜網(wǎng)絡(luò)中執(zhí)行任務(wù)的任務(wù)參數(shù)。由計(jì)算系統(tǒng)1000確定的模塊化結(jié)構(gòu)可能包含多個(gè)社區(qū),其中每個(gè)社區(qū)內(nèi)的結(jié)點(diǎn) 之間的關(guān)系更加緊密。例如,在一個(gè)蛋白質(zhì)-蛋白質(zhì)相互作用網(wǎng)絡(luò)中,蛋白質(zhì)間的相互作用 對(duì)于幾乎所有的生物功能至關(guān)重要。例如,細(xì)胞外部信號(hào)是由信號(hào)分子的蛋白質(zhì)-蛋白質(zhì) 相互作用介導(dǎo)進(jìn)入細(xì)胞內(nèi)部。這一過程被稱為信號(hào)轉(zhuǎn)導(dǎo),它在許多生物進(jìn)程和許多疾病,比 如癌癥中扮演著重要的角色。通??梢钥梢暬W(wǎng)絡(luò)圖中的蛋白相互作用,表征這些網(wǎng)絡(luò)圖 中嵌入的模塊化結(jié)構(gòu)具有重要意義。在這些情況下,任務(wù)數(shù)據(jù)中的結(jié)點(diǎn)可能分別是不同的 蛋白。這些結(jié)點(diǎn)間的關(guān)系表示蛋白間的相互作用。任務(wù)參數(shù)描述用來決定蛋白質(zhì)模塊結(jié)構(gòu) 的任務(wù),并且模塊化結(jié)構(gòu)中的每個(gè)團(tuán)體包含著具有相互作用趨向的蛋白質(zhì)。
另外ー個(gè)實(shí)例,在社交網(wǎng)絡(luò)中,結(jié)點(diǎn)可能代表社交網(wǎng)絡(luò)中的不同成員,具有相應(yīng)數(shù) 值的邊代表結(jié)點(diǎn)間的特定關(guān)系。例如,在ー個(gè)公司的社交網(wǎng)絡(luò)中,結(jié)點(diǎn)代表的是公司員エ。 關(guān)系,即具有相應(yīng)數(shù)值的邊緣可能代表的是任意兩個(gè)員エ工作區(qū)域間的空間距離。這種情 況下,距離較近的員エ可被認(rèn)為是在同一部門。因此,最終獲得的模塊化結(jié)構(gòu)包含同一部門 里的員エ。任務(wù)參數(shù)可被用于控制最終獲得的模塊化結(jié)構(gòu)。例如,任務(wù)參數(shù)可能會(huì)指定ー個(gè) 最終的模塊化結(jié)構(gòu)要滿足的條件,比如模塊化結(jié)構(gòu)的最大尺寸,模塊化結(jié)構(gòu)的最小數(shù)量。模塊儲(chǔ)存工具230儲(chǔ)存著一套預(yù)定義的子模塊,每個(gè)子模塊分別代表了ー個(gè)特殊 的處理進(jìn)程。稍后會(huì)對(duì)預(yù)定義的子模塊進(jìn)行詳細(xì)的描述。決策工具240根據(jù)任務(wù)數(shù)據(jù)從儲(chǔ)存在模塊儲(chǔ)存工具230的預(yù)定子模塊中確定ー個(gè) 任務(wù)模塊。然后決策工具240將任務(wù)數(shù)據(jù)傳輸給第一接ロ 250。任務(wù)數(shù)據(jù)用來分配子任務(wù) 進(jìn)程,這些子任務(wù)進(jìn)程將會(huì)在相應(yīng)的多個(gè)并行處理器310中執(zhí)行。任務(wù)模塊的確定可被定 制為特定的任務(wù),下面會(huì)作舉例說明。調(diào)度工具220根據(jù)并行處理設(shè)備(GPU) 300上的多個(gè)并行處理器310將任務(wù)數(shù)據(jù) 分為多重?cái)?shù)據(jù)子集。調(diào)度工具220可能通過檢查GPU的構(gòu)造來分配任務(wù)數(shù)據(jù),然后設(shè)置數(shù) 據(jù)子集的大小。如圖I所示,GPU300上的第一前端320連接著CPU200上的第一接ロ 250。第一前 端320接收來自于第一界面250傳輸?shù)娜蝿?wù)模塊,然后將任務(wù)模塊傳遞給裝配工具330。裝配工具330接收來自第一前端320傳輸?shù)娜蝿?wù)模塊,產(chǎn)生可被多個(gè)并行處理器 310讀取的子任務(wù)進(jìn)程。例如,裝配工具330為并行處理單元310以GPU可讀機(jī)器代碼的形 式將任務(wù)模塊轉(zhuǎn)換成子任務(wù)進(jìn)程。然后,調(diào)度330分別將子任務(wù)進(jìn)程分配給多個(gè)并行處理 器 310。位于GPU300上的第二前端325,連接著CPU200上的第二接ロ 255,接收來自第二 接ロ 255的多重?cái)?shù)據(jù)子集。然后第二前端325分別將多重?cái)?shù)據(jù)子集傳遞給多個(gè)并行處理器 310。多個(gè)并行處理器310分別并行處理由調(diào)度工具根據(jù)數(shù)據(jù)子集分配的子任務(wù)進(jìn)程, 并獲得并行結(jié)果。分類工具340處理并行結(jié)果以獲得復(fù)雜網(wǎng)絡(luò)中的模塊化結(jié)構(gòu)。需要聲明的是,盡管圖I分別展示了兩個(gè)接ロ 250和255,它們也可以聯(lián)合在一起。 也就是說,接ロ 250和255可能包含在同一元件中。這也適用于第一前端320和第二前端 325,它們可能包含于同一元件中。另ー方面,圖I所示的元件是分布于CPU和并行處理設(shè)備上的。然而,這些元件可 以整合為ー個(gè)整體,比如本發(fā)明的ー套工具。因此本發(fā)明在低成本的并行處理設(shè)備,如GPU,的基礎(chǔ)上提出ー個(gè)并行計(jì)算系統(tǒng), 來識(shí)別復(fù)雜網(wǎng)絡(luò)中的模塊化結(jié)構(gòu),顯著減少了計(jì)算的執(zhí)行時(shí)間和成本,為商業(yè)和科研實(shí)體 提供了ー個(gè)復(fù)雜網(wǎng)絡(luò)研究平臺(tái)。圖2是本發(fā)明另ー個(gè)實(shí)例中的計(jì)算系統(tǒng)1100的說明圖。用相似的編號(hào)來指示與 圖I中所示的相同或相似部分,這里為了簡(jiǎn)潔將會(huì)省去關(guān)于它們的詳細(xì)描述。除了那些圖I所示的計(jì)算系統(tǒng)1000的組成元件外,圖2的計(jì)算系統(tǒng)1100還包括 一個(gè)可視化工具260,ー個(gè)網(wǎng)絡(luò)數(shù)據(jù)工具270和ー個(gè)數(shù)據(jù)儲(chǔ)存工具280。
特別地,圖2的案例中,可視化工具260接收由分類工具340直接(如果分類工具 340位于CPU200)或通過另一個(gè)中間元件(比如前端和接口)獲得的模型結(jié)構(gòu),然后在監(jiān)視 器上展示模型結(jié)構(gòu)。因此,為數(shù)據(jù)的解釋提供了一個(gè)友好的方式。網(wǎng)絡(luò)數(shù)據(jù)工具270能夠提取復(fù)雜網(wǎng)絡(luò)數(shù)據(jù),它們代表著結(jié)點(diǎn)和具有相應(yīng)數(shù)值的 邊。例如,網(wǎng)絡(luò)數(shù)據(jù)工具270能將一個(gè)特定網(wǎng)絡(luò),比如生物學(xué)或社交網(wǎng)絡(luò)中的真實(shí)問題轉(zhuǎn)換 成復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)。圖3闡明了復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)的結(jié)構(gòu)實(shí)例。如圖3所示,復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)的一 個(gè)條目可能包含一個(gè)結(jié)點(diǎn)(結(jié)點(diǎn)I)索引和一個(gè)緊挨著結(jié)點(diǎn)I的結(jié)點(diǎn)(結(jié)點(diǎn)2)索引,以及代 表著結(jié)點(diǎn)I和結(jié)點(diǎn)2之間的邊的數(shù)值。圖3僅僅顯示了用于復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)的一個(gè)條目來做 解釋。然而,復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)的條目數(shù)量是沒有限制的。例如,如果復(fù)雜網(wǎng)絡(luò)中有M個(gè)結(jié)點(diǎn), 而且結(jié)點(diǎn)間的邊沒有方向性(即,從結(jié)點(diǎn)I到結(jié)點(diǎn)2的邊與從結(jié)點(diǎn)2到經(jīng)點(diǎn)I的邊等價(jià)),那 么復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)中條目的數(shù)目可能會(huì)是從I到C(M,2)。在邊有方向性的情況下,比如從結(jié) 點(diǎn)I到結(jié)點(diǎn)2的邊與從結(jié)點(diǎn)2到結(jié)點(diǎn)I的邊不同,因此它們具有不同的數(shù)值,復(fù)雜網(wǎng)絡(luò)數(shù)據(jù) 中條目的數(shù)目將是從I到P (M,2)。返回到圖2,數(shù)據(jù)儲(chǔ)存工具280儲(chǔ)存復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)作為任務(wù)數(shù)據(jù)的一部分,這些任 務(wù)數(shù)據(jù)將會(huì)被數(shù)據(jù)讀取工具210讀取。需要注意的是盡管圖2所示的數(shù)據(jù)儲(chǔ)存工具280 位于CPU200,它也可能有不同的位置。例如,數(shù)據(jù)儲(chǔ)存工具280可能是獨(dú)立于CPU200和 GPU300的一個(gè)非易失性或者易變的存儲(chǔ)器,比如只讀存儲(chǔ)器(Read-Only Memory,R0M),隨 機(jī)存儲(chǔ)器(Random Access Memory, RAM),硬盤,光盤,閃存等等。令G(V,E,C)為一個(gè)復(fù)雜網(wǎng)絡(luò),其中頂點(diǎn)V e V,邊ee E,相應(yīng)的成本ce C。在 諸如生物學(xué)網(wǎng)絡(luò)的真實(shí)復(fù)雜網(wǎng)絡(luò)下,一個(gè)結(jié)點(diǎn)可能包含基因/蛋白質(zhì)名,具有數(shù)值的邊可 能表示的是它們之間特定的相互作用,比如催化作用或結(jié)合。例如,任務(wù)數(shù)據(jù)可能由網(wǎng)絡(luò)數(shù) 據(jù)工具270產(chǎn)生或預(yù)先確定。網(wǎng)絡(luò)數(shù)據(jù)工具270可能將蛋白相互作用網(wǎng)絡(luò)描述為數(shù)字形式 G (V, E, O0規(guī)定一個(gè)邊緣e的介數(shù)作為所有節(jié)點(diǎn)對(duì)最短途徑數(shù)。介數(shù)是邊緣e在圖表中的中 間值。發(fā)生在與別的邊緣間的許多最短途徑的邊緣具有較高的介數(shù)。數(shù)據(jù)儲(chǔ)存工具280儲(chǔ)存任務(wù)數(shù)據(jù)用于復(fù)雜網(wǎng)絡(luò)G (V, E, C),例如,以鄰結(jié)矩陣的形 式用于進(jìn)一步處理。圖4所示為儲(chǔ)存預(yù)定的一套子模塊的模塊儲(chǔ)存工具230實(shí)例。在模塊儲(chǔ)存工具230 中,闡述了分別代表著一個(gè)特殊處理進(jìn)程的處理子模塊,比如圖搜索子模塊231,最短路徑 子模塊233,以及中心性子模塊235。然而,其他種類的處理子模塊可以選擇性或附加性地 整合到模塊儲(chǔ)存工具230中。如上所述,任務(wù)模塊可以由決策工具240通過選擇/結(jié)合儲(chǔ)存在模塊儲(chǔ)存工具230 中的一個(gè)或多個(gè)子模塊的方式確定。例如,任務(wù)模塊可能包括圖表搜索子模塊231和中間 值子模塊235的組合,或者是最短途徑子模塊233和中間值子模塊235的組合。圖表搜索子模塊231指示的是促使并行處理器310執(zhí)行廣度優(yōu)先搜索(BFS)的流 程。這種情況下,圖表搜索子模塊231的輸入可能是一個(gè)預(yù)處理輸入和源頭節(jié)點(diǎn),輸出是來 自于網(wǎng)絡(luò)中源頭節(jié)點(diǎn)S的廣度優(yōu)先樹狀圖。例如,圖5是一個(gè)適用于圖表搜索子模塊231 的BFS程序500的流程圖。在S520處,數(shù)據(jù)輸入圖表搜索子模塊231,比如多重?cái)?shù)據(jù)子集之一。
在S530處,每個(gè)節(jié)點(diǎn)被描繪為CUDA流線型多處理器(并行處理器)上的一條線路。 在S540處,基于拓?fù)涮卣鳎瑘D表搜索子模塊231指定一個(gè)源頭節(jié)點(diǎn)s和一個(gè)最初的邊界集 F。令陣列F表示搜索的邊界,陣列X表示訪問節(jié)點(diǎn)。在每個(gè)反復(fù)過程中,每個(gè)邊界節(jié)點(diǎn)探 測(cè)其鄰近節(jié)點(diǎn),并將它們加到邊界節(jié)點(diǎn)集F中。在S550處,圖表搜索子模塊231在下一個(gè) 級(jí)別中找到F的連接節(jié)點(diǎn),并將它們加到訪問陣列X。在此期間,當(dāng)完成搜索鄰近節(jié)點(diǎn)時(shí),當(dāng) 前節(jié)點(diǎn)將自己加到訪問節(jié)點(diǎn)集X。在S560處,邊界節(jié)點(diǎn)集F被更新。例如,如果當(dāng)前路徑比 已經(jīng)存在的路徑短,那么路徑的長(zhǎng)度將會(huì)被更新,并且會(huì)重復(fù)一次。在S570處,確定了是否所有的節(jié)點(diǎn)被發(fā)現(xiàn)。如果仍然有節(jié)點(diǎn)將要被發(fā)現(xiàn),途徑500 返回到S550,開啟另一次反復(fù)。如果邊界集F是空集,而且沒有節(jié)點(diǎn)將會(huì)被發(fā)現(xiàn),圖表搜索 子模塊231途徑會(huì)在S580處終止,在S580處產(chǎn)生一個(gè)廣度優(yōu)先樹狀圖。這個(gè)廣度優(yōu)先樹 狀圖包含關(guān)于廣度優(yōu)先樹狀圖介數(shù)的信息。圖表搜索子模塊231可能進(jìn)一步或選擇性的指示DFS (深度優(yōu)先搜索),這在計(jì)算 領(lǐng)域是眾所周知的,它可以類似于BFS被用于本發(fā)明。當(dāng)任務(wù)模塊包括連續(xù)順序的圖表搜索子模塊231和中間值子模塊235組合時(shí),中 間值子模塊235有一個(gè)路徑促使并行處理器計(jì)算一個(gè)廣度優(yōu)先樹狀圖用于所有的節(jié)點(diǎn)。圖 6是中間值子模塊235指示的路徑600的流程圖。在路徑600的S610處,中間值子模塊235可能會(huì)訪問圖表搜索子模塊231來獲得 網(wǎng)絡(luò)中節(jié)點(diǎn)的廣度優(yōu)先樹狀圖。在S620處,確定是否所有的廣度優(yōu)先樹狀圖其以所有節(jié)點(diǎn) 作為源頭都被找到的。如果發(fā)現(xiàn)仍然有廣度優(yōu)先樹狀圖是用于一個(gè)特定的節(jié)點(diǎn),路徑400 返回到S610來獲得樹狀圖用于特定的節(jié)點(diǎn)作為源頭。如果S620確定所有的廣度優(yōu)先樹狀圖被找到,此路徑進(jìn)入S630,這里會(huì)執(zhí)行一個(gè) 關(guān)于每個(gè)邊緣介數(shù)的平行減少來獲得節(jié)點(diǎn)間的相關(guān)系數(shù)。邊緣相關(guān)系數(shù)的獲得是使用公式 w/b,這里w表示來自于復(fù)雜網(wǎng)絡(luò)分量的邊緣分量,b表示邊緣介數(shù)。路徑500和600是并行處理進(jìn)程,而且可分別由并行處理器310執(zhí)行,從而獲得平 行結(jié)果,比如上述的相關(guān)系數(shù)。在這種情況下,分類工具340使用來自于中間值子模塊235的全面相關(guān)系數(shù)輸入, 獲得網(wǎng)絡(luò)的模型結(jié)構(gòu)。圖7是由分類工具340執(zhí)行路徑700的流程圖。在S710處,輸入來自所有多重并行處理器310的相關(guān)系數(shù)作為平行結(jié)果。在S720 處,分類工具340識(shí)別具有最大相關(guān)系數(shù)的邊緣。在S730處,具有最大相關(guān)系數(shù)的邊緣被刪除。在S740處,刪除了此類邊緣的網(wǎng)絡(luò) 被確定是否滿足由任務(wù)參數(shù)指定的條件。例如,S740確定是否網(wǎng)絡(luò)中剩下的所有團(tuán)體的大 小小于最大的團(tuán)體大小。如果在S740處條件不滿足,路徑700走向S705,中間值子模塊235在這里被再次 啟動(dòng)來獲得相關(guān)系數(shù),用于網(wǎng)絡(luò)刪除具有最大相關(guān)系數(shù)的邊緣。如果在S740處條件滿足,路徑700在S750處終止,這里會(huì)獲得具有滿足任務(wù)參數(shù) 指定條件單元的模型結(jié)構(gòu)。另一方面,最短途徑子模塊233可能有路徑用于尋找圖表(網(wǎng)絡(luò))中每對(duì)節(jié)點(diǎn)間的 最短路徑。例如,APSP路徑(所有節(jié)點(diǎn)對(duì)最短路徑),SPSP (單個(gè)節(jié)點(diǎn)對(duì)最短路徑),SSSP (單 個(gè)源頭最短路徑),SDSP (單個(gè)終點(diǎn)最短路徑)諸如此類的可被應(yīng)用于最短路徑子模塊233。這些最短路徑方法在計(jì)算領(lǐng)域都是眾所周知的,所以這里省去其詳盡描述。當(dāng)任務(wù)模塊包括最短路徑子模塊233和中間值子模塊235連續(xù)順序的組合時(shí),中 間值子模塊235有途徑促使并行處理器建立分等級(jí)的聚類樹狀圖。在這種情況下,分類工具340利用任務(wù)參數(shù)作為系統(tǒng)參數(shù)削減分等級(jí)的聚類樹狀 圖,獲得模型結(jié)構(gòu)。因此,獲得了模型結(jié)構(gòu),并且其構(gòu)成單元滿足任務(wù)參數(shù)指定的條件。在傳統(tǒng)的分等級(jí)聚類算法中,典型步驟如下。分等級(jí)聚類步驟產(chǎn)生一系列數(shù)據(jù)分 集,Pn,Pn-l,……,P1。第一個(gè)Pn含有n個(gè)單一簇,最后的Pl含有一個(gè)單一含有n種情況 的團(tuán)體。在每個(gè)特殊時(shí)期,此方法將兩個(gè)接近(最相似)的簇連接在一起。(在第一時(shí)期,意 味著將兩個(gè)相近的對(duì)象連接在一起,知道每個(gè)簇在最初的時(shí)期只有一個(gè)對(duì)象。)。由于定義 簇間距離(或相似性)的方式不同,方法的差異性呈現(xiàn)出來。在這個(gè)實(shí)例中,我們用母體乘法 為基礎(chǔ)的所有節(jié)點(diǎn)對(duì)最短路徑算法計(jì)算距離。我們的工作通過用加入和最小操作取代乘法和額外的操作,改變了 Vo IkoV和 Demmel提供的母體乘法路徑。共享的儲(chǔ)存器被用戶用來管理緩存,從而提高性能。Volkov 和Demmel引進(jìn)母體R,C和Di中的部分來共享模塊上的存儲(chǔ)空間R被引進(jìn)64X4尺寸 的模塊,C被引進(jìn)16X16尺寸大小的模塊,Di被引進(jìn)64X16尺寸大小的模塊。這些數(shù)值 被選用來最大化CUDA設(shè)備的通量。在執(zhí)行期間,每一條線路計(jì)算Di的64X16值。算法 I描述了改進(jìn)的母體乘法要點(diǎn)。母體乘法要點(diǎn)的具體內(nèi)容請(qǐng)參考LU, QR and Cholesky Factorizations using Vector Capabilities of GPUs. Vasily Volkov and James Demmel. Technical Report No. UCB/EECS-2008-49.本發(fā)明開發(fā)了一種以GPU為基礎(chǔ)的平行計(jì)算系統(tǒng)來鑒定復(fù)雜網(wǎng)絡(luò)中的模型結(jié)構(gòu), 顯著減少了計(jì)算的執(zhí)行時(shí)間和成本,提供了一個(gè)復(fù)雜網(wǎng)絡(luò)研究平臺(tái)用于商業(yè)、科研等用途。圖8所示是從復(fù)雜網(wǎng)絡(luò)中鑒定模型結(jié)構(gòu)的方法2000的流程圖,它使用的是本發(fā)明 一個(gè)實(shí)例中的一個(gè)含有一個(gè)CPU和一個(gè)并行處理設(shè)備(例如GPU)的計(jì)算系統(tǒng)。方法2000 可能由圖I的計(jì)算系統(tǒng)1000的相應(yīng)元件執(zhí)行。特別地,在S2100處,包括復(fù)雜網(wǎng)絡(luò)的節(jié)點(diǎn),具有指示節(jié)點(diǎn)間關(guān)系價(jià)值的邊緣,以 及任務(wù)數(shù)據(jù)被執(zhí)行的任務(wù)參數(shù)的這些任務(wù)數(shù)據(jù)的讀取是利用CPU200上的數(shù)據(jù)讀取工具 210。在S2200處,CPU200上的確定工具240根據(jù)任務(wù)數(shù)據(jù),從一套預(yù)設(shè)的分別指示著 一個(gè)特殊處理進(jìn)程的子模塊集中確定任務(wù)模塊,并且將任務(wù)模塊轉(zhuǎn)換到CPU200上的第一 界面250。任務(wù)模塊用來分配子任務(wù)進(jìn)程,這些子任務(wù)進(jìn)程將分別由并行處理設(shè)備300上的 多重并行處理器310-1,310-2,……,310-N執(zhí)行,其中N是一個(gè)整數(shù)。在S2220處,任務(wù)模塊由第一界面250傳輸給并行處理設(shè)備300上的第一前端 320。然后在S2240處,由第一前端將任務(wù)模塊傳遞給并行處理設(shè)備300上的程序匯編工具 330。在S2260處,程序匯編工具330產(chǎn)生子任務(wù)進(jìn)程,這些子任務(wù)進(jìn)程可被多重并行處 理器310從任務(wù)模塊中讀取,因此將這些子任務(wù)進(jìn)程分配給多重并行處理器310。另一方面,在S2300處,發(fā)報(bào)機(jī)工具220將任務(wù)數(shù)據(jù)根據(jù)多重并行處理器310分為 多重?cái)?shù)據(jù)子集。
在S2320處,第二界面255在CPU200上將多重?cái)?shù)據(jù)子集轉(zhuǎn)換到并行處理設(shè)備上的 第二前端325。在S2340處,第二前端325將多重?cái)?shù)據(jù)子集分別傳遞給多重并行處理器。接收了任務(wù)處理進(jìn)程和數(shù)據(jù)子集后,在S2400處,多重并行處理器 310-1,310-2…,310-N平行操作,程序匯編工具根據(jù)數(shù)據(jù)子集分別分配子任務(wù)進(jìn)程,獲得 平行結(jié)果。在S2500處,分類工具340 (位于CPU200或GPU300上)處理平行結(jié)果,獲得復(fù)雜 網(wǎng)絡(luò)中的模型結(jié)構(gòu)。根據(jù)本發(fā)明,在復(fù)雜網(wǎng)絡(luò)中鑒定模型結(jié)構(gòu)的方法可能會(huì)結(jié)合上述圖1-7中的一個(gè) 或多個(gè)因素。例如,此方法可能進(jìn)一步包括提取復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)和將復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)以任務(wù)數(shù)據(jù)的 一部分儲(chǔ)存,其中的復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)代表著節(jié)點(diǎn)和具有數(shù)值的邊緣。同樣,任務(wù)模塊可能包括圖表搜索子模塊和中間值子模塊的組合,或是最短路徑 子模塊和中間值子模塊的組合。圖5-7所示的路徑同樣可應(yīng)用于方法2000。需要注意的是,圖8所示的方法2000的步驟并不是必須要按圖所示的順序進(jìn)行。 例如,步驟S2200-S2260可能與步驟S2300-S2340同時(shí)進(jìn)行,或是在步驟S2300-S2340之后 進(jìn)行。正如能被計(jì)算領(lǐng)域的專業(yè)人才重視一樣,一個(gè)具有相關(guān)計(jì)算機(jī)-可讀媒體的計(jì)算 機(jī)系統(tǒng),其相關(guān)計(jì)算機(jī)-可讀媒體含有用于控制計(jì)算機(jī)系統(tǒng)的說明,能夠被用來執(zhí)行這里 列舉的杰出實(shí)例。這個(gè)計(jì)算機(jī)系統(tǒng)可能至少包括一臺(tái)計(jì)算機(jī),比如一臺(tái)微處理器,還包括數(shù) 字信號(hào)處理器和相關(guān)的外圍電子線路。盡管語言描繪的主題特指的是結(jié)構(gòu)特征和/或方法學(xué)領(lǐng)域,需要理解的是,附加 的權(quán)利要求中定義的主題不是必須限定在上述特定的特征或是領(lǐng)域的。在一定程度上,上 述的特定特征和領(lǐng)域以實(shí)例的形式用于說明權(quán)利的執(zhí)行。
權(quán)利要求
1.一種從復(fù)雜網(wǎng)絡(luò)中鑒定模型結(jié)構(gòu)的方法,其使用一個(gè)具有一個(gè)CPU和一個(gè)并行處理 設(shè)備的計(jì)算系統(tǒng),該方法的特征是,通過CPU上的一個(gè)數(shù)據(jù)讀取工具讀取任務(wù)數(shù)據(jù),其中任務(wù)數(shù)據(jù)包括復(fù)雜網(wǎng)絡(luò)中的節(jié) 點(diǎn),具有指示節(jié)點(diǎn)間關(guān)系數(shù)值的邊緣,以及復(fù)雜網(wǎng)絡(luò)中任務(wù)被執(zhí)行的任務(wù)參數(shù)。通過CPU上的一個(gè)確定工具確定任務(wù)模塊,從而根據(jù)任務(wù)數(shù)據(jù)從一套分別指示著一個(gè) 特定進(jìn)程的預(yù)設(shè)子模塊中分配子任務(wù)進(jìn)程,這些子任務(wù)進(jìn)程將會(huì)分別由并行處理設(shè)備上的 多重并行處理器中執(zhí)行,并將任務(wù)模塊轉(zhuǎn)換到CPU上的第一界面。通過第一界面將任務(wù)模塊轉(zhuǎn)換到并行處理設(shè)備上的第一前端。通過第一前端將任務(wù)模塊傳遞給并行處理設(shè)備上的程序匯編工具。由程序匯編工具產(chǎn)生子任務(wù)進(jìn)程,這些子任務(wù)進(jìn)程能被多重并行處理器從任務(wù)模塊中 讀取,并將這些子任務(wù)進(jìn)程分配給多重并行處理器。由CPU上的發(fā)報(bào)機(jī)工具根據(jù)多重并行處理器將任務(wù)數(shù)據(jù)分為多重?cái)?shù)據(jù)子集。由CPU上的第二界面將多重?cái)?shù)據(jù)子集轉(zhuǎn)換到并行處理設(shè)備上的第二前端。由第二前端分別將多重?cái)?shù)據(jù)子集傳遞給多重并行處理器。由多重并行處理器分別平行執(zhí)行子任務(wù)進(jìn)程,其中這些子任務(wù)進(jìn)程是由程序匯編工具 根據(jù)數(shù)據(jù)子集分配的,來獲得平行結(jié)果。以及由分類工具處理平行結(jié)果來獲得復(fù)雜網(wǎng)絡(luò)中的模型結(jié)構(gòu)。
2.權(quán)利要求1所述的方法,其中的并行處理設(shè)備是一個(gè)圖表處理器,其分布于局域網(wǎng) 或萬維網(wǎng)。
3.權(quán)利要求1所述的方法,其中的任務(wù)模塊包括圖表搜索子模塊和中間值子模塊的組 合,或最短路徑子模塊和中間值子模塊的組合。
4.權(quán)利要求1所述的方法,其中的節(jié)點(diǎn)代表不同的基因或蛋白,數(shù)值代表這些節(jié)點(diǎn)間 的特定相互作用。
5.權(quán)利要求1所述的方法,其中的節(jié)點(diǎn)代表一個(gè)團(tuán)體中的不同成員,數(shù)值代表這些節(jié) 點(diǎn)間的特定關(guān)系。
6.權(quán)利要求1所述的方法,其進(jìn)一步的特征是,由CPU上的網(wǎng)絡(luò)數(shù)據(jù)工具提取復(fù)雜網(wǎng)絡(luò)數(shù)據(jù),這些網(wǎng)絡(luò)數(shù)據(jù)包括節(jié)點(diǎn)和有數(shù)值的邊緣。以及由CPU上的數(shù)據(jù)儲(chǔ)存工具將復(fù)雜網(wǎng)絡(luò)數(shù)據(jù)作為任務(wù)數(shù)據(jù)的一部分進(jìn)行儲(chǔ)存。
7.權(quán)利要求1所述的方法,其中的模型結(jié)構(gòu)是由多重的團(tuán)體組成,這些團(tuán)體各自分別 含有緊密相關(guān)的節(jié)點(diǎn)。
8.一套從復(fù)雜網(wǎng)絡(luò)中鑒定模型結(jié)構(gòu)的工具,其使用的是一個(gè)具有一個(gè)CPU和一個(gè)并行 處理設(shè)備的計(jì)算系統(tǒng),該工具的特征是,位于CPU上的數(shù)據(jù)讀取工具,用于讀取任務(wù)數(shù)據(jù),這些任務(wù)數(shù)據(jù)包括復(fù)雜網(wǎng)絡(luò)中的節(jié) 點(diǎn),具有指示節(jié)點(diǎn)間相互關(guān)系數(shù)值的邊緣,以及復(fù)雜網(wǎng)絡(luò)中執(zhí)行一個(gè)任務(wù)的任務(wù)參數(shù)。位于CPU上的模塊儲(chǔ)存工具,用于儲(chǔ)存一套預(yù)設(shè)的子模塊,這些子模塊各自指示著一 個(gè)特殊的進(jìn)程。位于CPU上的確定工具,用于確定任務(wù)模塊,從而根據(jù)任務(wù)數(shù)據(jù)從一套分別指示著一 個(gè)特定進(jìn)程的預(yù)設(shè)子模塊中分配子任務(wù)進(jìn)程,這些子任務(wù)進(jìn)程將會(huì)分別由并行處理設(shè)備上的多重并行處理器中執(zhí)行。位于CPU上的第一界面,用于接收由確定工具轉(zhuǎn)換而來的任務(wù)模塊。位于CPU上的發(fā)報(bào)機(jī)工具,用于根據(jù)多重并行處理器將任務(wù)數(shù)據(jù)分為多重?cái)?shù)據(jù)子集。位于CPU上的第二界面,用于接收由發(fā)報(bào)機(jī)轉(zhuǎn)換而來的任務(wù)數(shù)據(jù)。位于并行處理設(shè)備上的第一前端,其連接著第一界面,用于接收由第一界面轉(zhuǎn)換而來 的任務(wù)模塊。位于并行處理設(shè)備上的程序匯編工具,用于接收由第一前端傳遞過來的任務(wù)模塊,產(chǎn) 生能被多重并行處理器從任務(wù)模塊中讀取的子任務(wù)進(jìn)程,以及分配這些子任務(wù)進(jìn)程到多重 并行處理器。位于并行處理設(shè)備上的第二前端,其連接著第二界面,用于接收來自于第二界面的多 重?cái)?shù)據(jù)子集,并將這些多重?cái)?shù)據(jù)子集分別傳遞給多重并行處理器。多重并行處理器,用于分別平行執(zhí)行子任務(wù)進(jìn)程,這些子任務(wù)進(jìn)程是由程序匯編工具 根據(jù)數(shù)據(jù)子集分配形成的,獲得平行結(jié)果。以及分類工具,用于處理平行結(jié)果,獲得復(fù)雜網(wǎng)絡(luò)中的模型結(jié)構(gòu)。
9.權(quán)利要求8所述的工具,其中的并行處理設(shè)備是一個(gè)圖表處理器,其分布于局域網(wǎng) 或萬維網(wǎng)。
10.權(quán)利要求8所述的工具,其中的任務(wù)模塊包括圖表搜索子模塊和中間值子模塊的 組合,或最短路徑子模塊和中間值子模塊的組合。
11.權(quán)利要求8所述的工具,其中的節(jié)點(diǎn)代表不同的基因或蛋白,數(shù)值代表這些節(jié)點(diǎn)間 的特定相互作用。
12.權(quán)利要求8所述的工具,其中的節(jié)點(diǎn)代表一個(gè)團(tuán)體中的不同成員,數(shù)值代表這些節(jié) 點(diǎn)間的特定關(guān)系。
13.權(quán)利要求8所述的工具,其進(jìn)一步的特征是,網(wǎng)絡(luò)數(shù)據(jù)讀取器,用于提取圖表,這些圖表代表了節(jié)點(diǎn)和有數(shù)值的邊緣。以及數(shù)據(jù)儲(chǔ)存器,用于將圖片作為任務(wù)數(shù)據(jù)進(jìn)行儲(chǔ)存。
14.權(quán)利要求8所述的工具,其中的模型結(jié)構(gòu)是由多重的團(tuán)體組成,這些團(tuán)體各自分別 含有緊密相關(guān)的節(jié)點(diǎn)。
15.一個(gè)用于從復(fù)雜網(wǎng)絡(luò)中鑒定模型結(jié)構(gòu)的系統(tǒng),其包括一個(gè)CPU和一個(gè)并行處理設(shè) 備,其中,CPU包括,數(shù)據(jù)讀取工具,用于讀取任務(wù)數(shù)據(jù),這些任務(wù)數(shù)據(jù)包括復(fù)雜網(wǎng)絡(luò)中的節(jié)點(diǎn),具有指示節(jié) 點(diǎn)間相互關(guān)系數(shù)值的邊緣,以及復(fù)雜網(wǎng)絡(luò)中執(zhí)行一個(gè)任務(wù)的任務(wù)參數(shù)。模塊儲(chǔ)存工具,用于儲(chǔ)存一套預(yù)設(shè)的子模塊,這些子模塊各自指示著一個(gè)特殊的進(jìn)程。確定工具,用于確定任務(wù)模塊,從而根據(jù)任務(wù)數(shù)據(jù)從一套分別指示著一個(gè)特定進(jìn)程的 預(yù)設(shè)子模塊中分配子任務(wù)進(jìn)程,這些子任務(wù)進(jìn)程將會(huì)分別由并行處理設(shè)備上的多重并行處 理器中執(zhí)行。第一界面,用于接收由確定工具轉(zhuǎn)換而來的任務(wù)模塊。發(fā)報(bào)機(jī)工具,用于根據(jù)多重并行處理器將任務(wù)數(shù)據(jù)分為多重?cái)?shù)據(jù)子集。以及第二界面,用于接收由發(fā)報(bào)機(jī)轉(zhuǎn)換而來的任務(wù)數(shù)據(jù)。并行處理設(shè)備包括,位于并行處理設(shè)備上的第一前端,其連接著第一界面,用于接收由第一界面轉(zhuǎn)換而來 的任務(wù)模塊。位于并行處理設(shè)備上的程序匯編工具,用于接收由第一前端傳遞過來的任務(wù)模塊,產(chǎn) 生能被多重并行處理器從任務(wù)模塊中讀取的子任務(wù)進(jìn)程,以及分配這些子任務(wù)進(jìn)程到多重 并行處理器。位于并行處理設(shè)備上的第二前端,其連接著第二界面,用于接收來自于第二界面的多 重?cái)?shù)據(jù)子集,并將這些多重?cái)?shù)據(jù)子集分別傳遞給多重并行處理器。多重并行處理器,用于分別平行執(zhí)行子任務(wù)進(jìn)程,這些子任務(wù)進(jìn)程是由程序匯編工具 根據(jù)數(shù)據(jù)子集分配形成的,獲得平行結(jié)果。以及分類工具,用于處理平行結(jié)果,獲得復(fù)雜網(wǎng)絡(luò)中的模型結(jié)構(gòu)。
全文摘要
本發(fā)明涉及一種用于從復(fù)雜網(wǎng)絡(luò)中鑒定模型結(jié)構(gòu)的工具,其使用了一個(gè)具有一個(gè)CPU和一個(gè)并行處理設(shè)備的計(jì)算系統(tǒng)。該工具包括一個(gè)用于讀取任務(wù)數(shù)據(jù)的數(shù)據(jù)讀取工具;一個(gè)用于儲(chǔ)存一套預(yù)設(shè)子模塊的模塊儲(chǔ)存工具,這些子模塊各自指示著一個(gè)特殊進(jìn)程;一個(gè)用于確定任務(wù)模塊的確定工具,從而根據(jù)任務(wù)數(shù)據(jù)從一套分別指示著一個(gè)特定進(jìn)程的預(yù)設(shè)子模塊中分配子任務(wù)進(jìn)程,這些子任務(wù)進(jìn)程將會(huì)分別由并行處理設(shè)備上的多重并行處理器中執(zhí)行;一個(gè)用于接收由確定工具轉(zhuǎn)換而來的任務(wù)模塊的第一界面;一個(gè)用于根據(jù)多重并行處理器將任務(wù)數(shù)據(jù)分為多重?cái)?shù)據(jù)子集的發(fā)報(bào)機(jī)工具;一個(gè)用于接收由發(fā)報(bào)機(jī)轉(zhuǎn)換而來的任務(wù)數(shù)據(jù)的第二界面;一個(gè)用于接收由第一界面轉(zhuǎn)換而來的任務(wù)模塊的第一前端;一個(gè)用于接收由第一前端傳遞過來的任務(wù)模塊,產(chǎn)生能被多重并行處理器從任務(wù)模塊中讀取的子任務(wù)進(jìn)程,以及分配這些子任務(wù)進(jìn)程到多重并行處理器的程序匯編工具;一個(gè)用于接收來自于第二界面的多重?cái)?shù)據(jù)子集,并將這些多重?cái)?shù)據(jù)子集分別傳遞給多重并行處理器的第二前端;用于分別平行執(zhí)行子任務(wù)進(jìn)程,這些子任務(wù)進(jìn)程是由程序匯編工具根據(jù)數(shù)據(jù)子集分配形成的,并獲得平行結(jié)果的多重并行處理器;以及一個(gè)用于處理平行結(jié)果,從復(fù)雜網(wǎng)絡(luò)中獲得模型結(jié)構(gòu)的分類工具。
文檔編號(hào)G06F7/00GK102667710SQ201080051364
公開日2012年9月12日 申請(qǐng)日期2010年10月21日 優(yōu)先權(quán)日2010年10月21日
發(fā)明者李化常, 王瑞, 陳星原 申請(qǐng)人:北京華金瑞清生物醫(yī)藥技術(shù)有限公司