如何在Octave或Scilab中使用并行'for'循环?

han*_*n17 7 parallel-processing matlab octave scilab

我在Matlab代码中运行了两个for循环.内部循环使用Matlabpool在12个处理器中进行并行化(这是Matlab在单个机器中允许的最大值).

我没有分布式计算许可证.请帮我使用Octave或Scilab如何做到这一点.我只想将'for'循环并行化.

当我在谷歌搜索它时,有一些断开的链接.

ede*_*rag 11

parfor还没有真正实现八度音阶.该关键字已被接受,但仅仅是for(http://octave.1599824.n4.nabble.com/Parfor-td4630575.html)的同义词.

的pararrayfun和parcellfun平行的封装的功能是在多核机器上方便.它们通常是parfor循环的良好替代品.

有关示例,请参阅 http://wiki.octave.org/Parallel_package.要安装,发行(只需一次)

pkg install -forge parallel
Run Code Online (Sandbox Code Playgroud)

然后,每次会议一次

pkg load parallel
Run Code Online (Sandbox Code Playgroud)

在使用这些功能之前


jul*_*ohm 0

在 GNU Octave 中,您可以使用以下parfor结构:

parfor i=1:10
    # do stuff that may run in parallel
endparfor
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息:help parfor

  • @hpaulj 从 Octave 3.8.1 开始,parfor 关键字只是被识别,没有任何实际的并行化。更多细节在我的回答中 (4认同)