问题标签 [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.
arrays - 来自单个索引的二维数组索引的总和
我正在尝试在 MATLAB 中创建一个并行循环来填充m
xm
矩阵,如下所示:
如果我没有这样做,parfor
我只会这样做:
然而不幸parfor
的是,它的体内不允许有其他索引,因此我不能做我想做的事。
我尝试通过使用来提取索引的总和,ceil(i/3) + mod(i,3)
但这不起作用,因为i=3
它给了我1
而不是4
我想要的。
有没有人有更好的方法来提取索引的总和?
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 无法分类
我该如何克服呢?
谢谢你。
matlab - Matlab中并行循环中的不同(伪)随机数
在并行循环中请求随机数总是返回相同的伪随机数。我怎样才能避免这种情况?
一种理想的解决方案是通过 CPU 时间或类似时间来初始化每个线程中的伪随机数生成器。像这样的rng('shuffle')
事情似乎没有帮助......
控制台输出:
image - 为什么我得到这个错误 parfor 中的变量无法分类
我正在尝试使用 parfor 来估计需要超过 96 秒的时间,并且我有不止一个图像要处理,但我收到了这个错误:
parfor 中的变量 B 无法分类
这是我写的代码:
任何想法?
matlab - 在matlab中使用parfor未定义的函数或变量
我无法执行以下代码:
当我执行它时,我得到:
未定义的函数或变量“dic_signal”。
当它到达 extract_features 函数时。但是,在单线程版本中(使用 for 而不是 parfor)它可以正常工作。有人可以给我任何提示吗?谢谢你。
编辑: dic_signal 已定义并正确加载load(dictionary_path);
matlab - parfor 单元阵列切片
使用时parfor
使用单元格数组的 MATLAB 中使用时,我遇到了一个问题,我看不出与工作示例代码和我的错误线有任何区别!
数据的修改可以为每个工人独立完成,我想使用变量的切片,如MathWorks 博客中所示
我做了与示例中完全相同的一级索引,但 MATLAB 无法对其进行分类。
我希望删除某些行: 每行都有文件文件 与其他循环中的某些值(为简单起见未显示)进行比较的行。将为每个文件分配一个工作人员。
我不明白为什么它不应该工作!我考虑到的:
data
将被修改,以便每个工人的修改不会对其他人产生交叉影响(删除的行只是实际工人数据的子集部分)- 切片索引必须在第一级完成 (
data{file,1}
) - 其他第一级索引变量将被视为常量/是常量,我使用“1”所以一切都很好。
- 没有对稍后将在外部使用的变量进行 in-parloop 分配(甚至不是常量)
- 没有行的测试
data{file,1}(line,:)= []
在没有 Matlab 警告的情况下运行。 - 尝试了 MATLAB 静态代码分析器
output = mlint('myFile.m')
,但它没有向我显示任何有用的提示。
仅仅这一行就打破了一切。但我真的需要这个命令才能工作。任何提示/解决方法?
matlab - 拆分和评估 Matlab 矩阵 (parfor)
是否有任何解决方法来调整此过程parfor
而不是使用经典for
.
我有一个大小为 10518300x8 的矩阵。
我需要的是:
- 将矩阵拆分为 100 个 105183x8 矩阵
- 做一些事情-> 输出 5 个不同的 100 个 105183x8 矩阵。
- 将上面的 5 个矩阵连接成 5 个 10518300x8 矩阵。
我被禁止过度使用 for 循环(由于效率),除非绝对必要。Gunther Struyf解决了,使用for
,像这样:
关于适应或寻找另一种使用方式的想法parfor
?
matlab - 重置循环索引/重新启动循环 - MATLAB
我需要以 1000 个批次运行一个 for 循环。但是如果在第一次运行期间“cc”没有达到 100,我需要重新运行更多批次的 1000 个,直到 cc 达到 100。
我知道这可以使用while循环来完成,但是我需要使用并行工具箱parfor
(很可能也是GPU),而且据我所知它不支持while循环。
本质上,我需要更改(重置)if 循环内的 for 循环索引。但是,显然 MATLAB 的 for 循环的设计使您无法在循环内更改其索引,在本例中为“i”。有没有解决的办法?必须有一种更聪明的方法来做到这一点,而无需使用 while 循环。有什么建议么?
matlab - 使用matlabpool并行计算工具箱的lib svm网格搜索
我正在使用以下代码在 libsvm 上进行网格搜索:
为了提高速度,我可以选择并行计算工具箱或在 GPU 上运行它(尽管我认为第一个选项会更好,因为 GPU 擅长卷积等操作,在这种情况下并不那么重 - 请纠正我,如果我我错了。)
如何通过在并行计算工具箱上运行它来优化它?我是这个领域的初学者,因此需要一些关于如何实现 parfor 循环的输入。
编辑 可以使用matlabpool来完成吗?
谢谢
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 格式保存,一切都会按预期进行。