婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 15分鐘并行神器gnu parallel入門指南

15分鐘并行神器gnu parallel入門指南

熱門標(biāo)簽:安陽ai電銷機器人軟件 柳州市機器人外呼系統(tǒng)報價 外呼系統(tǒng)的經(jīng)營范圍 外呼系統(tǒng)不彈窗 智能電話機器人坐席 云會外呼系統(tǒng) 廈門營銷外呼系統(tǒng)平臺 申請400電話價格多少 涪陵商都400電話開通辦理

GNU Parallel是一個shell工具,為了在一臺或多臺計算機上并行的執(zhí)行計算任務(wù)。本文簡要介紹GNU Parallel的使用。

這個cpu是多核的。

一般兩核是這樣工作的的:

四核是這樣工作的:

16核是這樣工作的:

好了不黑了。再黑intel要打我了。

在某個周末的早上百無聊賴之際,花了半天時間過了一遍gnu parallel的man page和tutorial。哈哈,我得說這半天時間花的應(yīng)該挺值,因為感覺以后它能為我節(jié)省的時間不止半天吧。

本文并不會嘗試去翻譯gnu parallel的man page或者tutorial。因為現(xiàn)成的翻譯已經(jīng)有了,可以看這里,或者這里。

但是我前幾次看到 parallel詭異的幾個:::以及奇奇怪怪的 {}{#}{.}{\}占位符之后就打起了退堂鼓,如此丑陋的語法令人無愛啊。還好直接看了一下幾個example壓壓驚,動手試一把,才發(fā)現(xiàn)實乃神器也。

本文主要的目的是安利(lure)你使用這個工具,并且告訴你為啥(why)使用和如何(how)使用。

why

使用gnu parallel的目的只要一個,就是為了快!

安裝快

(wget -O - pi.dk/3 || curl pi.dk/3/) | bash

作者說10秒裝好。在國內(nèi)實際情況可能不夠。但是也不用太久。其實就是一個1萬多行perl單文件腳本(是的,你沒看錯,所有模塊都在這個文件里,這是一個特色~)。我之后都是寫fabric腳本直接拷貝到各個節(jié)點機。再chmod一下執(zhí)行權(quán)限。
然后是執(zhí)行快,它將你的程序并行利用系統(tǒng)的多核執(zhí)行:
上圖:

grep 一個  1G 大小的log。

使用parallel  ,和不使用parallel直接grep。結(jié)果顯而易見,相差 20 倍。這比用啥 ack,ag優(yōu)化效果明顯多了。

備注:這是在一個48 核服務(wù)器上執(zhí)行的結(jié)果。

how

最簡單的方法就是類比xargs。在xargs里面有一個參數(shù) -P,可以利用多核。

舉個例子:

$ time echo {1..5} |xargs -n 1 sleep

real 0m15.005s
user 0m0.000s
sys 0m0.000s

這一條xargs把每個echo的數(shù)作為參數(shù)傳給sleep ,所以一共sleep了 1+2+3+4+5=15秒。

如果使用 -P 參數(shù)分給5個核,每個核各sleep 1,2,3,4,5秒,所以執(zhí)行完之后總共sleep的5秒。

$ time echo {1..5} |xargs -n 1 -P 5 sleep

real 0m5.003s
user 0m0.000s
sys 0m0.000s

鋪墊結(jié)束。一般情況下,parallel的第一種模式,就是替換掉 xargs -P.

比如壓縮一下所有的html文件。

find . -name '*.html' | parallel gzip --best

傳參數(shù)模式

第一種模式是利用 parallel傳參數(shù)。管道前面進來的作為參數(shù)傳給后面的命令,并行執(zhí)行

比如

huang$ seq 5 | parallel echo pre_placehoder_{}
pre_placehoder_1
pre_placehoder_2
pre_placehoder_3
pre_placehoder_4
pre_placehoder_5

其中{}是占位符,用來占位傳入?yún)?shù)的位置。

在云計算操作中,經(jīng)常有批量操作,比如建立10個云硬盤

seq 10 | parallel cinder create 10 --display-name test_{}

