问题标签 [distributed-algorithm]

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 投票
1 回答
48 浏览

parallel-processing - Julia Distributed 在添加进程时减慢到单核性能的一半

我有一个func在单核上运行时可能花费约 50 秒的功能。现在我想在一台多次获得 192 核 CPU 的服务器上运行它。但是当我添加工作进程时说,180,每个核心的性能都会变慢。最差的 CPU 需要大约 100 秒来计算func

有人能帮助我吗?

这是伪代码

时间几乎从 55s 线性增加到 100s。

我通过top命令检查了 CPU 使用率可能不是瓶颈(“id”保持 >2%)。RAM 使用率也一样(使用了约 20%)。

其他版本信息:Julia 版本 1.5.3 平台信息:操作系统:Linux (x86_64-pc-linux-gnu) CPU:Intel(R) Xeon(R) Platinum 9242 CPU @ 2.30GHz


更新:

  1. 替代func最小示例(简单的 for 循环)不会改变减速。
  2. 将进程数减少到 192/2 可以缓解减速

新的伪代码是

0 投票
0 回答
16 浏览

algorithm - 设计一个静默分布式泛洪算法

对于每个节点都有唯一ID的连通无向图,我想设计一个基于图的分布式算法,使每个节点都获得网络中所有节点的ID。此外,在这种算法下,每个节点都能够知道算法完成的时间,因此所有节点都可以在同一时间步初始化另一个分布式算法

让每个节点都得到所有节点的ID并不难,例如每个节点都可以实现泛洪算法。然后在D(图的直径)时间步长内,每个节点都会获得所有的 ID。这甚至可以以静默的方式完成,例如,每个节点实现泛洪算法,同时使用一个本地集,将它自己的 ID 和它的邻居的集合并集,并且一个节点将获得所有节点的 ID,一旦它的本地设置不变。

但是,上述算法并不能保证每个节点在同一时间步获得所有节点的ID(可能存在一轮差),因此不能在同一时间步初始化另一个分布式算法

有没有可以解决这个问题的分布式算法,或者有没有讨论过这个问题的论文?

非常感谢您的帮助!