怎么利用多核CPU來加速你的Linux命令
西昆云服務(wù)器,多核命令
本文主要介紹如何使用多核CPU來加速你的Linux命令。本文非常詳細(xì),具有一定的參考價(jià)值。有興趣的朋友一定要看!
你有過需要計(jì)算非常大的數(shù)據(jù)量的經(jīng)歷嗎?或者內(nèi)部搜索,或者其他操作——,一些不能并行的操作。數(shù)據(jù)專家,我在和你說話。你可能有一個(gè)4核以上的CPU,但是我們合適的工具,比如grep,bzip2,wc,awk,sed等。是單線程的,只能使用一個(gè)CPU內(nèi)核。
借用漫畫人物卡曼的話“這些內(nèi)核我怎么用”?
為了讓Linux命令使用所有的CPU內(nèi)核,我們需要使用GNU Parallel命令,這使得我們所有的CPU內(nèi)核在一臺(tái)機(jī)器上做神奇的減圖操作。當(dāng)然,這也依賴于很少使用的- pipes參數(shù)。這樣你的負(fù)載就會(huì)平均分配到每個(gè)CPU上,真的。
BZIP2
Bzip2是比gzip更好的壓縮工具,但是非常慢!不用麻煩了,我們有辦法解決這個(gè)問題。
以前的做法:
catbigfile . bin | bzip2-bestcompensedfile . bz2現(xiàn)在是這樣的:
catbigfile . bin | parallel-pipe-recent ' '-kbzip2-bestcompensedfile . bz2特別是對(duì)于bzip2,GNU并行在多核CPU上超級(jí)快。不小心就完了。
GREP
如果您有一個(gè)非常大的文本文件,您可能以前是這樣的:
現(xiàn)在你可以這
catbigfile . txt | parallel-pipe grep ' pattern '或類似的內(nèi)容:
catbigfile . txt | parallel-block 10M-pipe grep ' pattern ',第二種用法使用block 10M參數(shù),這意味著每個(gè)內(nèi)核處理1000萬行,——。您可以使用此參數(shù)來調(diào)整每個(gè)CPU內(nèi)核處理多少行數(shù)據(jù)。
AWK
下面是一個(gè)使用awk命令計(jì)算非常大的數(shù)據(jù)文件的例子。
一般用法:
catrand20m . txt | awk ' { s=$ 1 } end { prints } '現(xiàn)在是這樣的:
catrand20m . txt | parallel-pipe awk \ ' { s=\ $ 1 } end { prints } \ ' | awk ' { s=$ 1 } end { prints } '有點(diǎn)復(fù)雜:parallel命令中的pipe參數(shù)將cat輸出分成幾個(gè)塊,分派給awk call,形成許多子計(jì)算操作,這些子計(jì)算通過第二個(gè)管道輸入同一個(gè)awk命令,從而輸出最終結(jié)果。第一個(gè)awk有三個(gè)反斜杠,這是GNU parallel調(diào)用awk所必需的。
WC
想盡快算出一個(gè)文件的行數(shù)?
傳統(tǒng)做法:
現(xiàn)在你應(yīng)該這樣做:
catbigfile . txt | parallel-pipe WC-l | awk ' { s=$ 1 } end { prints } '非常聰明。首先使用并行命令“mapping”進(jìn)行大量的wc -l調(diào)用形成子計(jì)算,最后通過管道發(fā)送到awk進(jìn)行匯總。
SED
你想用sed命令在一個(gè)巨大的文件中做大量的替換操作嗎?
一般慣例:
Seds^old^new^gbigfile.txt現(xiàn)在你可以:
catbigfile . txt | parallel-pipes eds old new g…然后您可以使用pipes將輸出存儲(chǔ)在指定的文件中。
文章“如何使用多核CPU加速你的Linux命令”的內(nèi)容就這么多了。謝謝大家看!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí)。歡迎關(guān)注海外主機(jī)!
Tags:西昆云服務(wù)器,多核命令,怎么利用多核CPU來加速你的Linux命令
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請(qǐng)保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場(chǎng),如有內(nèi)容涉嫌侵權(quán),請(qǐng)聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信