欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種結(jié)合信號量的文件讀寫并行處理方法

文檔序號:6371340閱讀:225來源:國知局
專利名稱:一種結(jié)合信號量的文件讀寫并行處理方法
技術(shù)領(lǐng)域
本發(fā)明涉及多進程數(shù)據(jù)同步和共享的并行方法,在面對DAG數(shù)據(jù)依賴性應(yīng)用,內(nèi)存大小無法滿足其大規(guī)模數(shù)據(jù)集的計算要求時,多進程的數(shù)據(jù)同步和共享方法。
背景技術(shù)
將整體的計算任務(wù)劃分成若干子任務(wù)是將應(yīng)用問題并行化的一種手段。其中有一類問題劃分后子任務(wù)之間具有依賴關(guān)系,我們稱這類應(yīng)用為DAG數(shù)據(jù)依賴性應(yīng)用。EasyPDP (湯善江.面向DAG數(shù)據(jù)依賴型應(yīng)用系統(tǒng)研究與實現(xiàn)[D].天津天津大學(xué),2010.)系統(tǒng)是面向多核共享存儲環(huán)境的基于DAG數(shù)據(jù)驅(qū)動型模型開發(fā)的運行系統(tǒng),解決了多核共享存儲環(huán)境中DAG數(shù)據(jù)依賴性應(yīng)用問題。
DAG數(shù)據(jù)依賴性應(yīng)用的空間復(fù)雜度取決于計算的數(shù)據(jù)規(guī)模和DAG的大小。當應(yīng)用問題要處理的數(shù)據(jù)規(guī)模變大,子任務(wù)之間的依賴關(guān)系變復(fù)雜的情況下,計算機內(nèi)存的消耗量也會加大。隨著多核技術(shù)的發(fā)展和應(yīng)用問題數(shù)據(jù)規(guī)模的增長,目前需要一種能夠妥善處理大規(guī)模數(shù)據(jù)集下DAG數(shù)據(jù)依賴性應(yīng)用的并行化處理方法。

發(fā)明內(nèi)容
基于上述現(xiàn)有技術(shù)存在的問題,本發(fā)明的一種結(jié)合信號量的文件讀寫并行處理方法,針對大規(guī)模數(shù)據(jù)集的DAG數(shù)據(jù)依賴性應(yīng)用問題,采用文件讀寫和信號量相結(jié)合的手段,對文件讀寫中數(shù)據(jù)同步和共享處理進行了創(chuàng)新。本發(fā)明提出了一種結(jié)合信號量的文件讀寫并行處理方法,該方法執(zhí)行于Linux多核環(huán)境,該方法包括以下步驟步驟一,對執(zhí)行文件讀寫任務(wù)的N個進程進行編號,從I到N ;對應(yīng)這N個進程,創(chuàng)建N組信號量,每組信號量中包含一個empty信號量,一個full信號量;將empty信號量初始化為1,full信號量初始化為0 ;步驟二、對文件讀寫進行數(shù)據(jù)同步和共享處理,包括在文件寫入時,結(jié)合empty信號量初始值為I進行文件寫入操作;文件寫入之前,對信號量empty進行p操作,使其他進行文件寫入操作的進程休眠,所有數(shù)據(jù)寫入完成之后,對信號量full進行V操作,喚醒休眠的進行文件讀取操作的進程;文件讀取的過程中,在讀取數(shù)據(jù)之前對信號量full進行p操作,使其他進行文件讀取操作的進程休眠,讀入數(shù)據(jù)完成之后,對信號量empty進行v操作,喚醒休眠的進行文件寫入操作的進程。該方法還包括當文件讀寫操作所需內(nèi)存不夠使用的情況下,臨時釋放當前讀寫任務(wù)不必要的內(nèi)存資源,用這些釋放的內(nèi)存空間存儲文件讀寫所用的數(shù)據(jù)信息。與現(xiàn)有技術(shù)相比,本發(fā)明利用一種創(chuàng)新的數(shù)據(jù)同步和共享處理方式解決了大規(guī)模數(shù)據(jù)集的DAG數(shù)據(jù)依賴性應(yīng)用問題,提高了內(nèi)存的使用效率,減少內(nèi)存消耗。