建立50個云主機

復(fù)制代碼 代碼如下:
seq 50 | parallel nova boot --image    image_id  --flavor 1 --availability-zone  az_id   --nic vnetwork=private   --vnc-password 000000  vm-test_{}

批量刪除云主機

nova list | grep some_pattern| awk '{print $2}' | parallel nova delete

改寫 for loop

可以看到,我其實是把很多需要寫循環(huán)的地方用parallel替換了,順帶享受了并行帶來的快捷。
這個道理是這樣的,在進行for循環(huán)的時候,是最有可能并行化的,因為被放在循環(huán)中的各個對象是上下文無關(guān)的。

普世抽象,shell的循環(huán):

 (for x in `cat list` ; do
 do_something $x
 done) | process_output

可以直接寫成

 cat list | parallel do_something | process_output

如果loop 里面內(nèi)容太多了

 (for x in `cat list` ; do
 do_something $x
 [... 100 lines that do something with $x ...]
 done) | process_output

那么最好寫成一個腳本

 doit() {
 x=$1
 do_something $x
 [... 100 lines that do something with $x ...]
 }
 export -f doit
 cat list | parallel doit

而且還能避免掉很多麻煩的轉(zhuǎn)義。

--pipe模式

另一種模式就是 parallel --pipe

這時管道前面的不是作為參數(shù),而是標(biāo)準(zhǔn)輸入傳給后面的命令

例如:

cat my_large_log |parallel --pipe grep pattern 

如果不加 --pipe ,相當(dāng)于 mylog中的每一行都變成 grep pattern line的命令展開了。而加入了--pipe,則和 cat mylog | grep pattern  沒有區(qū)別,只是分配到各個核上去執(zhí)行了。

好了,基本概念就講完了!其他的都只是各個參數(shù)具體使用,比如到底用幾個核啊,place_holder的替換啊,各種花樣傳參數(shù)啊,并行執(zhí)行但是保證結(jié)果順序輸出(-k),以及神奇的跨節(jié)點并行計算啊,看看man page就知道了。

bonus

手邊有了一個轉(zhuǎn)換成并行的小工具,除了讓你日常執(zhí)行快一點之外,還有一個好處,就是測并發(fā)。

很多接口在并發(fā)操作下會出現(xiàn)一些bug,比如有一些判斷數(shù)據(jù)庫里面沒有加鎖,是在代碼層面判斷的,結(jié)果并發(fā)請求下去,每個請求在到達服務(wù)器的時候是判斷通過,一起寫了之后就超出限制了。之前寫for循環(huán)因為是串行執(zhí)行的,并不會觸發(fā)這些問題。但是你要真正測并發(fā)的話,又要寫腳本,或者利用python的mulitiprocessing封裝一下。但我手邊有了parallel,又在bashrc里面就加了以下兩個alias

alias p='parallel'
alias pp='parallel --pipe -k' 

這樣制造并發(fā)太方便了,只需要管道后面加個p , 我就時時刻刻可以制造并發(fā)來觀察響應(yīng)。

舉個例子

seq 50 | p -n0 -q curl 'example.com'

以你核的個數(shù)并發(fā)請求。-n0的意思是seq輸出不作為參數(shù)傳給后面的命令。

八卦時間:gnu界的祥林嫂

作為一個自由軟件八卦愛好者,每次我發(fā)現(xiàn)一個新奇的軟件總會去 google一下 關(guān)鍵詞 site:https://news.ycombinator.com關(guān)鍵詞 site:http://www.reddit.com/。看看風(fēng)評如何,并且往往還能在討論中有意外收獲。

然后我再hacker news上看到了一段吐槽,主要就是說每次觸發(fā)執(zhí)行parallel都會彈出一段文字和你說,要是你把這個工具用在學(xué)術(shù)上的話(很多生命科學(xué)相關(guān)的都在用這個工具的),要引用他的論文,不然的話你就付他10000歐元吧。我因此學(xué)到一個詞,叫Nagware,特指通過啰啰嗦嗦像唐僧那樣煩你要你付錢的軟件。雖然我認(rèn)為真用到了的確也應(yīng)該引用一下文章,但是,如同這位同學(xué)說的:

