我想知道是否有人知道任何好的开源分布式计算项目?我有一个计算密集型程序,可以从分布式计算中受益(如 SETI@Home 等),并且想知道是否有人见过这样的东西,或者我会从头开始开发它吗?
使用分布式 Erlang 在所有节点之间创建一个网状网络,但它不能很好地扩展到数百个节点。riak-core 如何处理这个问题?
它不使用分布式Erlang(设置-connect_all = false并使用自定义协议在riak节点之间进行通信)吗?粗略地看一下代码,他们似乎并没有这样做。
我想运行多个指向一个公共持久作业数据库的 APScheduler 实例。可以这样跑吗??我还意味着数据库中的作业在调度程序实例之间共享,并且在某一时刻只有一个实例执行调度作业。
目前,我们有一个 Maven 项目,有几千个测试,需要 2 个小时才能运行。
我们尝试并行运行这些测试,但由于它们是功能测试,每个测试都以特定的方式配置系统,这会导致竞争条件和随机测试失败。
我想在 AWS 上启动 N 个服务器,然后让 Maven 将我的测试分开,并在这些服务器上运行它们(每个服务器将按顺序运行其测试,但所有服务器将并行运行),然后汇总结果。
有没有什么插件可以做这样的事情?
我已经看到了一些与我想要在 Jenkins 中实现的东西很接近的东西,但我更喜欢它是 Maven 驱动的,这样开发人员就可以在本地使用它,而无需安装 Jenkins。
我在 SQS 队列中有一批n消息和一些工作人员。这些工作人员从队列中获取消息,对其进行处理,如果成功则将其删除。当所有工人完成这批工作后n消息后,我想执行一项附加操作。唯一的问题是确定批次何时完成。
一种方法是检查队列是否为空。当我查看 SQS API 时,唯一看起来接近的是ApproximateNumberOfMessages您从GetQueueAttributes. 然而,“大约”这个词表明它实际上并不是我想要的,它的目的更多的是根据队列中大约有多少消息来增加和减少工作人员的数量。
实现我想要的目标的标准方法是什么?或者 SQS 不适合这个目的?
我正在尝试使用tf.distribute.MirroredStrategy(). 虽然训练循环在单个 GPU 上完美运行,ValueError: 'handle' is not available outside the replica context or a 'tf.distribute.Strategy.update()' call但当我尝试使用多个 GPU 时会抛出错误。我正在使用 tensorflow 1.14 和 Python 3.7.3。
我在下面尝试了一个最小的例子。自定义训练循环在单个 GPU 上运行没有问题,但我尝试使用tf.distribute.MirroredStrategy()多个 GPU 失败并显示错误消息(完整输出)
ValueError Traceback (most recent call last)
<ipython-input-11-3fda5d330457> in <module>
1 with mirrored_strategy.scope():
----> 2 model, train_op, X1_in, X2_in = create_model_and_train_op()
3 with tf.Session() as sess:
4 sess.run(tf.global_variables_initializer())
5 for sample_ind in range(n_samples):
<ipython-input-7-8f5b3971bbe2> in create_model_and_train_op()
6
7 model = Model(name='BNN',inputs=[X1_in,X2_in], outputs=[loss])
----> 8 train_op = tf.train.AdamOptimizer().minimize(loss) …Run Code Online (Sandbox Code Playgroud) 我正在使用 kubernetes 中的 JDBC sink 连接器构建 Kafka-connect 应用程序。我尝试了独立模式,它正在工作。我想转向分布式模式。我可以通过运行下面的 yaml 文件成功构建两个 pod(kafka 连接器):
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
namespace: vtq
name: kafka-sink-postgres-dis
spec:
replicas: 2
template:
metadata:
labels:
app: kafka-sink-postgres-dis
spec:
containers:
- name: kafka-sink-postgres-dis
image: ***
imagePullPolicy: Always
Run Code Online (Sandbox Code Playgroud)
bin/connect-distributed.sh config/worker.properties
bootstrap.servers=***:9092
offset.flush.interval.ms=10000
rest.port=8083
rest.host.name=127.0.0.1
key.converter=org.apache.kafka.connect.storage.StringConverter
value.converter=io.confluent.connect.avro.AvroConverter
value.converter.schema.registry.url=http://schema-registry:8081
# Prevent the connector from pulling all historical messages
auto.offset.reset=latest
# options below may be required for distributed mode
# unique name for the cluster, used in forming the Connect cluster group. Note …Run Code Online (Sandbox Code Playgroud) 有一些关于分布式系统的资源,比如mongo db 文档,它推荐集群中的奇数节点。
拥有奇数个节点有什么好处?
我知道 git 使用版本控制来跟踪文件。而且它也是分布式的,这意味着不止一台计算机存储相关文件。但我怀疑 git 是分布式的还是去中心化的?如果是去中心化的,那为什么还需要github、gitlab呢?使用 Github 和 Gitlab 使其分布式(一个主多个从节点)对吗?因为,我们有一个 master(如 github),客户(合作者)依赖于它。但是 git 利用了区块链(各种)技术,这让我认为 git 是去中心化的,因为所有区块链技术应用程序,如比特币、以太坊都是去中心化的。与比特币不同,git 中的节点之间没有点对点通信,这与区块链的去中心化性质相矛盾。我们需要 github 来与其他节点通信,或者如果我们要与其他节点协作。
distributed ×10
amazon-sqs ×1
apscheduler ×1
build ×1
cloud ×1
erlang ×1
git ×1
github ×1
keras ×1
maven ×1
python ×1
python-2.7 ×1
riak ×1
scheduler ×1
snapshot ×1
tensorflow ×1