基于預(yù)讀緩寫的數(shù)據(jù)分析處理方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于高性能遙感數(shù)據(jù)處理領(lǐng)域,更具體設(shè)及一種基于預(yù)讀緩寫的數(shù)據(jù)分析 處理方法及系統(tǒng)。
【背景技術(shù)】
[0002] 在使用高性能集群進(jìn)行批量數(shù)據(jù)計算的過程中,頻繁地發(fā)生數(shù)據(jù)輸入和輸出的操 作,由于計算量過大,從而導(dǎo)致多個計算節(jié)點(diǎn)同時訪問存儲器,因此會造成存儲堵塞,不能 達(dá)到理想的程序運(yùn)行效率?,F(xiàn)有技術(shù)中所設(shè)及的生產(chǎn)程序一般為串行程序,基本都經(jīng)過輸 入、計算和輸出=個過程,可將運(yùn)=個過程W如下=個模塊進(jìn)行理解:
[0003]輸入模塊,在運(yùn)行輸入模塊時,將所有計算所需要的數(shù)據(jù)輸入,暫時存儲于內(nèi)存 中,但會占用大量空間;
[0004]計算模塊,在輸入模塊運(yùn)行結(jié)束后,計算模塊將會進(jìn)行運(yùn)行狀態(tài),根據(jù)產(chǎn)品生產(chǎn)算 法的實現(xiàn)的代碼,利用輸入數(shù)據(jù)進(jìn)行計算,并將計算結(jié)果暫時保存于內(nèi)存中;
[0005] 輸出模塊,在計算模塊結(jié)束后,將在于內(nèi)存的計算依次輸出到本地磁盤,結(jié)束程序 的全部運(yùn)行,如圖1所示。由于=個模塊是串行運(yùn)行的,通過對=個模塊的單獨(dú)運(yùn)行時間總 和可W計算出總的運(yùn)行時間。可W看出現(xiàn)有技術(shù)中要等上一個模塊運(yùn)行完畢才能啟動下一 個模塊,因此產(chǎn)生了許多不必要的等待時間,降低了程序運(yùn)行的效率,并且數(shù)據(jù)在批量輸入 和輸出時造容易造成存儲堵塞,因此需要一種方案能夠提高程序運(yùn)行效率,減少不必要的 等待數(shù)據(jù)讀入時間,減小數(shù)據(jù)在批量輸入和輸出時造存儲堵塞的可能性,改善當(dāng)前高性能 集群的利用率,更靈活地配置各級數(shù)據(jù)存儲與讀取關(guān)系。
【發(fā)明內(nèi)容】
[0006](一)要解決的技術(shù)問題
[0007] 本發(fā)明要解決的技術(shù)問題是如何在進(jìn)行批量數(shù)據(jù)計算時,有效減少不必要的等待 時間,提高程序運(yùn)行效率,并且避免數(shù)據(jù)在批量輸入和輸出時造存儲堵塞。
[000引(二)技術(shù)方案
[0009] 為了解決上述技術(shù)問題,本發(fā)明提供了一種基于預(yù)讀緩寫的數(shù)據(jù)分析處理方法, 所述方法包括:
[0010]S1、讀入部分待輸入數(shù)據(jù);
[0011]S2、利用相應(yīng)的計算方法根據(jù)所述步驟S1中讀入的所述待輸入數(shù)據(jù)進(jìn)行計算,得 到對應(yīng)的計算結(jié)果,并且將所述計算結(jié)果進(jìn)行輸出;
[0012] 第一次執(zhí)行完所述步驟S1之后,所述步驟S1和S2同時執(zhí)行,直到所述待輸入數(shù) 據(jù)全部讀入所述步驟S1停止執(zhí)行;直到所有所述計算結(jié)果全部輸出后所述步驟S2停止執(zhí) 行。
[0013] 優(yōu)選地,所述方法設(shè)置了標(biāo)識所述待輸入數(shù)據(jù)全部輸入的第一標(biāo)志位、標(biāo)識利用 對應(yīng)的計算方法計算完所有的所述待輸入數(shù)據(jù)的第二標(biāo)志位W及標(biāo)識所述計算結(jié)果全部 輸出的第立標(biāo)志位。
[0014] 優(yōu)選地,所述步驟S1在讀入所述待輸入數(shù)據(jù)之前還包括W下步驟:
[0015] 根據(jù)所述第一標(biāo)志位,判斷是否已經(jīng)讀入了全部的所述待輸入數(shù)據(jù),若是,則不再 執(zhí)行所述步驟S1,否則執(zhí)行所述步驟S1。
[0016] 優(yōu)選地,所述步驟S2包括W下步驟:
[0017]S21、判斷是否有所述待輸入數(shù)據(jù)讀入,若有執(zhí)行步驟S22,否則執(zhí)行所述步驟S1;
[0018]S22、利用相應(yīng)的計算方法根據(jù)所述步驟21中讀入的所述待輸入數(shù)據(jù)進(jìn)行計算;
[0019]S23、判斷是否得到了對應(yīng)的所述計算結(jié)果,若是則進(jìn)行步驟S24,否則等待所述步 驟S22執(zhí)行,直到得到對應(yīng)的所述計算結(jié)果;
[0020] S24、將所述計算結(jié)果進(jìn)行輸出。
[0021] 優(yōu)選地,所述步驟S21執(zhí)行之前還包括W下步驟:
[0022] 根據(jù)所述第二標(biāo)志位,判斷是否已經(jīng)利用對應(yīng)的計算方法計算完所有的所述待輸 入數(shù)據(jù),若是則不再執(zhí)行所述步驟S21,否則執(zhí)行所述步驟S21。
[0023] 優(yōu)選地,所述步驟S23執(zhí)行之前還包括W下步驟:
[0024] 根據(jù)所述第S標(biāo)志位,判斷是否已經(jīng)輸出了所有的所述計算結(jié)果,若是則不再執(zhí) 行所述步驟S23,否則執(zhí)行所述步驟S23。
[00巧]本發(fā)明還公開了一種基于預(yù)讀緩寫的數(shù)據(jù)分析處理系統(tǒng),所述系統(tǒng)包括數(shù)據(jù)輸入 模塊、數(shù)據(jù)計算模塊W及數(shù)據(jù)輸出模塊;
[0026]所述數(shù)據(jù)輸入模塊與所述數(shù)據(jù)計算模塊連接,用于讀入部分待輸入數(shù)據(jù)并傳遞給 所述數(shù)據(jù)計算模塊;
[0027]所述數(shù)據(jù)計算模塊與所述數(shù)據(jù)輸出模塊連接,利用相應(yīng)的計算方法根據(jù)所述數(shù)據(jù) 輸入模塊傳遞的所述待輸入數(shù)據(jù)進(jìn)行計算得到相應(yīng)的計算結(jié)果并傳遞給所述數(shù)據(jù)輸出模 塊,并由所述數(shù)據(jù)輸出模塊進(jìn)行輸出;
[0028] 其中,所述數(shù)據(jù)輸入模塊讀入所述部分待輸入數(shù)據(jù)后,所述數(shù)據(jù)輸入模塊、所述數(shù) 據(jù)計算模塊W及所述數(shù)據(jù)輸出模塊同時工作,直到所述待輸入數(shù)據(jù)全部讀入所述數(shù)據(jù)輸入 模塊,所述數(shù)據(jù)輸入模塊停止工作;直到所有所述計算結(jié)果全部輸出,所述數(shù)據(jù)輸出模塊停 止工作。
[0029] 優(yōu)選地,所述系統(tǒng)還包括標(biāo)志位設(shè)置模塊,其設(shè)置了標(biāo)識所述待輸入數(shù)據(jù)全部輸 入的第一標(biāo)志位、標(biāo)識利用對應(yīng)的計算方法計算完所有的所述待輸入數(shù)據(jù)的第二標(biāo)志位W 及標(biāo)識所述計算結(jié)果全部輸出的第=標(biāo)志位。
[0030]優(yōu)選地,所述數(shù)據(jù)輸入模塊包括輸入判斷子模塊,所述輸入判斷子模塊在所述數(shù) 據(jù)輸入模塊讀入部分待輸入數(shù)據(jù)之前,根據(jù)所述第一標(biāo)志位,判斷是否已經(jīng)讀入了全部的 所述待輸入數(shù)據(jù),若是則所述數(shù)據(jù)輸入模塊不再工作,否則由所述數(shù)據(jù)輸入模塊讀入所述 待輸入數(shù)據(jù)。
[0031]優(yōu)選地,所述數(shù)據(jù)計算模塊包括計算前判斷子模塊,所述計算前判斷子模塊在所 述數(shù)據(jù)計算模塊利用相應(yīng)的計算方法根據(jù)所述數(shù)據(jù)輸入模塊傳遞的所述待輸入數(shù)據(jù)進(jìn)行 計算之前,判斷是否有所述待輸入數(shù)據(jù)讀入,若有則所述數(shù)據(jù)計算模塊利用相應(yīng)的計算方 法根據(jù)讀入的所述待輸入數(shù)據(jù)進(jìn)行計算,得到對應(yīng)的所述計算結(jié)果。
[003引(S)有益效果
[0033] 本發(fā)明提供了一種基于預(yù)讀緩寫的數(shù)據(jù)分析處理方法及系統(tǒng),本發(fā)明中首先讀入 一部分待輸入數(shù)據(jù);然后根據(jù)輸入的數(shù)據(jù)先行進(jìn)行計算,同時讀入剩余的一部分貨全部的 待輸入數(shù)據(jù),繼續(xù)進(jìn)行計算;同時,當(dāng)有計算結(jié)果可W進(jìn)行輸出的時候,就先行將此部分結(jié) 果輸出,運(yùn)種處理方式通過多線程編程,將=個模塊進(jìn)行并行運(yùn)算,W在最短的時間內(nèi)完成 程序的運(yùn)行,達(dá)到內(nèi)存的動態(tài)高效的使用;運(yùn)種預(yù)讀緩寫機(jī)制的引入最大可W提高75%的 程序運(yùn)行效率,并且避免了數(shù)據(jù)在批量輸入和輸出時造存儲堵塞。
【附圖說明】
[0034]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可W 根據(jù)運(yùn)些附圖獲得其他的附圖。
[0035] 圖1為現(xiàn)有技術(shù)中程序串行運(yùn)行流程圖;
[0036]圖2為本發(fā)明的一個較佳實施例的一種基于預(yù)讀緩寫的數(shù)據(jù)分析處理方法的流 程圖;
[0037]圖3為本發(fā)明的另一個較佳實施例的一種基于預(yù)讀緩寫的數(shù)據(jù)分析處理方法的 流程圖;
[0038] 圖4為利用本發(fā)明的方法的程序運(yùn)行效率與利用傳統(tǒng)方法的程序運(yùn)行效率的對 比圖。
【具體實施方式】
[0039] 下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步詳細(xì)描述。W下實施例用于說明本發(fā) 明,但不能用來限制本發(fā)明的范圍。
[0040] 本發(fā)明公開了一種基于預(yù)讀緩寫的數(shù)據(jù)分析處理方法,所述方法包括:
[0041]S1、讀入部分待輸入數(shù)據(jù);
[0042]S2、利用相應(yīng)的計算方法根據(jù)所述步驟S1中讀入的所述待輸入數(shù)據(jù)進(jìn)行計算,得 到對應(yīng)的計算結(jié)果,并且將所述計算結(jié)果進(jìn)行輸出;
[0043] 第一次執(zhí)行完所述步驟S1之后,所述步驟S1和S2同時執(zhí)行,直到所述待輸入數(shù) 據(jù)全部讀入所述步驟S1停止執(zhí)行;直到所有所述計算結(jié)果全部輸出后所述步驟S2停止執(zhí) 行。
[0044] 上述方法體現(xiàn)了一種預(yù)讀緩寫機(jī)制:首先,讀入一部分?jǐn)?shù)據(jù);然后根據(jù)現(xiàn)有的數(shù) 據(jù)先行進(jìn)行計算得到部分結(jié)果,同時讀入其他的輸入數(shù)據(jù),支持計算過程的繼續(xù)運(yùn)行;同 時,當(dāng)有計算結(jié)果可W進(jìn)行輸出的時候,就先行將此部分結(jié)果輸出到本地磁盤中,此機(jī)制或 方法的讀緩寫設(shè)計是基于并行