一種計算任務(wù)處理方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算技術(shù)領(lǐng)域,特別涉及一種計算任務(wù)處理方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)在信息技術(shù)發(fā)展很快,信息處理量也越來越大。現(xiàn)有技術(shù)有同一個流程按照時間順序執(zhí)行。但是處理花費(fèi)的時間較長。采用多任務(wù)并發(fā)進(jìn)行處理可以提升計算任務(wù)的處理效率。然而在多任務(wù)并發(fā)處理的過程中,如果某個子流程出現(xiàn)處理失敗,需要從頭開始處理,相當(dāng)于先前的數(shù)據(jù)處理操作被重復(fù)進(jìn)行,造成計算資源的浪費(fèi)。
【發(fā)明內(nèi)容】
[0003]有鑒于此,本發(fā)明提供一種計算任務(wù)處理方法及裝置,可以解決現(xiàn)有技術(shù)中計算資源的浪費(fèi)。
[0004]一種計算任務(wù)處理方法,包括以下步驟:獲取包括多個子流程的計算任務(wù);將所述計算任務(wù)的當(dāng)前子流程的輸入數(shù)據(jù)存入一個隊列中;從所述隊列中獲取第一輸入數(shù)據(jù)并根據(jù)與所述當(dāng)前子流程對應(yīng)的邏輯進(jìn)行數(shù)據(jù)處理;根據(jù)所述數(shù)據(jù)處理的結(jié)果判斷是否進(jìn)入下一個子流程;若進(jìn)入下一個子流程則將所述數(shù)據(jù)處理的結(jié)果作為所述當(dāng)前子流程的下一子流程的輸入數(shù)據(jù)存入另一個隊列中。
[0005]一種計算任務(wù)處理裝置,所述裝置包括:獲取模塊,用于接收包括多個子流程的計算任務(wù);第一數(shù)據(jù)預(yù)存模塊,用于將所述計算任務(wù)的當(dāng)前子流程的輸入數(shù)據(jù)存入一個隊列中;子流程處理模塊,用于從所述隊列中獲取第一輸入數(shù)據(jù)并根據(jù)與所述當(dāng)前子流程對應(yīng)的邏輯進(jìn)行數(shù)據(jù)處理;第一判斷模塊,用于根據(jù)數(shù)據(jù)處理的結(jié)果判斷是否進(jìn)入下一個子流程;以及第二數(shù)據(jù)預(yù)存模塊,用于若所述第一判斷模塊的結(jié)果為進(jìn)入下一個子流程,將所述數(shù)據(jù)處理的結(jié)果作為所述當(dāng)前子流程的下一子流程的輸入數(shù)據(jù)存入另一個隊列中。
[0006]根據(jù)本實(shí)施例的計算任務(wù)處理方法,通過將子流程計算所需要的輸入數(shù)據(jù)存儲在隊列里,從而解除了多個子流程之間的時序強(qiáng)依賴性。按照這種方式,每個任務(wù)處理線程并不需要等待前一子流程的運(yùn)算結(jié)果,因此可以提升包括多個子流程的計算任務(wù)的處理效率,減少計算資源的浪費(fèi)。
[0007]為讓本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附圖式,作詳細(xì)說明如下。
【附圖說明】
[0008]圖1為一個計算裝置的結(jié)構(gòu)框圖。
[0009]圖2為第一實(shí)施例提供的計算任務(wù)處理方法流程圖。
[0010]圖3為對應(yīng)子流程創(chuàng)建隊列的示意圖。
[0011]圖4為圖2中的方法與一種多線程并行計算消耗時間的對比示意圖。
[0012]圖5為第二實(shí)施例提供的計算任務(wù)處理方法流程圖。
[0013]圖6為第三實(shí)施例提供的計算任務(wù)處理方法流程圖。
[0014]圖7為第四實(shí)施例提供的計算任務(wù)處理裝置結(jié)構(gòu)框圖。
[0015]圖8為第五實(shí)施例提供的計算任務(wù)處理裝置結(jié)構(gòu)框圖。
[0016]圖9為第六實(shí)施例提供的計算任務(wù)處理裝置結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0017]為更進(jìn)一步闡述本發(fā)明為實(shí)現(xiàn)預(yù)定發(fā)明目的所采取的技術(shù)手段及功效,以下結(jié)合附圖及較佳實(shí)施例,對依據(jù)本發(fā)明的【具體實(shí)施方式】、結(jié)構(gòu)、特征及其功效,詳細(xì)說明如后。
[0018]本發(fā)明實(shí)施例提供一種計算任務(wù)處理方法及裝置。上述的計算任務(wù)是指由計算裝置進(jìn)行運(yùn)算而得出計算結(jié)果的任務(wù)。對于一個計算任務(wù),其具有輸入的數(shù)據(jù)以及運(yùn)算邏輯,計算裝置根據(jù)所述運(yùn)算邏輯對輸入的數(shù)據(jù)進(jìn)行運(yùn)算從而得出計算結(jié)果??梢岳斫?,一個計算任務(wù)可以包括多個子流程(η為自然數(shù)),而這些子流程之間可能具有強(qiáng)依賴性。例如,子流程fI的運(yùn)算結(jié)果是子流程f2的輸入。因此,只有當(dāng)完成了子流程fl才能繼續(xù)子流程f2的處理。
[0019]上述的計算裝置的具體實(shí)例包括,但并不限于,服務(wù)器、個人計算機(jī)、智能移動終端等。圖1為上述的計算裝置的結(jié)構(gòu)框圖。如圖1所示,計算裝置100包括:存儲器102、存儲控制器104、一個或多個(圖中僅示出一個)處理器106、外設(shè)接口 108以及網(wǎng)絡(luò)模塊110??梢岳斫猓瑘D1所示的結(jié)構(gòu)僅為示意,其并不對計算裝置100的結(jié)構(gòu)造成限定。例如,計算裝置100還可包括比圖1中所示更多或者更少的組件,或者具有與圖1所示不同的配置。
[0020]存儲器102可用于存儲軟件程序以及模塊,如本發(fā)明實(shí)施例中的計算任務(wù)處理方法及裝置對應(yīng)的程序指令/模塊,處理器104通過運(yùn)行存儲在存儲器102內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的方法。
[0021]存儲器102可包括高速隨機(jī)存儲器,還可包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態(tài)存儲器。在一些實(shí)例中,存儲器102可進(jìn)一步包括相對于處理器106遠(yuǎn)程設(shè)置的存儲器,這些遠(yuǎn)程存儲器可以通過網(wǎng)絡(luò)連接至計算裝置100。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動通信網(wǎng)及其組合。處理器106以及其他可能的組件對存儲器102的訪問可在存儲控制器104的控制下進(jìn)行。
[0022]外設(shè)接口 108將各種輸入/輸入裝置耦合至處理器106。處理器106運(yùn)行存儲器102內(nèi)的各種軟件、指令計算裝置100執(zhí)行各種功能以及進(jìn)行數(shù)據(jù)處理。在一些實(shí)施例中,外設(shè)接口 108、處理器106以及存儲控制器104可以在單個芯片中實(shí)現(xiàn)。在其他一些實(shí)例中,他們可以分別由獨(dú)立的芯片實(shí)現(xiàn)。
[0023]網(wǎng)絡(luò)模塊110用于接收以及發(fā)送網(wǎng)絡(luò)信號。上述網(wǎng)絡(luò)信號可包括無線信號或者有線信號。在一個實(shí)例中,上述網(wǎng)絡(luò)信號為有線網(wǎng)絡(luò)信號。此時,網(wǎng)絡(luò)模塊110可包括處理器、隨機(jī)存儲器、轉(zhuǎn)換器、晶體振蕩器等元件。
[0024]上述的軟件程序以及模塊包括:操作系統(tǒng)122以及計算模塊124。其中操作系統(tǒng)122例如可為LINUX, UNIX, WINDOWS,其可包括各種用于管理系統(tǒng)任務(wù)(例如內(nèi)存管理、存儲設(shè)備控制、電源管理等)的軟件組件和/或驅(qū)動,并可與各種硬件或軟件組件相互通訊,從而提供其他軟件組件的運(yùn)行環(huán)境。計算模塊124運(yùn)行在操作系統(tǒng)122的基礎(chǔ)上,其具體實(shí)現(xiàn)本發(fā)明實(shí)施例提供的計算任務(wù)處理方法。
[0025]第一實(shí)施例
[0026]圖2為第一實(shí)施例提供的一種計算任務(wù)處理方法的流程圖,其可由圖1所示的計算裝置100執(zhí)行。如圖2所示,上述方法包括以下步驟:
[0027]步驟S101、獲取包括有多個子流程的計算任務(wù)。
[0028]所述計算任務(wù)包括多個子流程f 1、f2、f3…fn (η為自然數(shù)),子流程之間有時序性。所述時序性是指計算任務(wù)的子流程的計算依賴于前一個子流程的計算數(shù)據(jù)。例如,子流程fl的運(yùn)算結(jié)果是子流程f2的輸入。因此,只有當(dāng)完成了子流程fI才能繼續(xù)子流程f2的處理。
[0029]所述計算任務(wù)的來源是任意的。例如,在一個實(shí)施例中,計算任務(wù)對應(yīng)的輸入數(shù)據(jù)以及運(yùn)算邏輯是存儲在本地的文件當(dāng)中,通過讀取并解析所述文件得到一個或多個計算任務(wù)。在另一個實(shí)例中,計算任務(wù)是從網(wǎng)絡(luò)中獲取的。例如,在計算裝置100為部署在網(wǎng)絡(luò)中的服務(wù)器,會接收客戶端(其他服務(wù)器或者用戶使用的個人計算機(jī)等)提交的計算任務(wù)?;蛘?,計算裝置100還可以主動從其他服務(wù)器處下載計算任務(wù)。在另一個實(shí)例中,計算裝置100還可向用戶提供計算任務(wù)設(shè)置界面,用戶在計算任務(wù)設(shè)置界面設(shè)置計算任務(wù),相應(yīng)地,計算裝置100可根據(jù)用戶輸入的條件生成計算任務(wù)。
[0030]步驟S102、將所述計算任務(wù)的當(dāng)前子流程的輸入數(shù)據(jù)存入一個隊列中。
[0031]對于上述的計算任務(wù),在初始狀態(tài)下所述的當(dāng)前子流程為子流程fl。但隨著計算任務(wù)的進(jìn)行,當(dāng)前子流程也會隨之變化。例如,當(dāng)子流程fI結(jié)束后,且需要繼續(xù)進(jìn)行子流程f2,則當(dāng)前子流程就相應(yīng)變?yōu)樽恿鞒蘤2。
[0032]對于一個子流程,其具有輸入數(shù)據(jù)以及運(yùn)算邏輯??梢岳斫?,運(yùn)算邏輯是確定的,也就是說,相同的計算任務(wù)中,相同的子流程具有相同的運(yùn)算邏輯;而輸入數(shù)據(jù)是會變化的,也就是說,不同的計算任務(wù)中相同子流程的輸入數(shù)據(jù)會有不同。
當(dāng)前第1頁
1 
2 
3