问题标签 [parfor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
56 浏览

arrays - 来自单个索引的二维数组索引的总和

我正在尝试在 MATLAB 中创建一个并行循环来填充mxm矩阵,如下所示:

如果我没有这样做,parfor我只会这样做:

然而不幸parfor的是,它的体内不允许有其他索引,因此我不能做我想做的事。

我尝试通过使用来提取索引的总和,ceil(i/3) + mod(i,3)但这不起作用,因为i=3它给了我1而不是4我想要的。

有没有人有更好的方法来提取索引的总和?

0 投票
3 回答
273 浏览

matlab - MATLAB parfor 错误

我有一个使用 parfor 的 Matlab 函数,它是这样的:

sizeofsbestposition取决于 的值,i它是(1,31)wheni=1(1,38)when i=8;我打算将它们的值保留在一个变量中。

该功能正常工作[ sbestvalue(i) sbestposition(i,:)] = pso(lb, ub, s2, i+31, 30,1,2,2 );但是当我使用它时,由于尺寸不匹配错误,该功能将无法再次工作。

相反,这里它给出了一个错误

parfor 中的变量 sbestposition 无法分类

我该如何克服呢?

谢谢你。

0 投票
1 回答
708 浏览

matlab - Matlab中并行循环中的不同(伪)随机数

在并行循环中请求随机数总是返回相同的伪随机数。我怎样才能避免这种情况?

一种理想的解决方案是通过 CPU 时间或类似时间来初始化每个线程中的伪随机数生成器。像这样的rng('shuffle')事情似乎没有帮助......

控制台输出:

0 投票
1 回答
1793 浏览

image - 为什么我得到这个错误 parfor 中的变量无法分类

我正在尝试使用 parfor 来估计需要超过 96 秒的时间,并且我有不止一个图像要处理,但我收到了这个错误:

parfor 中的变量 B 无法分类

这是我写的代码:

任何想法?

0 投票
1 回答
2530 浏览

matlab - 在matlab中使用parfor未定义的函数或变量

我无法执行以下代码:

当我执行它时,我得到:

未定义的函数或变量“dic_signal”。

当它到达 extract_features 函数时。但是,在单线程版本中(使用 for 而不是 parfor)它可以正常工作。有人可以给我任何提示吗?谢谢你。

编辑: dic_signal 已定义并正确加载load(dictionary_path);

0 投票
1 回答
1882 浏览

matlab - parfor 单元阵列切片

使用时parfor使用单元格数组的 MATLAB 中使用时,我遇到了一个问题,我看不出与工作示例代码和我的错误线有任何区别!

数据的修改可以为每个工人独立完成,我想使用变量的切片,如MathWorks 博客中所示

我做了与示例中完全相同的一级索引,但 MATLAB 无法对其进行分类。

我希望删除某些行: 每行都有文件文件 与其他循环中的某些值(为简单起见未显示)进行比较的行。将为每个文件分配一个工作人员。

我不明白为什么它不应该工作!我考虑到的:

  • data将被修改,以便每个工人的修改不会对其他人产生交叉影响(删除的行只是实际工人数据的子集部分)
  • 切片索引必须在第一级完成 ( data{file,1})
  • 其他第一级索引变量将被视为常量/是常量,我使用“1”所以一切都很好。
  • 没有对稍后将在外部使用的变量进行 in-parloop 分配(甚至不是常量)
  • 没有行的测试data{file,1}(line,:)= []在没有 Matlab 警告的情况下运行。
  • 尝试了 MATLAB 静态代码分析器output = mlint('myFile.m'),但它没有向我显示任何有用的提示。

仅仅这一行就打破了一切。但我真的需要这个命令才能工作。任何提示/解决方法?

0 投票
0 回答
44 浏览

matlab - 拆分和评估 Matlab 矩阵 (parfor)

是否有任何解决方法来调整过程parfor而不是使用经典for.

我有一个大小为 10518300x8 的矩阵。

我需要的是:

  • 将矩阵拆分为 100 个 105183x8 矩阵
  • 做一些事情-> 输出 5 个不同的 100 个 105183x8 矩阵。
  • 将上面的 5 个矩阵连接成 5 个 10518300x8 矩阵。

我被禁止过度使用 for 循环(由于效率),除非绝对必要。Gunther Struyf解决了,使用for,像这样:

关于适应或寻找另一种使用方式的想法parfor

0 投票
1 回答
1574 浏览

matlab - 重置循环索引/重新启动循环 - MATLAB

我需要以 1000 个批次运行一个 for 循环。但是如果在第一次运行期间“cc”没有达到 100,我需要重新运行更多批次的 1000 个,直到 cc 达到 100。

我知道这可以使用while循环来完成,但是我需要使用并行工具箱parfor(很可能也是GPU),而且据我所知它不支持while循环。

本质上,我需要更改(重置)if 循环内的 for 循环索引。但是,显然 MATLAB 的 for 循环的设计使您无法在循环内更改其索引,在本例中为“i”。有没有解决的办法?必须有一种更聪明的方法来做到这一点,而无需使用 while 循环。有什么建议么?

0 投票
0 回答
1126 浏览

matlab - 使用matlabpool并行计算工具箱的lib svm网格搜索

我正在使用以下代码在 libsvm 上进行网格搜索:

为了提高速度,我可以选择并行计算工具箱或在 GPU 上运行它(尽管我认为第一个选项会更好,因为 GPU 擅长卷积等操作,在这种情况下并不那么重 - 请纠正我,如果我我错了。)

如何通过在并行计算工具箱上运行它来优化它?我是这个领域的初学者,因此需要一些关于如何实现 parfor 循环的输入。

编辑 可以使用matlabpool来完成吗?

谢谢

0 投票
0 回答
302 浏览

matlab - Matlabpool 导致 surf() 函数出现一些问题

我在 Matlab 中使用 parfor 时遇到问题。我在 parfor 循环中调用的函数内运行以下代码:

  • 如果我打开 matlabpool,程序会在saveas函数上崩溃;
  • 如果我不打开 matlabpool,一切正常;
  • 如果我对这两个surf电话都发表评论,那么即使 matlabpool 打开,一切都会运行良好。

我通常保存为 .pdf 格式,但如果我保存为.fig格式,一切正常。.fig 格式是唯一不会导致问题的格式。当然,我无法调试并行循环,因为打开 matlabpool 的 parfor 不允许进入,因此没有打开 matlabpool 我可以看到每个变量都很好。

我错过了什么吗?我在 parfor 循环中使用 surf 找不到任何已知问题。有太多奇怪的问题试图理解真正的问题在哪里,所以我问是否有人遇到过类似的问题。

UP:好的,这是一个导致错误的完成程序:

使用 distcomp.remoteparfor/getCompleteIntervals 时出错(第 22 行) parfor 正在使用的会话已关闭。

我的目标是保存Title.mat为 pdf 文件。当然 Title.mat 包含一致且正确的数据。每个线程都应该进入一个包含 .mat 文件的独占目录translate。如果我不打开游泳池,一切都会按预期进行。如果我以 .fig 格式保存,一切都会按预期进行。