octave 并行

作者: 夏子之夏 | 来源:发表于2017-12-04 21:42 被阅读0次

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

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

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

    pkg install -forge parallel

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

    pkg install -forge struct

    parallel包的介绍

    可是这依旧有着下载失败的可能,原因也很简单,最初我安装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了。

    相关文章

      网友评论

        本文标题:octave 并行

        本文链接:https://www.haomeiwen.com/subject/ofjfixtx.html