标签: distributed

使用多台机器建造

我有一个庞大的Windows C++项目,需要花费大量的时间来编译.你知道是否有一些免费工具可以使用连接在一起的多台电脑构建?

你知道在使用GCC的Linux中是否有一些免费工具在做同样的事情吗?

至少我可以做些什么来自己分工?谢谢

c++ distributed building

8
推荐指数
1
解决办法
382
查看次数

如何创建分布式"去抖动"任务以消耗Redis列表?

我有以下用例:多个客户端推送到共享Redis列表.单独的工作进程应该排空此列表(处理和删除).Wait/multi-exec到位以确保,这很顺利.

出于性能原因,我不想立即调用'drain'进程,但是在x毫秒之后,从第一个客户端推送到(然后为空)列表的那一刻开始.

这类似于分布式下划线/ lodash 去抖动功能,计时器在第一个项目进入时开始运行(即:'领先'而不是'尾随')

我正在寻找以容错方式可靠地执行此操作的最佳方法.

目前我倾向于以下方法:

  1. 使用Redis的设置NXpx方法.这允许:
    • 仅将值(互斥锁)设置为专用键空间(如果尚不存在).这就是nx参数的用途
    • 在x毫秒后使密钥到期.这就是px参数的用途
  2. 1如果可以设置该值,则返回此命令,这意味着之前不存在任何值.0否则返回.A 1表示当前客户端是第一个运行该进程的客户端,因为Redis列表已耗尽.因此,
  3. 此客户端将作业放在分布式队列上,该队列计划在x毫秒内运行.
  4. 在x毫秒之后,接收作业的工作人员开始排空列表的过程.

这在纸上起作用,但感觉有点复杂.是否有其他方法可以以分布式容错方式工作?

顺便说一句:Redis和分布式队列已经到位,所以我不认为将它用于此问题是一个额外的负担.

queue distributed mutex redis debouncing

8
推荐指数
1
解决办法
1097
查看次数

分布式张量流如何工作?(tf.train.Server问题)

我对tensorflow的新选项有一些麻烦,它允许我们运行分布式张量流.

我只想运行2个tf.constant和2个任务,但我的代码永远不会结束.它看起来像那样:

import tensorflow as tf

cluster = tf.train.ClusterSpec({"local": ["localhost:2222", "localhost:2223"]})
server = tf.train.Server(cluster,
                        job_name="local",
                        task_index=0)

with tf.Session(server.target) as sess:
    with tf.device("/job:local/replica:0/task:0"):
        const1 = tf.constant("Hello I am the first constant")
    with tf.device("/job:local/replica:0/task:1"):
        const2 = tf.constant("Hello I am the second constant")
    print sess.run([const1, const2])
Run Code Online (Sandbox Code Playgroud)

我有以下代码(只有一个localhost:2222):

import tensorflow as tf

cluster = tf.train.ClusterSpec({"local": ["localhost:2222"]})
server = tf.train.Server(cluster,
                        job_name="local",
                        task_index=0)

with tf.Session(server.target) as sess:
    with tf.device("/job:local/replica:0/task:0"):
        const1 = tf.constant("Hello I am the first constant")
        const2 = tf.constant("Hello I am the second constant")
    print …
Run Code Online (Sandbox Code Playgroud)

python distributed cluster-computing server tensorflow

8
推荐指数
1
解决办法
1184
查看次数

在多个GPU上运行相同的模型,但是向每个GPU发送不同的用户数据

任何人都可以成功实现高效的数据并行,您可以将相同的模型定义发送到多个GPU,但是向每个GPU发送不同的用户数据?

看起来dist-keras可能很有希望.但我很乐意听到有关这些方面采取的任何方法的反馈.

我们有用户行为数据:100k用户,200个字段(单热矢量),每个用户30,000条记录.我们使用Keras在Tensorflow之上构建了一个RNN,以预测仅为1个用户采取的下一个行动(20多个可能的行动中).在1个GPU上训练需要大约30分钟.(我的盒子有8个GPU).现在,我们想为所有100k用户构建模型.

我们能够使用多GPU方法为单用户数据执行数据并行.

但由于该模型每个用户需要30分钟,并且有10万用户,我们希望按用户对数据进行分区,并使用群集以分布式方式为每个用户数据运行相同的模型,并为该用户生成模型输出.

我目前正在使用带有TensorFlow 1.4的Keras 2.1.x.

python distributed pyspark keras tensorflow

8
推荐指数
1
解决办法
661
查看次数

Git分布式源代码管理如何?

我是一个具有UNIX SCCS和Microsoft Visual SourceSafe经验的Git newbee.我只是在学习Git,它似乎有一个巨大而痛苦的学习曲线.我已经看到Git吹走了我没有提交的所有数据文件,这让我很担心.(实用程序如何在没有警告的情况下删除数据文件超出我的范围).