I agree it's a great tool, except for the nagware messages and their  content. Imagine if the author of cd or ls had the same attitude...

另外,該作者真是灰常喜歡別人引用他的軟件,以致于在NEWS里面我還看到了:

原理時間

直接摘抄一下作者在 stackoverflow 的回答

GNU Parallel is a general parallelizer and makes is easy to run jobs in parallel on the same machine or on multiple machines you have ssh access to.

If you have 32 different jobs you want to run on 4 CPUs, a straight forward way to parallelize is to run 8 jobs on each CPU:

GNU Parallel instead spawns a new process when one finishes - keeping the CPUs active and thus saving time:

結(jié)論

本文主要安利了一個 真 - 并行 工具,解釋了其主要的兩種模式,附贈了一個技巧,八卦了gnu界不為人知的另一面。希望對你有用。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:福州 撫順 孝感 南充 晉城 綏化 巴中 蕪湖

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《15分鐘并行神器gnu parallel入門指南》,本文關(guān)鍵詞  15分鐘,并行,神器,gnu,parallel,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《15分鐘并行神器gnu parallel入門指南》相關(guān)的同類信息!
  • 本頁收集關(guān)于15分鐘并行神器gnu parallel入門指南的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    午夜精品免费在线| 日本一二三四高清不卡| 国产一区二区三区免费看| 大尺度一区二区| 亚洲.国产.中文慕字在线| 美国十次了思思久久精品导航| 欧美视频自拍偷拍| 亚洲第一主播视频| 日韩欧美色电影| 九九**精品视频免费播放| 2023国产一二三区日本精品2022| 久久不见久久见中文字幕免费| 日韩欧美不卡在线观看视频| 日韩精品综合一本久道在线视频| 午夜欧美电影在线观看| 在线综合亚洲欧美在线视频| 亚洲大片免费看| 日韩 欧美一区二区三区| 欧美一级片在线看| 国产一区二区网址| 欧美国产成人精品| 欧美性生活一区| 免费的成人av| 久久久久久久久久久黄色| 国产精品123区| 精品国产乱码久久久久久免费| 国产高清精品久久久久| 亚洲欧洲精品一区二区三区 | 精品一区二区影视| 日韩午夜激情视频| 国产一区二区91| 国产日韩欧美a| 99视频精品在线| 国产精品国产精品国产专区不片| 成人久久18免费网站麻豆| 亚洲精品乱码久久久久久久久 | 欧美日韩一区二区三区四区五区| 亚洲欧美激情插| 欧美另类高清zo欧美| 亚洲3atv精品一区二区三区| 亚洲精品一线二线三线无人区| 国产不卡视频在线观看| 亚洲精品视频在线看| 日韩免费视频一区二区| 99久久精品费精品国产一区二区| 香蕉久久夜色精品国产使用方法| 亚洲精品一区二区三区99| 91免费看片在线观看| 久久精品理论片| 亚洲狼人国产精品| 337p日本欧洲亚洲大胆精品| 成人av资源在线| 蜜臀久久99精品久久久久宅男| 国产精品美女久久久久久久久久久| 欧美日韩免费在线视频| 国产成人99久久亚洲综合精品| 五月综合激情网| 国产精品美女久久久久久久| 精品日产卡一卡二卡麻豆| 色婷婷综合激情| 国产一区二区影院| 美国欧美日韩国产在线播放| 亚洲精品老司机| 国产精品传媒入口麻豆| 欧美一区二区网站| 成人福利视频网站| 久久国产精品一区二区| 亚洲一区二区在线播放相泽| 国产精品三级视频| 9191国产精品| 在线观看亚洲一区| 成人影视亚洲图片在线| 黄页视频在线91| 日韩精品免费专区| 一区二区成人在线视频 | 在线这里只有精品| 91免费版在线| 成人av动漫网站| 欧美不卡一二三| 欧美性猛片aaaaaaa做受| www.日韩精品| 粉嫩绯色av一区二区在线观看| 蜜桃精品视频在线| 日日欢夜夜爽一区| 琪琪久久久久日韩精品| 亚洲午夜精品久久久久久久久| **性色生活片久久毛片| 亚洲人成精品久久久久| 国产日韩欧美精品综合| 久久九九99视频| 欧美一卡二卡三卡| 欧美少妇一区二区| 91麻豆国产在线观看| 成人国产亚洲欧美成人综合网| 国产99久久久国产精品| 国产在线精品一区二区三区不卡| 亚洲成人tv网| 久久99精品久久只有精品| 激情五月播播久久久精品| 久久精品国产免费看久久精品| 极品美女销魂一区二区三区| 狠狠色综合日日| 国产69精品一区二区亚洲孕妇| 成人动漫在线一区| 91精品国产综合久久久蜜臀图片| 欧美成人一区二区三区| 国产欧美日韩视频在线观看| 中文字幕精品一区二区精品绿巨人 | 91色九色蝌蚪| 欧美日韩一区二区电影| 亚洲精品一区二区三区香蕉 | 欧美精品自拍偷拍动漫精品| 欧美一区二区三区系列电影| 欧美一区二区三区精品| 久久久精品日韩欧美| 亚洲免费电影在线| 久久精品国产一区二区三区免费看| 国产成人亚洲综合a∨婷婷 | 美腿丝袜亚洲三区| caoporn国产精品| 欧美日韩国产色站一区二区三区| 精品国产1区2区3区| 亚洲精品国产视频| 国产精品中文欧美| 欧美挠脚心视频网站| 国产亚洲精品aa| 亚洲成av人在线观看| 大美女一区二区三区| 欧美一区二区二区| 亚洲在线中文字幕| 波多野结衣中文一区| 91麻豆精品国产91久久久久久| 久久先锋影音av| 午夜一区二区三区视频| 成人免费精品视频| 亚洲精品在线三区| 麻豆精品蜜桃视频网站| 欧美日韩免费一区二区三区视频 | 日本精品一区二区三区四区的功能| 2024国产精品| 日韩国产在线一| 91激情在线视频| 国产精品乱码妇女bbbb| 久久国产精品色婷婷| 制服丝袜日韩国产| 国产精品久久久久影院亚瑟 | 欧美卡1卡2卡| 欧美激情综合五月色丁香小说| 视频在线在亚洲| 一本到一区二区三区| 国产精品国产a| 成人黄色免费短视频| 国产精品午夜在线| 成人性生交大片免费看中文| 久久亚洲一区二区三区明星换脸| 奇米在线7777在线精品| 7777精品伊人久久久大香线蕉 | 成人欧美一区二区三区黑人麻豆| 成人av在线影院| 国产精品理伦片| 在线观看免费视频综合| 一级日本不卡的影视| 欧美亚洲免费在线一区| 亚州成人在线电影| 91麻豆精品国产综合久久久久久| 日韩成人午夜电影| 亚洲精品一区二区在线观看| 国产成人精品免费看| 国产片一区二区三区| jiyouzz国产精品久久| 亚洲一区二区高清| 欧美日韩高清影院| 精东粉嫩av免费一区二区三区| 久久免费国产精品 | 精品无人码麻豆乱码1区2区| 亚洲美女屁股眼交| 欧美日韩你懂的| 精品一区二区三区久久| 亚洲国产精品高清| 欧美中文字幕不卡| 久久精品99国产国产精| 久久久www免费人成精品| 色婷婷国产精品| 久久精品国产亚洲高清剧情介绍 | 91福利国产成人精品照片| 日韩和的一区二区| 一区二区三区在线免费| 欧美精品在线观看一区二区| 亚洲成人黄色影院| 国产拍揄自揄精品视频麻豆| 成人网在线免费视频| 777亚洲妇女| 国产成人免费在线| 亚洲高清视频的网址| 精品不卡在线视频| 欧美系列亚洲系列| 成人免费视频一区二区| 日本欧美一区二区三区乱码| 国产精品毛片无遮挡高清| 日韩天堂在线观看|