octave是GNU的一个开源项目,你可以把他当作是小巧的,免费的matlab,绝大多数语法都能和matlab兼容。当然,当你开始搜索并行的问题的时候,你显然也不需要我再来介绍这些了。
首先是要安装parallel的包,其官方介绍页是octave.sourceforge.io/parallel/
安装方法也非常简单,在octave内输入,即可。
pkg install -forge parallel
当然,你也有着安装失败的可能,打开包的界面看一下,parallel对octave 和struct还有着版本要求,所以版本不够的升个级,没有struct的就下一个,下载命令和parallel的一样。
parallel包的介绍pkg install -forge struct
可是这依旧有着下载失败的可能,原因也很简单,最初我安装octave的时候是这样安装的
yum install octave
但是我们还需要octave-devel,所以请没有安装的小伙伴安装一下,方法如下:
yum install octave-devel
这样我们就成功的安装好了parallel的包,如果你还没有安装好,那你就找其他的教程的,我就只遇到了这些问题(以我一向的经验,我遇到的问题一般都是最多的……)
安装好了下一步就是怎么用
并行用法如果直接这么用,很可能你家可爱的octave告诉你没有parcellfun这个命令,所以第一步我们需要
pkg load parallel
在每一个octave的session中都加一句这个。
paracellfun的三个参数,第一个并行的数量,第二个要并行的函数,第三个,函数的参数。需要注意的是,参数需要是cell array。
那么如何把普通数组转换为cell array呢?
C = num2cell(A, dim)
A是普通的数组,dim是分割的纬度,如果你想一一对应的话,直接写1就好了。
然后你就可以愉快的并行你的代码了,是不是很简单?虽然夏子要把自己蠢哭,整整一个下午都在弄这个,实在是资料太少QAQ
最后,温馨提示,如果并行的时候告诉你有什么unhandled error在在子进程中,记得看一看是不是你并行的函数当中有些参数在外面赋值,于是里面就直接未定义,然后就errror了。
网友评论