王 艷
(重慶師范大學(xué)涉外商貿(mào)學(xué)院,重慶 401520)
多媒體數(shù)據(jù)庫是由互聯(lián)網(wǎng)、傳輸數(shù)據(jù)庫以及多媒體技術(shù)等所組成形成的產(chǎn)物,內(nèi)容涵蓋視頻、音頻、圖像、數(shù)字、文字和數(shù)據(jù)庫之間的安全性、獨立性,因此多媒體數(shù)據(jù)庫的實際應(yīng)用前景特別廣泛,例如在互聯(lián)網(wǎng)上面的圖片搜索系統(tǒng);視頻、音頻的多媒體戶籍管理系統(tǒng)等[1]。想要對這些數(shù)據(jù)進行處理,還要保證隨時都能夠使用、分享以及管理等,就需要同時對多個任務(wù)進行并行控制,以此增加數(shù)據(jù)的處理速度[2]。
文獻[3]為了提高實時視頻數(shù)據(jù)的采集與傳輸雙重任務(wù)速度,將可編程門陣列作為核心處理器,以Verilog HDL敘述電路功能實現(xiàn)其同步動態(tài),使隨機存儲可高速訪問,同時采用經(jīng)典FPGA并行處理方法,完成視頻數(shù)據(jù)采集與傳輸速度的提高,但是多任務(wù)并行控制效果不盡如人意。文獻[4]在電腦的控制系統(tǒng)內(nèi),為了解決實行多任務(wù)時電腦運行速度慢,控制實時較差的問題,利用FPGA用作控制系統(tǒng)的控制器,結(jié)合模糊PID對電腦進行控制,在通過FPGA并行處理方法提高實時性處理效率,與此同時,模糊PID控制可進一步加深對電動機控制的魯棒性與實時性,且通過simulink仿真和實際測試,證明此控制器能夠滿足多任務(wù)的控制精度和效果,但是其對硬件要就較高,適用范圍低。
針對傳統(tǒng)的多媒體數(shù)據(jù)庫引擎在進行多任務(wù)控制時,存在控制延遲、無法實時完成相應(yīng)任務(wù)處理等問題,嚴重影響用戶使用體驗,提出一種多媒體數(shù)據(jù)庫引擎多任務(wù)并行控制方法,首先對多媒體數(shù)據(jù)庫進行分析,通過多任務(wù)非格式化處理,提升了數(shù)據(jù)處理效率,最后通過SSA算法和反饋機制實現(xiàn)多媒體數(shù)據(jù)庫的多任務(wù)并行控制。通過仿真,驗證了該方法的有效性。為多媒體數(shù)據(jù)庫多任務(wù)的控制提供了便利。
通過大數(shù)據(jù)統(tǒng)計,現(xiàn)階段幾乎視頻、圖像以及聲音等任務(wù)數(shù)據(jù)都是采用磁盤、磁帶或者是云服務(wù)來完成存儲的,將各種任務(wù)數(shù)據(jù)存儲機制放置在公共存儲地,但是不同種類任務(wù)數(shù)據(jù)必須單獨放置。
其中,要求多任務(wù)數(shù)據(jù)存儲對象在數(shù)據(jù)庫中能夠快速定位,并可以完成其超媒體的任務(wù)數(shù)據(jù)記錄以及文檔隨機存取,因此,要依據(jù)音頻、圖像或者視頻的屬性信息構(gòu)建多媒體數(shù)據(jù)庫索引,進一步確保多媒體文檔的同步以及協(xié)調(diào)。
在傳統(tǒng)多媒體數(shù)據(jù)庫多任務(wù)查詢系統(tǒng)中,只對其準確查詢文字或概念進行處理。但是各任務(wù)存在著大量多樣性因素,針對模糊的類似性查詢和概念準確匹配會占有較大比例[5]。
針對相同的對象,假如采用不一樣的任務(wù)進行表示,那么相對來說計算機同樣是不相同的。例如,把獅子的聲音以及圖像保存在兩個不同的文件中,而在計算機進行對比的時候會將兩個文件認定是不同的物體。通過一個任務(wù)進行表示,如果在處理時出現(xiàn)誤差,那結(jié)果也是不相同的,因為其任務(wù)的時序性質(zhì)、形象化、分散和復(fù)合程度等特點,相同任務(wù)對象的不同目標介質(zhì)在計算機中的處理也是不同的。
因此,相對傳統(tǒng)多媒體數(shù)據(jù)庫概念查詢方式,設(shè)置在只能通過語義的搜索進行查詢,可以有效分析觀察者、應(yīng)用以及媒體任務(wù)之間的不同,確保獲得的任務(wù)數(shù)據(jù)符合需求。
多媒體數(shù)據(jù)庫中包含存儲對象在不同時期的不同內(nèi)容,二者相似卻又完全不同個,例如:將人的幼兒時期、青年時期和中年時期照片輸入進多媒體數(shù)據(jù)庫中,所顯示出的內(nèi)容即是完全不一樣的;而在CAD的圖紙上有著草圖與正式圖之間的分別。對于另外一方面,在相同處理對象上有著不同處理和表達,例如:相同的一段音頻,其所擁有的格式有MIDI、WAN以及VOC等,它們之間表達的意思就不相同。當(dāng)對目標任務(wù)數(shù)據(jù)存儲時,就需要按照個體時間關(guān)系、表達軟件以及版本信息等分別管理[6]。
在使用多媒體數(shù)據(jù)庫時,會需要從動態(tài)的視頻庫進行提取或者播放一部數(shù)字化影片,通常要很長的時間,并且要保證多個任務(wù)在視頻在播放過程中不被中斷。因此,多任務(wù)的事務(wù)并行處理能力是多媒體數(shù)據(jù)庫的基本要求。
1)提供非格式的任務(wù)搜索和查詢功能。
多媒體數(shù)據(jù)庫不能使用某些符號作為搜索的信息線索,例如:視頻中的動作、音頻的音調(diào)以及圖像之中的顏色等,而搜索者難以把這些信息轉(zhuǎn)換成信號,所以,要求多媒體數(shù)據(jù)庫能夠存儲多任務(wù)的個體內(nèi)容進行語義分析,從而達到更深層次的搜索。
2)對非格式化任務(wù)數(shù)據(jù)還應(yīng)該根據(jù)不同的媒體提供不同操作,例如聲音數(shù)據(jù):聲調(diào)、聲音強度調(diào)整、聲音合成、聲音信號等;圖像數(shù)據(jù):比例、鑲嵌、覆蓋、裁剪、顏色的轉(zhuǎn)變、交接等[7]。
多媒體數(shù)據(jù)庫是在互聯(lián)網(wǎng)的基礎(chǔ)上建造完成的,多任務(wù)在不同的節(jié)點上,需要根據(jù)不同的應(yīng)用情況得到高效快速的同時處理。多任務(wù)的基本處理操作多為查詢、存儲、數(shù)據(jù)版本管理、非格式化管理等等。在充分考慮了多任務(wù)基本處理操作的前提下,根據(jù)上述步驟,完成了多媒體數(shù)據(jù)庫多任務(wù)并行控制機制的設(shè)計。以設(shè)計出的并行控制機制為基礎(chǔ),實現(xiàn)多任務(wù)并行控制的流程。
針對各種多任務(wù)并行語言,多任務(wù)并行控制機制可以分為兩種,在此采用的是串行程序內(nèi)關(guān)于結(jié)構(gòu)化的單入口方式,其單入口的定義是為非結(jié)構(gòu)化與結(jié)構(gòu)化兩種并行控制機制[8]。
1)任務(wù)流圖TASK GRA GH。任務(wù)流圖TG是二元組,TG=(V,E),V代表程序中全部任務(wù)的多集合,E代表全部任務(wù)之間的依賴關(guān)系集合。
2)結(jié)構(gòu)化的并行控制機制。
共同前驅(qū)與共同后驅(qū)的兩個或者多個任務(wù)所構(gòu)建的并行控制機制,是結(jié)構(gòu)化的多任務(wù)并行控制機制。
結(jié)構(gòu)化的多任務(wù)并行控制的特點是同步性能強,其并發(fā)機構(gòu)和以后的并行與串行之間存在很強的依賴關(guān)系,要按照一定的先后次序執(zhí)行。其示意如圖1(a)和(b)所示。
3)非結(jié)構(gòu)化的多任務(wù)并行控制機制。
通過其共同后續(xù)節(jié)點為0的兩個或者是兩個以上任務(wù)構(gòu)成并行控制機制,視為非結(jié)構(gòu)化的并行控制機制[9]。
這種結(jié)構(gòu)又是以雙分支并行控制完成的,其示意圖如圖1(c)所示:
圖1 并行控制機制
多媒體數(shù)據(jù)庫針對結(jié)構(gòu)化的多任務(wù)并行控制問題敘述如下。
任務(wù)集合用T={Ti,0≤i≤M-1}表示,處理機集合用p={pi,0≤i≤N-1}表示,并且已經(jīng)知道的任務(wù)Ti的計算量為T(i)。其任務(wù)Ti和Tj之間的通信量是C(i,j)。以此求T→P的分配方案使下式的值最小,exe[i]是處理機Pi的計算開銷,comm[i,j]是處理機Pi和Pj間的通信開銷。
(1)
首先要注意到網(wǎng)絡(luò)中的程序進行多任務(wù)調(diào)度,堅持下列原則。依據(jù)實際的運行效果,考慮到多媒體數(shù)據(jù)庫引擎中的數(shù)據(jù)任務(wù)分配較慢問題,在進行分配前必須將任務(wù)合并[10],同時也證明,其數(shù)據(jù)分配要大于計算量任務(wù)Ti和T0兩者的合并量。再通過加速比簡易公式推導(dǎo)出必要性的功能。假如有p個處理器同時并行,那么所有的處理器計算時間用TP表示,其總通信時間用Tc表示,即負載的平衡情況,所有同時并行的處理器加速比公式
(2)
式中:Tc?TP的時候,SP<1。
為了方便對負載進行調(diào)節(jié),應(yīng)該先依據(jù)貪心算法,把任務(wù)按照從大到小的方式進行排列,然后分派出去。接著在根據(jù)硬件的易構(gòu)性,在開始進行分配時,需要按照提取量的信息從N-1的任務(wù)分配到處理機上,以此保證最快的運行速度。
對多任務(wù)進行估算,其不準確性以及相關(guān)性任務(wù)執(zhí)行時間所帶來的不穩(wěn)定,可通過反饋信息解決。將主任務(wù)分配給副任務(wù),副任務(wù)執(zhí)行著主任務(wù)所分配來的任務(wù),且在執(zhí)行完畢之后向主任務(wù)發(fā)送反饋信息,而主任務(wù)通過反饋的信息,從新進行分配接著在反饋,周而復(fù)始,直至所有的任務(wù)全部結(jié)束為止,這是將“一次分配完畢的靜態(tài)策略”轉(zhuǎn)變成“多次分配的策略”。
如果每次所要分配的任務(wù)量是B,那么依據(jù)任務(wù)的總量以及處理器B的大小,對于整個調(diào)度的性能影響較大,假如較大的情況發(fā)生,就會降低負載的調(diào)整能力;太小會致使其調(diào)度開銷太大,如圖2所示,設(shè)
圖2 粒度并行能力關(guān)系
(3)
式中:α代表任意一臺處理機的最低分配次數(shù),而任務(wù)的平均提取量開銷和近平均計算的開銷兩者相近時,是不能夠頻繁調(diào)度的,因為,B=任務(wù)總數(shù)/(α*處理機總數(shù)’),在所有的任務(wù)總量相等、粒度較粗的時候,其調(diào)整的余地比較大,與此同時,B/單個任務(wù)其粒度能達到1。
針對上述計算方法,文中得到的多媒體數(shù)據(jù)庫多任務(wù)并行控制調(diào)度算法SSA如下列所示[11]:
1)先將所有的處理器計算速度和主任務(wù)到所有的副任務(wù)間通信速度進行測定。能夠得到兩個數(shù)組的參數(shù)x[i],c[j];
2)將所有任務(wù)進行合并,其通信量C(0,i)與計算量T(i)的任務(wù)TI和T0兩者合并,接著把任務(wù)T0分配到主機上P0;
3)對N-1個C(0,i)比較小任務(wù)按照升序方式分別將其分配到通信速度按照降序排列的處理器{Pi,i>0}中,以及保證P0以外的處理器,能夠快速有效完成工作。
4)將N個C(i,M-1)且T(i)比較小的任務(wù)進行選擇,放置最后分配,通過這種方法來保證最終分配的任務(wù)所帶來的延遲降到最低。
5)依據(jù)貪心算法,把全部剩余任務(wù),通過T(i)從大到小的順序進行排列,將B求出,在通過按組分配的模式,將任務(wù)分配給最早進行反饋的處理器。
6)通過C(i,M-1)是根據(jù)大致小的順序,把(4)中的N個任務(wù)分配到最先進行反饋信號的處理器上。
7)最終把TM-1對其分配給處理器P0上。
通過上面能夠看出:其任務(wù)比處理器大的時候,步驟2)與步驟5)能夠發(fā)揮主要的作用;而任務(wù)數(shù)據(jù)和處理相近時,那么其步驟3)、4)、6)能夠起到調(diào)節(jié)作用[12]。
實驗環(huán)境:Java語言進行編寫,雙盒處理器,3.2GHz頻率,4G的內(nèi)存。為了驗證所提并行控制方法有效性,對多媒體數(shù)據(jù)庫進行1000次的引擎任務(wù)操作,用于檢測針對硬盤查詢處理的距離比較數(shù)、硬盤的輸入/輸出以及平均回應(yīng)時間。
首先制作一臺合成聚類發(fā)生器,確保生成的數(shù)據(jù)模擬特征是不具備類似特征,要先將多個|C|d-維中心進行生成,其半徑相同,對每個聚類都提供多維空間的位置。
因此,所有數(shù)據(jù)集能夠用〈n,d,|C|〉、點數(shù)、多維空間的大小、聚類數(shù)表示,其產(chǎn)生的非均勻以及均勻的數(shù)據(jù)集全部在下列范圍
n∈{106,107},
d∈{10,20,50,100,150,200,256,1000}
(4)
(5)
而且,所有的聚類c都有ncd-維高斯點。{r,&,p}代表任何一個聚類,而半徑r代表了單個聚類所占據(jù)的空間位置,&代表密度,就是單位容量所包括的點數(shù)量。其種群p決定了聚類中的d-點數(shù),總數(shù)值在以下的范圍內(nèi)
r∈{1,[1,3]}
(6)
最終會得到187個數(shù)據(jù)對象,其控制所使用的k值,將其設(shè)為50、100以及150。
圖3 不同數(shù)據(jù)之間的維度非均勻數(shù)據(jù)集的1000次控制次數(shù)
通過上圖,可明確了解處理時間是隨著維數(shù)的增加而增長的,并且是呈現(xiàn)指數(shù)形式上漲,不過,這種的上漲指數(shù)沒有預(yù)期的快。
圖4 硬盤輸入輸出計數(shù)和距離計算結(jié)果
上圖中的曲線是趨向于穩(wěn)定狀態(tài),這歸功于多任務(wù)控制方法,不論什么時候。其多任務(wù)并行控制都是在非均勻種群前面lg2n聚類上。任何處理器在傳回k個結(jié)果,就可獲取到k=100與150幾乎是相近值,因此在曲線上面是沒有辦法非常具體的表現(xiàn)出來。而聚類大小是主要的因素影響,因此,規(guī)模相對較小的聚類能夠縮短控制時間,所以,不用關(guān)注入選聚類內(nèi)部的控制效率。
通過上述的實驗可以看出,本文方法效果良好,有效性能較高。
科技時代互聯(lián)網(wǎng)快速發(fā)展,多媒體數(shù)據(jù)庫的龐大性、復(fù)雜性以及多樣性都是注定了其系統(tǒng)在進行多任務(wù)工作時,難以有效的且快速的完成,因此本文提出一種多媒體數(shù)據(jù)庫引擎多任務(wù)并行控制方法。本文具體措施如下所示:
1)通過分析多任務(wù)并行存儲、查詢、數(shù)據(jù)版本管理以及非格式化處理為后續(xù)數(shù)據(jù)處理奠定可行基礎(chǔ)。
2)通過對多媒體數(shù)據(jù)庫的了解,采用串行程序內(nèi)結(jié)構(gòu)化單入口方式,其中非結(jié)構(gòu)化與結(jié)構(gòu)化兩種并行控制機制。
3)通過SSA算法,完成最終的控制。經(jīng)過試驗證明,本文方法能夠有效的控制運行,且效果良好。