问题标签 [spmd]

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 投票
0 回答
78 浏览

matlab - 使用 codistributed/subsasgn 时出错(第 131 行)分配的非单一 rhs 维度比非单一下标多

我正在并行运行我的代码,我的本地配置文件有两个核心。此代码是隐马尔可夫模型中的前向算法。我的代码在这里:

and的结果elnsum和只是类型中的一个值。elnproductelndouble

我得到这个错误:

使用 forward_algo>(spmd) 时出错(第 45 行)
在工作人员 1 上检测到
错误 2. forward_algo 中的错误(第 45 行)spmd

看起来我并没有尝试将多个值分配到一个左手位置以导致Assignment has more non-singleton rhs dimensions than non-singleton subscripts错误。有人可以帮忙吗?

谢谢你

0 投票
1 回答
285 浏览

matlab - 在 spmd 块内使用 parfor 时出错 - matlab

正如我所知道的 Matlab 中的并行编程,我们可以准确地指定什么工人做什么;使用 :

我们也可以并行运行for循环;使用 :

我正在使用一个有几个节点的集群,每个节点有 8 个核心。
我想运行 2 个函数,每个函数都包含一个parfor循环,每个函数都由一个 worker 执行,我的代码是这样的:

我希望这 2 个函数由 2 个不同的节点同时执行。但 Matlab 抛出此错误:

为什么呢?任何想法?

0 投票
1 回答
180 浏览

matlab - 为什么 SPMD 运行时间大于顺序 - matlab

我曾经spmd同时计算两段代码。我正在使用的计算机有一个 8 核处理器。这意味着通信开销几乎为零!
我比较了这个块的运行时间和在withspmd之外的相同代码。 当我运行代码时,我的代码的并行版本比顺序形式花费更多时间。 知道为什么会这样吗? 这是我正在谈论的示例代码:spmdtic & toc


0 投票
1 回答
27 浏览

matlab - 如何在 spmd 块中的工作人员之间分配向量

我在 for 循环中有一个 spmd 块。我需要一个名为 Aa 的 2*9 向量分布在三个或更多工作人员之间,执行一些计算,结果生成的矩阵和向量很少。然后将每个工人和所有工人的矩阵连接在一起。结果矩阵和向量被转换为双精度并启动一个新的 spmd 块。运行代码时显示错误“下标分配维度不匹配”。我可以增加工人的数量吗?这是代码的一部分:

先感谢您

0 投票
0 回答
44 浏览

matlab - creatjob 的作业数量,每个作业有 25 个工作人员读取数据和写入结果

我正在使用带有附加工具箱的 MATLAB 2017a,即图像处理、统计、并行处理和集群计算,并获得 300 名工人的许可证。操作系统是 Windows server 2012 R2,每 25 个工作人员有 1 TB 内存。

为了测试,我打开了 10 个 MATLAB 会话,就好像在一个 HPC 中心有 10 位不同的研究人员一样,并且spmd每个有 25 名工人使用。spmd在分配 25 个 3-band ortho-rect 之后,语句被策略性地放置。图像到单个 4-dim 数组。第一条spmd...end语句是为 25 个工作人员创建分布式数组和本地部件,第二条spmd...end语句用于建模。最后,从复合变量中提取结果并写入磁盘。

问题:这个问题意味着这 10 名研究人员被分配到其他项目,而一名研究人员必须继续。开 10 次 Matlab 会很麻烦,因为每次会话只能打开一个 parpool。使用 createjob,您可以创建一个具有 300 个工作人员的完整大小的 mjs,并且每个工作都可以访问下一个可用的 25 个工作人员。

0 投票
0 回答
146 浏览

maven - 无法解析项目 spmf ca.pfv pom.xml 的依赖关系

我正在开发使用多个挖掘依赖项的开源 maven 项目。将此命令写入组件后,mvn clean install我在 pom.xml 文件中出现错误,在此处输入 spmf 版本错误的代码。

完整错误:

omponents-spmanalysis:无法解析项目 info.collide:components-spmanalysis:jar:2.0.0-SNAPSHOT 的依赖关系:找不到 ca.pfv:spmf:jar:2.33

我尝试在 maven 安装时使用不同的版本但同样的错误。

0 投票
0 回答
58 浏览

matlab - 如何让 matlab 按生成顺序显示来自每个工作人员的消息

我的应用程序启动了 2 个工作人员,这些工作人员用它们在屏幕上打印东西disp

问题是我需要等待工人 1 完全完成,然后才能看到工人 2 的输出。Matlab 将每个 Lab 的输出分开,它只在显示完输出后才显示 Lab 2 的输出实验室 1。

我想按显示顺序查看每个工作人员显示的消息。在这种情况下,输出应如下所示:

我怎样才能做到这一点?我无法使用交互式并行命令窗口,因为我在终端上使用 matlab,并且必须使用 matlab R2014a。

0 投票
1 回答
215 浏览

matlab - 如何在 MATLAB 中的 SPMD 期间保存中间迭代?

我正在试验 MATLAB SPDM。但是,我有以下问题需要解决:

  • 我正在运行一个很长的算法,我想保存一路上的进度,以防断电、有人拔掉电源插头或内存错误。
  • 该循环有 144 次迭代,每次大约需要 30 分钟才能完成 => 72 小时。在这段时间里可能会出现很多问题。当然,我的机器上有分布式计算工具箱。计算机有 4 个物理内核。我运行 MATLAB R2016a。
  • 我真的不想使用 parfor 循环,因为我连接结果并且在迭代之间具有依赖性。我认为 SPMD 是我想做的最好的选择。

我将尽我所能描述我想要的: 我希望能够在循环的一组迭代中保存到目前为止的结果,并且我想通过 worker 保存结果。

下面是一个最小(非)工作示例。最后四行应放在不同的 .m 文件中。此函数在 parfor 循环中调用,允许保存中间迭代。它在我使用的其他例程中正常工作。错误在第 45 行 ( output_save)。不知何故,我想将复合对象“拉”成“常规”对象(单元格/结构)。

我的预感是我不太了解复合对象是如何工作的,尤其是如何将它们保存到“常规”对象(单元格、结构等)中。

0 投票
1 回答
251 浏览

matlab - 如何对不同的输入变量使用 SPMD 并按顺序保存输出?

我正在使用模拟退火算法来优化我的问题,我必须为 100 个不同的输入变量执行此操作,并按顺序保存所有变量的输出。问题是我不知道如何spmd在我的代码中实现并行计算,以便每个输入都在一个 CPU 内核上运行,最终结果存储在一个 100 行的矩阵中。我试图把它放在第一个 for 循环之前,但它只返回一个由 4 个元素组成的组合,因为我的 CPU 有 4 个内核。这是我的代码

0 投票
2 回答
1590 浏览

mpi - 我可以使用 mpiexec 为可执行文件每次使用不同的命令行参数运行相同的可执行文件吗?

我是分布式操作系统的新手。而且我需要用超级计算机训练多个机器学习模型。我需要多次运行相同的训练脚本,并且每次运行都使用不同的命令行参数传递脚本。我可以通过使用 mpiexec 来实现这一点,以便我可以使用不同的输入并行训练多个模型吗?

我找到了mpi的单程序多数据模型,但我不知道对应的命令。

我想在集群中的计算节点之间并行运行以下行。

但是,如果我使用:

它只会使用相同的命令行参数运行 train.py:arg 并行多次。

有人可以指出正确的方法吗?谢谢!