octave 并行

octave是GNU的一个开源项目,你可以把他当作是小巧的,免费的matlab,绝大多数语法都能和matlab兼容。当然,当你开始搜索并行的问题的时候,你显然也不需要我再来介绍这些了。

首先是要安装parallel的包,其官方介绍页是octave.sourceforge.io/parallel/

安装方法也非常简单,在octave内输入,即可。

pkg install -forge parallel

当然,你也有着安装失败的可能,打开包的界面看一下,parallel对octave 和struct还有着版本要求,所以版本不够的升个级,没有struct的就下一个,下载命令和parallel的一样。

pkg install -forge struct

octave 并行_第1张图片
parallel包的介绍

可是这依旧有着下载失败的可能,原因也很简单,最初我安装octave的时候是这样安装的

yum install octave

但是我们还需要octave-devel,所以请没有安装的小伙伴安装一下,方法如下:

yum install octave-devel

这样我们就成功的安装好了parallel的包,如果你还没有安装好,那你就找其他的教程的,我就只遇到了这些问题(以我一向的经验,我遇到的问题一般都是最多的……)

安装好了下一步就是怎么用


octave 并行_第2张图片
并行用法

如果直接这么用,很可能你家可爱的octave告诉你没有parcellfun这个命令,所以第一步我们需要

pkg load parallel

在每一个octave的session中都加一句这个。

paracellfun的三个参数,第一个并行的数量,第二个要并行的函数,第三个,函数的参数。需要注意的是,参数需要是cell array

那么如何把普通数组转换为cell array呢?

C = num2cell(A, dim)

A是普通的数组,dim是分割的纬度,如果你想一一对应的话,直接写1就好了。

然后你就可以愉快的并行你的代码了,是不是很简单?虽然夏子要把自己蠢哭,整整一个下午都在弄这个,实在是资料太少QAQ

最后,温馨提示,如果并行的时候告诉你有什么unhandled error在在子进程中,记得看一看是不是你并行的函数当中有些参数在外面赋值,于是里面就直接未定义,然后就errror了。

你可能感兴趣的:(octave 并行)