一種基于OpenCL的紅黑樹加速算法
【專利摘要】本發(fā)明是一種基于OpenCL的紅黑樹加速算法。其方法是利用建立紅黑樹過成中眾多運(yùn)算可以并行化處理的特點(diǎn),運(yùn)用OpenCL異構(gòu)平臺(tái),實(shí)現(xiàn)了在大數(shù)據(jù)的情況下快速建立紅黑樹模型。其中使用GPU加速的思路是將待操作數(shù)據(jù)分為多個(gè)數(shù)據(jù)塊,利用GPU多個(gè)核心同時(shí)進(jìn)行數(shù)據(jù)插入操作。在同步完各個(gè)GPU的運(yùn)算后,最后做紅黑樹的合并操作,完成整個(gè)紅黑樹的建立。本發(fā)明的特點(diǎn)是,大數(shù)據(jù)情況建樹時(shí)間極短,可實(shí)現(xiàn)快速的紅黑樹建立。
【專利說明】—種基于OpenCL的紅黑樹加速算法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及基于GPU的并行計(jì)算領(lǐng)域,具體涉及一種基于OpenCL的紅黑樹加速算法。
【背景技術(shù)】
[0002]紅黑樹是一種自平衡二叉查找樹,典型的用途是實(shí)現(xiàn)關(guān)聯(lián)數(shù)組,也可用于大數(shù)據(jù)的檢索。它是復(fù)雜的,但它的操作有著良好的最壞情況運(yùn)行時(shí)間,并且在實(shí)踐中是高效的:它可以在0(log η)時(shí)間內(nèi)做查找,插入和刪除,這里的η是樹中元素的數(shù)目。紅黑樹是每個(gè)節(jié)點(diǎn)都帶有顏色屬性的二叉查找樹,顏色或紅色或黑色。它的統(tǒng)計(jì)性能要好于平衡二叉樹,因此,紅黑樹在很多地方都有應(yīng)用。在C++STL中,很多部分(目前包括set, multiset,map, multimap)應(yīng)用了紅黑樹的變體。
[0003]本發(fā)明采用的是基于OpenCL的紅黑樹加速算法,OpenCL是一種為異構(gòu)平臺(tái)編寫程序的框架,此異構(gòu)平臺(tái)可由CPU,GPU或其他類型的處理器組成。OpenCL提供若干用于定義和控制平臺(tái)的接口函數(shù)組成,能夠有效地利用多種設(shè)備的并行計(jì)算能力來進(jìn)行算法的加速。
[0004]對(duì)于大數(shù)據(jù)檢索中的應(yīng)用,關(guān)建是需要先運(yùn)算出其紅黑樹模型,而以往的方法需要耗費(fèi)大量的運(yùn)算時(shí)間,本發(fā)明就是利用OpenCL的異構(gòu)平臺(tái)框架,解決建立紅黑樹耗時(shí)的問題而提出的。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是提供了一種基于OpenCL的紅黑樹加速方法,利用建立紅黑樹過成中眾多運(yùn)算可以并行化處理的特點(diǎn),運(yùn)用OpenCL異構(gòu)平臺(tái),實(shí)現(xiàn)了在大數(shù)據(jù)的情況下快速建立紅黑樹模型。
[0006]為達(dá)到上述目的,本發(fā)明的構(gòu)思是:在二叉查找樹強(qiáng)制一般要求以外,對(duì)于任何有效的紅黑樹我們?cè)黾恿巳缦碌念~外要求:
性質(zhì)1.節(jié)點(diǎn)是紅色或黑色。
[0007]性質(zhì)2.根節(jié)點(diǎn)是黑色。
[0008]性質(zhì)3.每個(gè)葉節(jié)點(diǎn)(NIL節(jié)點(diǎn),空節(jié)點(diǎn))是黑色的。
[0009]性質(zhì)4.每個(gè)紅色節(jié)點(diǎn)的兩個(gè)子節(jié)點(diǎn)都是黑色。(從每個(gè)葉子到根的所有路徑上不能有兩個(gè)連續(xù)的紅色節(jié)點(diǎn))
性質(zhì)5.從任一節(jié)點(diǎn)到其每個(gè)葉節(jié)點(diǎn)的所有路徑都包含相同數(shù)目的黑色節(jié)點(diǎn)。
[0010]這些約束強(qiáng)制了紅黑樹的關(guān)鍵性質(zhì):從根到葉子的最長的可能路徑不多于最短的可能路徑的兩倍長。結(jié)果是這個(gè)樹大致上是平衡的。因?yàn)椴僮鞅热绮迦?、刪除和查找某個(gè)值的最壞情況時(shí)間都要求與樹的高度成比例,這個(gè)在高度上的理論上限允許紅黑樹在最壞情況下都是高效的,而不同于普通的二叉查找樹。
[0011]根據(jù)上述構(gòu)思,本發(fā)明采用的技術(shù)方案為:將準(zhǔn)備操作的數(shù)據(jù)分為多個(gè)數(shù)據(jù)塊,利用GPU多個(gè)核心同時(shí)進(jìn)行數(shù)據(jù)插入操作。在同步完成各個(gè)GPU的運(yùn)算后,最后做紅黑樹的合并操作,完成整個(gè)紅黑樹建立過程。其總的發(fā)明方法示意圖如圖2所示。
[0012]本發(fā)明解決其技術(shù)問題采用的技術(shù)方案還可以進(jìn)一步完善。其具體的實(shí)現(xiàn)步驟如圖1所示,可分為4步實(shí)現(xiàn):
步驟1:CPU數(shù)據(jù)輸入,GPU設(shè)備初始化:尋找支持OpenCL的硬件設(shè)備、創(chuàng)建程序執(zhí)行所需的內(nèi)存對(duì)象、根據(jù)設(shè)備支持核心數(shù)分配線程等操作。
[0013]步驟2:數(shù)據(jù)分塊:根據(jù)GPU上分配好的線程將原有海量數(shù)據(jù)進(jìn)行分塊,如硬件支持線程數(shù)目為n,數(shù)據(jù)量為m,則每個(gè)線程單獨(dú)分配數(shù)據(jù)量為m/n。
[0014]步驟3:將分塊數(shù)據(jù)分配給每個(gè)線程,并進(jìn)行如下操作:
I)將待插入的數(shù)據(jù)值直接插入樹尾。
[0015]2)將表示此數(shù)據(jù)的節(jié)點(diǎn)顏色屬性標(biāo)記為紅色。
[0016]3)調(diào)整樹的顏色性質(zhì),分為以下三種情況:
a)若當(dāng)前節(jié)點(diǎn)的“叔父”節(jié)點(diǎn)是紅色:在這種情況下,將父、叔節(jié)點(diǎn)都標(biāo)記為黑色,再將子樹根節(jié)點(diǎn)著為紅色,那么子樹的黑高度沒有發(fā)生改變,而且紅黑性質(zhì)得得到了調(diào)整。此時(shí),再將當(dāng)前節(jié)點(diǎn)指向子樹的根節(jié)點(diǎn),向上遞歸恢復(fù)紅黑特性,如圖二所示。
[0017]其中結(jié)點(diǎn)E直系上層結(jié)點(diǎn)C為其父節(jié)點(diǎn),與結(jié)點(diǎn)C父節(jié)點(diǎn)同一層節(jié)點(diǎn)A,B, D均為其叔父節(jié)點(diǎn)。
[0018]b)若當(dāng)前節(jié)點(diǎn)的“叔父”節(jié)點(diǎn)是黑色的,當(dāng)前節(jié)點(diǎn)是父節(jié)點(diǎn)的左子節(jié)點(diǎn):則將當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)與祖節(jié)點(diǎn)(即當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)的父節(jié)點(diǎn))進(jìn)行一次右旋,并把父節(jié)點(diǎn)著黑色,原來的祖節(jié)點(diǎn)著紅色。這些子樹的紅黑特性得到了恢復(fù),而且子樹的黑高度沒有變化。另外,由于子樹根節(jié)點(diǎn)已經(jīng)是黑色了(這個(gè)節(jié)點(diǎn)不會(huì)出現(xiàn)父子同為紅色的問題了),所以不必再向上遞歸了,此時(shí)整個(gè)樹的紅黑特性都已經(jīng)是正確的了。
[0019]c)若當(dāng)前節(jié)點(diǎn)的“叔父”節(jié)點(diǎn)是黑色的,當(dāng)前節(jié)點(diǎn)是父節(jié)點(diǎn)的右子節(jié)點(diǎn):則將當(dāng)前節(jié)點(diǎn)本身與其父節(jié)點(diǎn)進(jìn)行一次左旋,讓當(dāng)前節(jié)點(diǎn)指向原來的父節(jié)點(diǎn),就可以到上面情況b),再根據(jù)情況b)的解決方式進(jìn)行操作。
[0020]4)對(duì)調(diào)整完畢后的紅黑樹進(jìn)行數(shù)據(jù)查找操作:從樹的根節(jié)點(diǎn)開始進(jìn)行查找,如果待查找數(shù)據(jù)小于當(dāng)前節(jié)點(diǎn),則向左子樹繼續(xù)進(jìn)行查找;如果待查找數(shù)據(jù)大于當(dāng)前節(jié)點(diǎn),則向右子樹繼續(xù)進(jìn)行查找;否則查找完成。如果在達(dá)到葉子節(jié)點(diǎn)時(shí)仍未返回結(jié)果,則認(rèn)為此次查找失敗。
[0021]步驟4:合并子樹:在線程為每個(gè)子樹完成顏色調(diào)整之后,將GPU計(jì)算結(jié)果傳回(PU內(nèi)存單元,然后在cpu端進(jìn)行樹的合并,在合并的過程中,合并樹需要滿足以下性質(zhì):a,根節(jié)點(diǎn)為黑色山,每個(gè)葉節(jié)點(diǎn)均為黑色;c,每個(gè)紅色節(jié)點(diǎn)的兩個(gè)子節(jié)點(diǎn)都為黑色;d,從任一節(jié)點(diǎn)到其每個(gè)葉節(jié)點(diǎn)的所有路徑都包含相同數(shù)目的黑色節(jié)點(diǎn)。
[0022]步驟5:將分類合并后所建成的紅黑樹輸出和存儲(chǔ)。
[0023]本發(fā)明有益的效果是:針對(duì)大數(shù)據(jù)的紅黑樹建立計(jì)算量大、耗時(shí)長的問題,利用GTO可并行化處理計(jì)算的特點(diǎn),將準(zhǔn)備操作的數(shù)據(jù)分為多個(gè)數(shù)據(jù)塊,利用GPU多個(gè)核心同時(shí)進(jìn)行數(shù)據(jù)插入操作,同步完成各運(yùn)算,使建樹時(shí)間極大縮短,從而實(shí)現(xiàn)快速的紅黑樹建立。
【專利附圖】
【附圖說明】[0024]圖1:是基于OpenCL的紅黑樹加速算法流程圖;
圖2:是發(fā)明方法示意圖;
圖3:是原來的CPU紅黑樹建立方法與基于OpenCL的紅黑樹加速方法耗時(shí)實(shí)驗(yàn)結(jié)果對(duì)比。
【具體實(shí)施方式】
[0025]本發(fā)明的優(yōu)選實(shí)施例結(jié)合附圖詳述如下:
實(shí)施例一:基于OpenCL的紅黑樹加速方法的一個(gè)優(yōu)選實(shí)施例結(jié)合【專利附圖】
【附圖說明】如下,其具體的實(shí)現(xiàn)方法可分為以下步驟:
步驟1:CPU數(shù)據(jù)輸入,GPU設(shè)備初始化:尋找支持OpenCL的硬件設(shè)備、創(chuàng)建程序執(zhí)行所需的內(nèi)存對(duì)象、根據(jù)設(shè)備支持核心數(shù)分配線程等操作。
[0026]步驟2:數(shù)據(jù)分塊:根據(jù)GPU上分配好的線程將原有海量數(shù)據(jù)進(jìn)行分塊,本次實(shí)驗(yàn)使用GT420顯卡,硬件支持512個(gè)線程,數(shù)據(jù)量為m=100M,因此每個(gè)線程單獨(dú)分配數(shù)據(jù)量為200KB。
[0027]步驟3:將分塊數(shù)據(jù)分配給每個(gè)線程,并進(jìn)行如下操作:
I)將待插入的數(shù)據(jù)值直接插入樹尾。
[0028]2)將表示此數(shù)據(jù)的節(jié)點(diǎn)顏色屬性標(biāo)記為紅色。
[0029]3)調(diào)整樹的顏色性質(zhì),分為以下三種情況:
a)若當(dāng)前節(jié)點(diǎn)的“叔父”節(jié)點(diǎn)是紅色:在這種情況下,將父、叔節(jié)點(diǎn)都標(biāo)記為黑色,再將子樹根節(jié)點(diǎn)著為紅色,那么子樹的黑高度沒有發(fā)生改變,而且紅黑性質(zhì)得得到了調(diào)整。此時(shí),再將當(dāng)前節(jié)點(diǎn)指向子樹的根節(jié)點(diǎn),向上遞歸恢復(fù)紅黑特性,如圖2所示。
[0030]其中結(jié)點(diǎn)E直系上層結(jié)點(diǎn)C為其父節(jié)點(diǎn),與結(jié)點(diǎn)C父節(jié)點(diǎn)同一層節(jié)點(diǎn)A,B, D均為其叔父節(jié)點(diǎn)。
[0031]b)若當(dāng)前節(jié)點(diǎn)的“叔父”節(jié)點(diǎn)是黑色的,當(dāng)前節(jié)點(diǎn)是父節(jié)點(diǎn)的左子節(jié)點(diǎn):則將當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)與祖節(jié)點(diǎn)(即當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)的父節(jié)點(diǎn))進(jìn)行一次右旋,并把父節(jié)點(diǎn)著黑色,原來的祖節(jié)點(diǎn)著紅色。這些子樹的紅黑特性得到了恢復(fù),而且子樹的黑高度沒有變化。另外,由于子樹根節(jié)點(diǎn)已經(jīng)是黑色了(這個(gè)節(jié)點(diǎn)不會(huì)出現(xiàn)父子同為紅色的問題了),所以不必再向上遞歸了,此時(shí)整個(gè)樹的紅黑特性都已經(jīng)是正確的了。
[0032]c)若當(dāng)前節(jié)點(diǎn)的“叔父”節(jié)點(diǎn)是黑色的,當(dāng)前節(jié)點(diǎn)是父節(jié)點(diǎn)的右子節(jié)點(diǎn):則將當(dāng)前節(jié)點(diǎn)本身與其父節(jié)點(diǎn)進(jìn)行一次左旋,讓當(dāng)前節(jié)點(diǎn)指向原來的父節(jié)點(diǎn),就可以到上面情況b),再根據(jù)情況b)的解決方式進(jìn)行操作。
[0033]4)對(duì)調(diào)整完畢后的紅黑樹進(jìn)行數(shù)據(jù)查找操作:從樹的根節(jié)點(diǎn)開始進(jìn)行查找,如果待查找數(shù)據(jù)小于當(dāng)前節(jié)點(diǎn),則向左子樹繼續(xù)進(jìn)行查找;如果待查找數(shù)據(jù)大于當(dāng)前節(jié)點(diǎn),則向右子樹繼續(xù)進(jìn)行查找;否則查找完成。如果在達(dá)到葉子節(jié)點(diǎn)時(shí)仍未返回結(jié)果,則認(rèn)為此次查找失敗。
[0034]步驟4:合并子樹:在線程為每個(gè)子樹完成顏色調(diào)整之后,將GPU計(jì)算結(jié)果傳回(PU內(nèi)存單元,然后在cpu端進(jìn)行樹的合并,在合并的過程中,合并樹需要滿足以下性質(zhì):a,根節(jié)點(diǎn)為黑色;b,每個(gè)葉節(jié)點(diǎn)(NIL節(jié)點(diǎn),空節(jié)點(diǎn))均為黑色;c,每個(gè)紅色節(jié)點(diǎn)的兩個(gè)子節(jié)點(diǎn)都為黑色;d,從任一節(jié)點(diǎn)到其每個(gè)葉節(jié)點(diǎn)的所有路徑都包含相同數(shù)目的黑色節(jié)點(diǎn)。[0035]步驟5:將分類合并后所建成的紅黑樹輸出和存儲(chǔ)。
[0036]對(duì)本次實(shí)例采用的100M數(shù)據(jù)量,建樹總共耗時(shí)為751ms,而標(biāo)準(zhǔn)紅黑樹在CPU端的算法建樹總耗時(shí)為1821ms,對(duì)比耗時(shí)減少1070ms,運(yùn)算效率提高58.6%。
[0037]實(shí)施例二:
步驟1:CPU數(shù)據(jù)輸入,GPU設(shè)備初始化:尋找支持OpenCL的硬件設(shè)備、創(chuàng)建程序執(zhí)行所需的內(nèi)存對(duì)象、根據(jù)設(shè)備支持核心數(shù)分配線程等操作。
[0038]步驟2:數(shù)據(jù)分塊:根據(jù)GPU上分配好的線程將原有海量數(shù)據(jù)進(jìn)行分塊,硬件支持512個(gè)線程數(shù),數(shù)據(jù)量為m=200M,因此每個(gè)線程數(shù)分配數(shù)據(jù)量為400KB。
[0039]進(jìn)一步計(jì)算依照實(shí)施例一中的步驟3到步驟5。
[0040]對(duì)本次實(shí)例采用的200M數(shù)據(jù)量,建樹總共耗時(shí)為1121ms,而標(biāo)準(zhǔn)紅黑樹在CPU端的算法建樹總耗時(shí)為3689ms,對(duì)比耗時(shí)減少2568ms,運(yùn)算效率提高69.6%。
[0041]實(shí)驗(yàn)結(jié)果
本發(fā)明進(jìn)行了基于OpenCLl.0平臺(tái)的實(shí)驗(yàn),實(shí)驗(yàn)環(huán)境為CPU選用Intel CORE i5、3.1Ghz處理器,內(nèi)存是4GB,顯卡使用NVIDIA GT420。實(shí)驗(yàn)數(shù)據(jù)量是從1M到500M,實(shí)驗(yàn)結(jié)果如圖3所示,使用原來的紅黑樹建立方法(蘭色)和本發(fā)明一種基于OpenCL的紅黑樹加速方法(紅色)進(jìn)行紅黑樹建立時(shí)間對(duì)比,在不降低搜索性能的條件下,數(shù)據(jù)量越大,所節(jié)省的時(shí)間就越多;在大數(shù)據(jù)情況下(大于500MB),基于OpenCL的紅黑樹建立方法所需的時(shí)間可比原來紅黑樹建立方法所需的時(shí)間減少4倍,從而實(shí)現(xiàn)了檢索算法效率的大幅提高,為大數(shù)據(jù)檢索算法的實(shí)時(shí)計(jì)算提供了可能。
【權(quán)利要求】
1.一種基于OpenCL的紅黑樹加速算法,其實(shí)現(xiàn)的具體步驟如下: 步驟1:CPU數(shù)據(jù)輸入,GPU設(shè)備初始化:尋找支持OpenCL的硬件設(shè)備、創(chuàng)建程序執(zhí)行所需的內(nèi)存對(duì)象、根據(jù)設(shè)備支持核心數(shù)分配線程等操作; 步驟2:數(shù)據(jù)分塊:根據(jù)GPU上分配好的線程將原有海量數(shù)據(jù)進(jìn)行分塊,如硬件支持線程數(shù)目為n,數(shù)據(jù)量為m,則每個(gè)線程單獨(dú)分配數(shù)據(jù)量為m/n ; 步驟3:將分塊數(shù)據(jù)分配給每個(gè)線程,并進(jìn)行如下操作: 1)將待插入的數(shù)據(jù)值直接插入樹尾; 2)將表示此數(shù)據(jù)的節(jié)點(diǎn)顏色屬性標(biāo)記為紅色; 3)調(diào)整樹的顏色性質(zhì),分為以下三種情況: a)若當(dāng)前節(jié)點(diǎn)的“叔父”節(jié)點(diǎn)是紅色:在這種情況下,將父、叔節(jié)點(diǎn)都標(biāo)記為黑色,再將子樹根節(jié)點(diǎn)著為紅色,那么子樹的黑高度沒有發(fā)生改變,而且紅黑性質(zhì)得得到了調(diào)整;此時(shí),再將當(dāng)前節(jié)點(diǎn)指向子樹的根節(jié)點(diǎn),向上遞歸恢復(fù)紅黑特性,如圖二所示;其中結(jié)點(diǎn)E直系上層結(jié)點(diǎn)C為其父節(jié)點(diǎn),與結(jié)點(diǎn)C父節(jié)點(diǎn)同一層節(jié)點(diǎn)A,B, D均為其叔父節(jié)點(diǎn); b)若當(dāng)前節(jié)點(diǎn)的“叔父”節(jié)點(diǎn)是黑色的,當(dāng)前節(jié)點(diǎn)是父節(jié)點(diǎn)的左子節(jié)點(diǎn):則將當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)與祖節(jié)點(diǎn)(即當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)的父節(jié)點(diǎn))進(jìn)行一次右旋,并把父節(jié)點(diǎn)著黑色,原來的祖節(jié)點(diǎn)著紅色;這些子樹的紅黑特性得到了恢復(fù),而且子樹的黑高度沒有變化;另外,由于子樹根節(jié)點(diǎn)已經(jīng)是黑色了(這個(gè)節(jié)點(diǎn)不會(huì)出現(xiàn)父子同為紅色的問題了),所以不必再向上遞歸了,此時(shí)整個(gè)樹的紅黑特性都已經(jīng)是正確的了 ; c)若當(dāng)前節(jié)點(diǎn)的“叔父”節(jié)點(diǎn)是黑色的,當(dāng)前節(jié)點(diǎn)是父節(jié)點(diǎn)的右子節(jié)點(diǎn):則將當(dāng)前節(jié)點(diǎn)本身與其父節(jié)點(diǎn)進(jìn)行一次左旋,讓當(dāng)前節(jié)點(diǎn)指向原來的父節(jié)點(diǎn),就可以到上面情況b),再根據(jù)情況b)的解決方式進(jìn)行操作; 4)對(duì)調(diào)整完畢后的紅黑樹進(jìn)行數(shù)據(jù)查找操作:從樹的根節(jié)點(diǎn)開始進(jìn)行查找,如果待查找數(shù)據(jù)小于當(dāng)前節(jié)點(diǎn),則向左子樹繼續(xù)進(jìn)行查找;如果待查找數(shù)據(jù)大于當(dāng)前節(jié)點(diǎn),則向右子樹繼續(xù)進(jìn)行查找;否則查找完成;如果在達(dá)到葉子節(jié)點(diǎn)(葉子節(jié)點(diǎn)即為樹中最底層的節(jié)點(diǎn),不存在子節(jié)點(diǎn),圖2中與節(jié)點(diǎn)E同層的節(jié)點(diǎn)均為葉子節(jié)點(diǎn))時(shí)仍未返回結(jié)果,則認(rèn)為此次查找失?。? 步驟4:合并子樹:在線程為每個(gè)子樹完成顏色調(diào)整之后,將GPU計(jì)算結(jié)果傳回CPU內(nèi)存單元,然后在cpu端進(jìn)行樹的合并,在合并的過程中,合并樹需要滿足以下性質(zhì):a,根節(jié)點(diǎn)為黑色;b,每個(gè)葉節(jié)點(diǎn)(NIL節(jié)點(diǎn),空節(jié)點(diǎn))均為黑色;c,每個(gè)紅色節(jié)點(diǎn)的兩個(gè)子節(jié)點(diǎn)(某節(jié)點(diǎn)向下映射出的節(jié)點(diǎn)為該節(jié)點(diǎn)的子節(jié)點(diǎn),如圖2中節(jié)點(diǎn)E為節(jié)點(diǎn)C的子節(jié)點(diǎn))都為黑色;d,從任一節(jié)點(diǎn)到其每個(gè)葉節(jié)點(diǎn)的所有路徑都包含相同數(shù)目的黑色節(jié)點(diǎn); 步驟5:將分類合并后所建成的紅黑樹輸出和存儲(chǔ)。
【文檔編號(hào)】G06F19/00GK104036141SQ201410266098
【公開日】2014年9月10日 申請(qǐng)日期:2014年6月16日 優(yōu)先權(quán)日:2014年6月16日
【發(fā)明者】余小清, 熊瑋, 萬旺根, 楊超, 丁玉樸, 段石石 申請(qǐng)人:上海大學(xué)