octave是GNU的一個(gè)開源項(xiàng)目迂求,你可以把他當(dāng)作是小巧的碾盐,免費(fèi)的matlab,絕大多數(shù)語法都能和matlab兼容揩局。當(dāng)然毫玖,當(dāng)你開始搜索并行的問題的時(shí)候,你顯然也不需要我再來介紹這些了。
首先是要安裝parallel的包付枫,其官方介紹頁(yè)是octave.sourceforge.io/parallel/
安裝方法也非常簡(jiǎn)單烹玉,在octave內(nèi)輸入,即可阐滩。
pkg install -forge parallel
當(dāng)然春霍,你也有著安裝失敗的可能,打開包的界面看一下叶眉,parallel對(duì)octave 和struct還有著版本要求址儒,所以版本不夠的升個(gè)級(jí),沒有struct的就下一個(gè)衅疙,下載命令和parallel的一樣莲趣。
pkg install -forge struct
可是這依舊有著下載失敗的可能,原因也很簡(jiǎn)單饱溢,最初我安裝octave的時(shí)候是這樣安裝的
yum install octave
但是我們還需要octave-devel喧伞,所以請(qǐng)沒有安裝的小伙伴安裝一下,方法如下:
yum install octave-devel
這樣我們就成功的安裝好了parallel的包绩郎,如果你還沒有安裝好潘鲫,那你就找其他的教程的,我就只遇到了這些問題(以我一向的經(jīng)驗(yàn)肋杖,我遇到的問題一般都是最多的……)
安裝好了下一步就是怎么用
如果直接這么用溉仑,很可能你家可愛的octave告訴你沒有parcellfun這個(gè)命令,所以第一步我們需要
pkg load parallel
在每一個(gè)octave的session中都加一句這個(gè)状植。
paracellfun的三個(gè)參數(shù)浊竟,第一個(gè)并行的數(shù)量,第二個(gè)要并行的函數(shù)津畸,第三個(gè)振定,函數(shù)的參數(shù)。需要注意的是肉拓,參數(shù)需要是cell array后频。
那么如何把普通數(shù)組轉(zhuǎn)換為cell array呢?
C = num2cell(A, dim)
A是普通的數(shù)組暖途,dim是分割的緯度卑惜,如果你想一一對(duì)應(yīng)的話,直接寫1就好了丧肴。
然后你就可以愉快的并行你的代碼了残揉,是不是很簡(jiǎn)單胧后?雖然夏子要把自己蠢哭芋浮,整整一個(gè)下午都在弄這個(gè),實(shí)在是資料太少Q(mào)AQ
最后,溫馨提示纸巷,如果并行的時(shí)候告訴你有什么unhandled error在在子進(jìn)程中镇草,記得看一看是不是你并行的函數(shù)當(dāng)中有些參數(shù)在外面賦值,于是里面就直接未定義瘤旨,然后就errror了梯啤。