共享内存或得到工人的id访问

5视图(30天)
Chaitanya认可
Chaitanya认可 2018年5月8日
编辑: 助手 2018年5月11日
你好,我是新到并行计算工具箱使用parfor时,有以下问题。
目的:我想组装一个矩阵使用多线程进行有限元离散。
可能的方法:1。我计划使用parafor本地组件,然后总结当地所有的组件。(本地组件意味着一个线程的任务。)问题是我需要联系当地的条目全球条目和需要访问的每个线程的全局变量。我尝试以下不工作。
nnz = 2000;
线程= 4;
循环= nnz /线程;
一个= 0 (nnz, 1);
parfori = 1:4
b =我;
(循环(张)* + 1:循环* i) = b;
结束
2。另一种方法,是让手动为每个线程创建的所有数据结构。在每个线程做全球大会。然后把它们加起来。但是我需要线程id访问。我不知道如果这一切成为可能。
可以建议其他方法。提前谢谢。

答案(1)

助手
助手 2018年5月11日
编辑:助手 2018年5月11日
为什么第一种方法不工作的原因是“A”变量不是一个有效的切变量。变量在“parfor”有不同的含义。有关更多信息,请参考下面的文档链接:
还有另一个方法是使用“spmd”。所以我们可以:
spmd
(循环(labindex-1) * + 1:循环* labindex) = labindex;
结束
有关更多信息,请参考下面的文档链接关于“spmd”和“labindex”: spmd ; labindex

类别

找到更多的在并行for循环(parfor)帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!