- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我不熟悉 matlab 中的并行计算。我有一个创建分类器 (SVM) 的函数,我想用几个数据集测试它。我有一个 2 核工作站,所以我想并行运行测试。有人可以向我解释以下两者之间的区别:
dataset_array={dataset1, dataset2}
matlabpool open 2
spmd
my_function(dataset(labindex));
end
和
dataset_array={dataset1, dataset2}
matlabpool open 2
parfor i:1=2
my_function(dataset(i));
end
最佳答案
spmd 是一个并行区域,而 parfor 是一个并行 for 循环。不同之处在于,在 spmd 区域中,当涉及到可以并行执行的任务时,您具有更大的灵 active 。你可以写一个 for 循环,你可以对分布式数组和向量进行操作。您可以对整个工作流程进行编程,该工作流程通常由多个循环组成。这是有代价的:您需要了解更多有关在线程之间分配工作和数据的信息。例如,并行化循环需要在工作人员之间明确划分循环索引范围(您在代码中使用 labindex 进行了此操作),并可能创建分布式数组。
另一方面,parfor 仅执行此操作 - 并行化的 for 循环。自动并行化,您可以添加,因此工作由 MATLAB 在 worker 之间分配。
如果您只想并行运行一个循环,然后在您的本地客户端上处理结果,您应该使用 parfor。如果您想并行化整个 MATLAB 程序,您将不得不处理 spmd 和工作分配的复杂性。
关于matlab - SPMD 与 Parfor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12385534/
我不熟悉 matlab 中的并行计算。我有一个创建分类器 (SVM) 的函数,我想用几个数据集测试它。我有一个 2 核工作站,所以我想并行运行测试。有人可以向我解释以下两者之间的区别: datase
我就是不明白他们之间有什么区别...... SPMD 是编程级别的,SIMD 是硬件级别的吗? 例子会很好! 谢谢 最佳答案 SIMD 是指令级的向量化——每条 CPU 指令处理多个数据元素。 SPM
我正在做一个非常大的计算(大气吸收),其中有很多单独的窄峰,最后所有这些峰都加起来了。对于每个峰,我已经预先计算了峰形函数值高于我选择的阈值的范围,然后我逐行将峰添加到我的光谱中。下面给出了一个最小示
我正在尝试使用 spmd 中第三方 Java 库中的类,但我不断收到与导入它相关的各种错误。 这是一个相当简单的示例: spmd (1) javaaddpath([pwd 'lib/guava
我正在使用 matlab2011 进行多核并行计算,这在我的代码中只是通过 block SPMD END 实现的。但是,有些时候,我想根据输入参数关闭程序中的spmd。我尝试了以下代码,但它不起作用
我是一名优秀的程序员,十分优秀!