标签: distributed-computing

在分布式系统中学习有关通信更新的算法的最佳论文是什么?

我有一个分布式系统(单个数据中心中的多个节点),我想要具有以下属性:

  • 节点可以随时进入和离开系统.
    • 节点之间没有数据复制.
    • 客户端使用哪个节点取决于客户端(即它可以是一致的散列,也可能是其他节点)
  • 没有主人(即没有中心点的失败)
  • 每个节点可以接收需要转发到其余节点的一条信息

什么算法(最适合论文的链接)适合这个?

(我假设一些答案将包括P2P算法,但我过去遇到的大部分答案都更像是分布式哈希表,其中节点进入并接管键空间的某些部分,等等.我也认识到使用简单UDP消息进行多播可能是合适的,但现有的工作有助于使消息传递可靠吗?)

p2p shared-nothing distributed-computing distributed-system

5
推荐指数
1
解决办法
374
查看次数

Erlang/Scala将Actor从一个节点迁移到另一个节点

我在Actor Oriented Programming中使用一种名为SALSA的语言,让演员从一台机器移动到另一台机器.

我想知道这是否可以使用Scala或Erlang完成,它们是两种面向Actor的编程语言,它们背后有更多的动力.

如果这些语言中的任何一种都支持此功能,请您指出一些参考如何实现此类功能的材料?

erlang scala distributed-computing actor

5
推荐指数
1
解决办法
328
查看次数

Celery:长期专用的整体任务与短多项任务

在我的解决方案中,我使用分布式任务来监视硬件实例一段时间(比如10分钟).我必须做一些事情:

  • 我开始这个监控会议
  • 我完成了这个监控会话
  • (可能)在监测会议期间

在整个会话(10分钟)内运行单个任务并执行所有这些任务是否安全,还是应该将这些操作拆分为自己的任务?

正如我所看到的,单个任务的优点是管理和实施时序约束会更容易.但:

运行大量(大多数)睡着的工人是不是一个好主意?例如,如果我知道最多会打开200个会话,我会有500名工作人员,以确保总有可用的"会话"席位?

python distributed-computing rabbitmq celery django-celery

5
推荐指数
1
解决办法
988
查看次数

为什么Matlab 2014a/b中的TreeBagger只使用并行池中的少数工作者?

我正在使用TreeBaggerMatlab(R2014a&b)提供的类,与分布式计算工具箱一起使用.我local在拥有40个内核的Windows 7计算机上运行了一个有30名工作人员的集群.

我调用TreeBagger构造函数来生成一个回归林(一个包含32个树的集合),传递一个set为的options结构.'UseParallel''always'

但是,TreeBagger似乎只使用了可用的30个左右的工作者(根据每个进程的CPU使用情况来判断,使用任务管理器观察).当我尝试使用简单的parfor循环测试池时:

parfor i=1:30
    a = fft(rand(20000));
end
Run Code Online (Sandbox Code Playgroud)

然后所有30名工人都参与其中.

我的问题是:(如何)我可以强制TreeBagger使用所有可用资源?

parallel-processing matlab distributed-computing random-forest

5
推荐指数
1
解决办法
453
查看次数

SparkContext在配对对象中不可序列化

我目前正在尝试扩展使用Scala和Spark的机器学习应用程序.我正在使用我在Github上发现的Dieterich Lawson先前项目的结构

https://github.com/dieterichlawson/admm

该项目基本上使用SparkContext构建训练样本块的RDD,然后对每个集合执行局部计算(例如求解线性系统).

我遵循相同的方案,但对于我的本地计算,我需要在每个训练样本块上执行L-BFGS算法.为了做到这一点,我想使用mlLib中的L-BFGS算法,该算法具有以下特征.

runLBFGS(RDD<scala.Tuple2<Object,Vector>> data, Gradient gradient, 
         Updater updater, int numCorrections, double convergenceTol, 
         int maxNumIterations, double regParam, Vector initialWeights)
Run Code Online (Sandbox Code Playgroud)

如上所述,该方法将训练样本的RDD [Object,Vector]作为输入.问题是在每个工作者本地我不再保留数据的RDD结构.因此,我正在尝试在矩阵的每个块上使用SparkContext的并行化功能.但是当我这样做时,我得到了一个序列化器异常.(确切的异常消息在问题的最后).