Linus Torvalds在他关于Git的视频中声称Git是分发的,吹嘘分发的好处,但除了拥有源代码副本(克隆)的人之外,并没有真正解释分发是如何工作的.

Git如何帮助分发?Git如何帮助恢复丢失的文件?Git发行如何运作?我可以找到分发文件的位置吗?有Git分发教程吗?

提前致谢!

git version-control distributed

7
推荐指数
1
解决办法
1340
查看次数

在分布式应用程序内管理会

我正在研究分布式Web应用程序,我们决定将Web模块与业务服务分开,以使其更具可扩展性.

情况就是这样:我们有一个服务器实例可以保存Web应用程序(控制器,JSP等)以及许多带有业务服务的服务器实例.如果Web应用程序需要任何数据,它会通过Hessian询问任何现有的业务服务器,然后得到响应并显示数据.

目前,我们根据登录用户从DB检索数据,但无法更改,因此每个服务器都应该知道要求哪个用户执行此任务.

我的问题是:您是否知道在多个独立应用程序中保持用户会话的解决方案?

例如,其中一个解决方案可以在每次请求时发送用户名,但这对我们来说不是一个好主意.

非常感谢

session distributed web-applications

7
推荐指数
1
解决办法
7170
查看次数

存储数百万个日志文件 - 每年约25 TB

作为我工作的一部分,我们每年获得大约25TB的日志文件,目前它是通过基于NFS的文件系统保存的.一些存档如zipped/tar.gz,而其他存档为纯文本格式.

我正在寻找使用基于NFS的系统的替代方案.我查看了MongoDB,CouchDB.它们是面向文档的数据库这一事实似乎使它成为合适的选择.但是,日志文件内容需要更改为JSON才能存储到数据库中.我不愿意做的事.我需要按原样保留日志文件内容.

至于用法,我们打算放置一个小的REST API,允许人们获取文件列表,最新文件和获取文件的能力.

提出的解决方案/想法需要是应用程序级别的某种形式的分布式数据库或文件系统,其中可以存储日志文件并且可以通过添加更多机器来有效地水平扩展.

ANKUR

storage distributed couchdb logfiles mongodb

7
推荐指数
1
解决办法
6294
查看次数

用于Java的通用分布式调度库

我正在寻找一些用于安排大量任务的通用库.该库必须能够跨群集中的节点分割任务,执行负载平衡和容错 - 因此,如果某个节点出现故障,则必须将节点的任务分布在其余节点上.

我查看了Hadoop - 但看起来它适用于map-reduce任务.在我的情况下,任务只是通知的发件人,对象状态的检查器等.

Quartz似乎很棒 - 但是当它归结为向节点分派事件时,它还不清楚它有多好.

还有其他选择吗?

java distributed schedule

7
推荐指数
1
解决办法
9116
查看次数

如何设计分布式作业调度程序?

我想设计一个作业调度程序集群,它包含几个要执行cron作业调度的主机.例如,需要的作业run every 5 minutes被提交到集群,集群应该指出下次运行要触发的主机,确保:

  1. 容灾:如果不是所有主机都关闭,则应该成功触发作业.
  2. 有效性:只有一个主机可以解雇下一个工作.

由于容灾,作业无法绑定到特定主机.一种方法是所有主机轮询数据库表(当然有锁),这保证只有一个主机获得下一个作业运行.由于它经常锁表,有没有更好的设计?

cron distributed system-design cron-task

7
推荐指数
2
解决办法
1万
查看次数

为什么Dask/Distributed工作中的计算速度要慢得多?

与在本地运行Dask/Distributed工作程序相比,我的计算运行速度要慢得多.我可以在没有任何I/O的情况下重现它,所以我可以排除它与传输数据有关.以下代码是一个最小的再现示例:

import time
import pandas as pd
import numpy as np
from dask.distributed import Client, LocalCluster


def gen_data(N=5000000):
    """ Dummy data generator """
    df = pd.DataFrame(index=range(N))
    for c in range(10):
        df[str(c)] = np.random.uniform(size=N)
    df["id"] = np.random.choice(range(100), size=len(df))
    return df


def do_something_on_df(df):
    """ Dummy computation that contains inplace mutations """
    for c in range(df.shape[1]):
        df[str(c)] = np.random.uniform(size=df.shape[0])
    return 42


def run_test():
    """ Test computation """
    df = gen_data()
    for key, group_df in df.groupby("id"):
        do_something_on_df(group_df)


class TimedContext(object):
    def __enter__(self):
        self.t1 = time.time() …
Run Code Online (Sandbox Code Playgroud)

python distributed dask

7
推荐指数
1
解决办法
1340
查看次数