圖I讀寫文件與信號量相結(jié)合的數(shù)據(jù)同步和共享處理過程示意圖;圖2處理不同子任務(wù),數(shù)據(jù)文件載入內(nèi)存情況。
具體實施例方式以下結(jié)合附圖及較佳實施例,對依據(jù)本發(fā)明提供的具體實施方式
、結(jié)構(gòu)、特征及其功效,詳細說明如下。本發(fā)明建立在針對DAG數(shù)據(jù)依賴性應(yīng)用的大規(guī)模數(shù)據(jù)集并行編程模型之上。和以往的DAG數(shù)據(jù)依賴性編程模型不同,為了處理大規(guī)模數(shù)據(jù)的計算問題,本發(fā)明對于文件讀寫中數(shù)據(jù)同步和共享的處理進行了創(chuàng)新,主要以信號量和文件讀寫相結(jié)合的方式實現(xiàn)了數(shù)據(jù)共享和間接傳遞。
將寫文件的過程看作是消息傳遞中發(fā)送消息的過程,讀文件的過程看作是消息傳遞中接受消息的過程。但是與消息傳遞不同的是,在讀寫文件的過程中,需要保證在一個進程完成向文件寫入數(shù)據(jù)的操作之前,不能有其他進程對其進行讀取和寫入操作。為了保證這點,我們引入信號量機制。數(shù)據(jù)同步和共享的過程如圖I所示,步驟如下設(shè)定兩類信號量empty和full ;信號量empty初始化為1,信號量full初始化為O0在文件寫入的過程中,首先對信號量empty進行p操作,之后向文件中寫入數(shù)據(jù);當寫入數(shù)據(jù)完成之后,對信號量full進行V操作;在文件讀取的過程中,首先對信號量full進行p操作,讀入數(shù)據(jù)完成之后,對信號量empty進行v操作。包括在文件寫入時,結(jié)合empty信號量初始值為I進行文件寫入操作;文件寫入之前,對信號量empty進行p操作,信號量empty此時值為0,其他進程如果再次對empty信號量進行P操作則會進入休眠,保證對于一個文件,同一時間只能有一個進程進行寫操作,文件寫入完成之后,對信號量full進行V操作,此時信號量full的值變?yōu)?,使得在當前進程寫入操作完成之后其他進程方能進行讀取文件內(nèi)容);文件讀取之前,對信號量full進行P操作,此時信號量full值為0,其他進程如果再次對full信號量進行p操作則會進入休目民,保證了對于一個文件,同一時間只能有一個進程進行讀操作,讀入數(shù)據(jù)完成之后,對信號量empty進行V操作信號量empty的值變?yōu)镮,使得在當前進程讀取操作完成之后其他進程方能向文件中寫入內(nèi)容因為empty初值為1,寫入文件可以順利進行。full初值為0,對于full的p操作就會使得進程進入休眠狀態(tài),直到寫入文件的進程對于信號量full進行V操作,這時候才會喚醒讀取文件的進程。在文件讀取的完成之后,才會對信號量empty進行V操作。這樣保證在文件讀取完成之前,任何向文件寫入數(shù)據(jù)的操作都會進入休眠。通過這樣的機制,能夠確保對于文件的讀寫過程中的數(shù)據(jù)一致性問題。本發(fā)明的另一個主要特點是在文件中的保存了所有的計算數(shù)據(jù)。當計算內(nèi)存不夠使用的情況下,對于當前讀寫任務(wù)不必要的內(nèi)存資源,我們可以臨時釋放掉,這樣我們就可以用這些內(nèi)存空間存儲計算所用的數(shù)據(jù)信息。我們不必擔心數(shù)據(jù)的丟失,當我們發(fā)現(xiàn)內(nèi)存中沒有對應(yīng)的數(shù)據(jù)信息時,我們可以從硬盤中查找對應(yīng)的數(shù)據(jù)文件,讀取對應(yīng)的數(shù)據(jù)信息到內(nèi)存中。對于任務(wù)劃分后子任務(wù)的計算,計算機只要有充分的內(nèi)存資源即可,從而能夠解決整個計算任務(wù)。因此,在進行任務(wù)劃分的時候,我們只要控制子任務(wù)數(shù)據(jù)規(guī)模,使其在計算機內(nèi)存可以接受的水平,所以本方法是行之有效并且能夠廣泛適用的。本發(fā)明的具體實施例詳述如下實施環(huán)境Linux多核環(huán)境實施之初首先需要搭建一個多核計算環(huán)境,將本發(fā)行所基于的并行系統(tǒng)框架部署到計算機的主目錄中;用戶根據(jù)系統(tǒng)提供的接口編寫自己的應(yīng)用,主要包括應(yīng)用的核心代碼、能夠描述應(yīng)用的計算任務(wù)之間依賴關(guān)系的DAG模式圖、任務(wù)劃分策略的參數(shù)設(shè)定。實現(xiàn)編程模型中所有的用戶接口之后,根據(jù)Makefile文件對于編程模型所有模塊進行編譯。編譯成功即可運行系統(tǒng),實現(xiàn)用戶應(yīng)用問題的自動并行化運行。 在系統(tǒng)運行過程中,系統(tǒng)會針對每一個子計算任務(wù)創(chuàng)建一份數(shù)據(jù)文件,用來記錄當前任務(wù)的數(shù)據(jù)信息。相應(yīng)的,系統(tǒng)會根據(jù)用來執(zhí)行計算任務(wù)的總進程數(shù)來創(chuàng)建兩類信號量empty類和full類,用來保證每個計算任務(wù)執(zhí)行過程中的數(shù)據(jù)唯一性。如果整個運行時環(huán)境中負責執(zhí)行讀寫任務(wù)的進程有N個,則我們將這N個進程依次進行編號,從I到N。對應(yīng)這N個進程,我們創(chuàng)建N組信號量,每組信號量中包含一個empty信號量,一個full信號量。empty初始化為I,full初始化為O。主進程即調(diào)度進程與編號為i的計算進程時間的數(shù)據(jù)交互過程中,通過第i組信號量的變化來保證數(shù)據(jù)一致性,具體規(guī)則如技術(shù)方案中所述。調(diào)度進程與計算進程其他信息的交互也由信號量和文件讀寫來完成。當全部計算任務(wù)完成之后,調(diào)度進程對于全部數(shù)據(jù)文件信息進行收集計算,輸出最終結(jié)果。
權(quán)利要求
1.一種結(jié)合信號量的文件讀寫并行處理方法,該方法執(zhí)行于Linux多核環(huán)境,其特征在于,采用文件讀寫和信號量相結(jié)合的手段建立起的一種并行方法同時降低內(nèi)存消耗,該方法包括以下步驟 步驟一,對執(zhí)行文件讀寫任務(wù)的N個進程進行編號,從I到N ;對應(yīng)這N個進程,創(chuàng)建N組信號量,每組信號量中包含一個empty信號量,一個full信號量;將empty信號量初始化為1,full信號量初始化為O ; 步驟二、對文件讀寫進行數(shù)據(jù)同步和共享處理,包括在文件寫入時,結(jié)合empty信號量初始值為I進行文件寫入操作;文件寫入之前,對信號量empty進行p操作,使其他進行文件寫入操作的進程休眠,所有數(shù)據(jù)寫入完成之后,對信號量full進行V操作,喚醒休眠的進行文件讀取操作的進程;文件讀取的過程中,在讀取數(shù)據(jù)之前對信號量full進行p操作,使其他進行文件讀取操作的進程休眠,讀入數(shù)據(jù)完成之后,對信號量empty進行v操作,喚醒休眠的進行文件寫入操作的進程。
2.如權(quán)利要求I所述的結(jié)合信號量的文件讀寫并行處理方法,其特征在于,當文件讀寫操作所需內(nèi)存不夠使用的情況下,臨時釋放當前讀寫任務(wù)不必要的內(nèi)存資源,用這些釋放的內(nèi)存空間存儲文件讀寫所用的數(shù)據(jù)信息。
全文摘要
本發(fā)明公開了一種結(jié)合信號量的文件讀寫并行處理方法,該方法執(zhí)行于Linux多核環(huán)境,該方法包括以下步驟對文件讀寫進行數(shù)據(jù)同步和共享處理,包括在文件寫入時,結(jié)合empty信號量初始值為1進行文件寫入操作;文件寫入開始之前中,對信號量empty進行p操作,文件寫入完成之后,同時對信號量full進行v操作;文件讀取開始之前的過程中,對信號量full進行p操作,讀入數(shù)據(jù)完成之后,對信號量empty進行v操作。與現(xiàn)有技術(shù)相比,本發(fā)明利用一種創(chuàng)新的數(shù)據(jù)同步和共享處理方式解決了大規(guī)模數(shù)據(jù)集的DAG數(shù)據(jù)依賴性應(yīng)用問題,提高了內(nèi)存的使用效率,減少內(nèi)存消耗。
文檔編號G06F9/38GK102799415SQ20121019367
公開日2012年11月28日 申請日期2012年6月13日 優(yōu)先權(quán)日2012年6月13日
發(fā)明者孫濟洲, 杜君, 于策, 孫超, 金舟, 王萌萌, 陳松 申請人:天津大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
东明县| 常德市| 安远县| 鹤壁市| 攀枝花市| 吴桥县| 汕尾市| 韩城市| 南乐县| 景德镇市| 枝江市| 临清市| 祁门县| 汨罗市| 乌苏市| 枝江市| 遂平县| 怀来县| 洛宁县| 荃湾区| 方山县| 肥东县| 房产| 黔南| 浪卡子县| 兴化市| 时尚| 三穗县| 东山县| 镇江市| 景宁| 临颍县| 武安市| 上思县| 锦州市| 洞口县| 花莲县| 阿勒泰市| 曲靖市| 阿克陶县| 临西县|