这是我如何处理SparkContext的详细解释.

首先,在主应用程序中,它用于打开文本文件,它在LogRegressionXUpdate类的工厂中使用:

val A = sc.textFile("ds1.csv")
A.checkpoint
val f = LogRegressionXUpdate.fromTextFile(A,params.rho,1024,sc)
Run Code Online (Sandbox Code Playgroud)

在应用程序中,LogRegressionXUpdate类实现如下

class LogRegressionXUpdate(val training: RDD[(Double, NV)],
                           val rho: Double) extends Function1[BDV[Double],Double] with Prox  with Serializable{

def prox(x: BDV[Double], rho: Double): BDV[Double] = {
    val numCorrections = 10
    val convergenceTol = 1e-4
    val maxNumIterations = 20
    val regParam = 0.1
    val (weights, loss) = LBFGS.runLBFGS(
        training,
        new …
Run Code Online (Sandbox Code Playgroud)

serialization scala distributed-computing apache-spark

5
推荐指数
1
解决办法
5880
查看次数

COMPS中的去同步跟踪

我使用COMPS 1.4生成了执行的痕迹.我注意到一些具有数据依赖关系的任务在tracefile中重叠.这不应该是不可能的.我还检查了依赖图,它们似乎是正确的.

我按照以下说明安装了COMPS:

/sf/answers/2699774941/

我可以做些什么来同步跟踪?我应该尝试手动同步不同机器的时钟吗?

trace synchronization hpc distributed-computing compss

5
推荐指数
1
解决办法
42
查看次数

Spark 2.0内存分数

我正在使用Spark 2.0,这项工作首先是对输入数据进行排序并将其输出存储在HDFS上.

我遇到了内存错误,解决方案是将"spark.shuffle.memoryFraction"的值从0.2增加到0.8,这解决了这个问题.但是在文档中我发现这是一个弃用的参数.

据我所知,它被"spark.memory.fraction"取代.如何在考虑HDFS的排序和存储的同时修改此参数?

memory distributed-computing out-of-memory apache-spark apache-spark-2.0

5
推荐指数
1
解决办法
5993
查看次数

对火花RDD容错的误解

很多人说:

Spark不会在hdfs中复制数据.

Spark在DAG图中安排操作.Spark构建RDD谱系.如果RDD丢失,可以在谱系图的帮助下重建它们.因此不需要数据复制,因为可以从谱系图重新计算RDDS.

我的问题是:

如果一个节点出现故障,spark将只重新计算在该节点上丢失的RDD分区,但重新计算过程中所需的数据源来自何处?你的意思是它的父RDD在节点出现故障时仍然存在吗?如果失去一些分区的RDD没有父RDD(如RDD来自火花流接收器)怎么办?

fault-tolerance distributed-computing apache-spark spark-streaming rdd

5
推荐指数
1
解决办法
276
查看次数

无法使用Keras中的multi_gpu_model之后的model.save保存模型

升级到Keras 2.0.9之后,我一直在使用该multi_gpu_model实用程序,但我无法保存我的模型或最佳权重

model.save('path')
Run Code Online (Sandbox Code Playgroud)

我得到的错误是

TypeError:无法pickle模块对象

我怀疑获取模型对象的访问权存在一些问题.有没有解决这个问题的工作?

distributed-computing multi-gpu keras tensorflow keras-2

5
推荐指数
2
解决办法
5510
查看次数

黄昏:延迟与期货和任务图生成

关于Dask,我有几个基本问​​题:

  1. 当我想使用dask进行分布式计算时(即在集群上),必须使用Futures是否正确?
  2. 在那种情况下,即在使用期货时,任务图仍然是推理计算的方式。如果是,我如何创建它们。
  3. 我通常如何才能获得与任务图相关联的字典?

作为编辑:我的应用程序是我想在我的本地计算机或群集上并行化一个for循环(即它应该在群集上工作)。

作为第二个编辑:关于期货和延迟计算之间的关系,我想我也不太清楚。

谢谢

python distributed-computing dask

5
推荐指数
1
解决办法
310
查看次数