試想,如果有一堆頁面,儲存在不同的機器上,現在有乙個搜尋任務,需要根據乙個查詢條件找到相關的頁面,這時候你會怎麼做呢?
有幾種做法,第一種是把頁面拷貝到本地,在本地進行查詢,但是頁面比較多,拷貝就需要花費大量的時間。第二種,把查詢的程式拷貝到各個機器,然後依次查詢。這種做法具體又有很多種方式,如果你在linux上,比較擅長寫指令碼,你可能會用乙個for迴圈,依次拷貝檔案到遠端的機器並執行查詢的程式,或者你也有可能在for迴圈的內部,讓你的任務執行在後台,以實現並行。但是問題來了,如果你需要操作的機器比較多,這些任務可能就占用了大量本地的資源,而且你沒辦法檢視到遠端執行的狀態。第三種,使用hadoop,但是為了這樣乙個查詢任務,還要部署乙個檔案系統,而且還要實現一些map-recude介面,太複雜了吧。
正是在這種情況下,corunner應運而生。corunner是乙個在linux平台(未來也可能擴充套件到windows平台)上的並行執行框架。它可以執行任何程式,包括系統已有的命令,而且可以實時監控系統各個機器執行的狀態。對上面的例子,假設有乙個指令碼search.sh可以根據關鍵字來搜尋相應的頁面,我們只需要執行下面的語句:
corunner-run -n 192.168.100.2..200,192.168.101.2..200 -f search.sh -r /tmp/corunner /tmp/corunner/search.sh key1
程式會自動被分發到100網段和101網段的機器上並執行。在執行完之後,結果會自動生成在/tmp/corunner/output下。如果要取回所有結果,可以執行下面的程式:
corunner-cp -n 192.168.100.2..200,192.168.101.2..200 -i -s /tmp/corunner/ouput -d /tmp/corunner/all --divide
如果您對程式感興趣,快來試試吧!關於corunner的詳情,可以檢視corunner的專案主頁: 如果您對專案的開發感興趣,非常歡迎能夠加入到專案中來。對於最新的版本,可以通過pip搜尋,或者直接訪問
php並行處理 並行處理是什麼?
並行處理是計算機系統中能同時執行兩個或多個處理的一種計算方法 並行處理可同時工作於同一程式的不同方面 並行處理的主要目的是節省大型和複雜問題的解決時間。並行處理 parallel processing 是計算機系統中能同時執行兩個或多個處理的一種計算方法。並行處理可同時工作於同一程式的不同方面。並行...
OpenMP並行處理程式設計
vs2008 設定 專案 屬性 c c 語言 openmp支援 發布程式中要包含vcomp90.dll pragma omp parallel for 當編譯器發現 pragma omp parallel for後,自動將下面的for迴圈分成n份,n為電腦cpu核數 然後把每份指派給乙個核去執行,而...
R語言 並行處理
最新更新參考 具體的不懂,只記錄實現 r自帶的包,可以實現並行處理。library parallel detectcores logical f 獲得實際核數 cl makecluster getoption cl.cores 4 設定並行核數為4 clusterexport cl cl,varli...