标签: distributed

使用进程内Java RMI注册表时如何很好地关闭

案件

我在服务器进程中使用进程内* Java RMI 注册表。

我在注册表中绑定了 1 个对象。

我的客户端进程连接并查找绑定和传递的远程对象。

现在我希望服务器进程完全关闭,即不应存在更多守护线程。使用 RMI,我在服务器进程中的一个对象上调用“close”,问题是这个“close”方法实际上必须做什么。

问题

如何确保使用 RMI 导出对象的进程中没有运行非守护线程?

据我所知,我必须取消导出**所有导出的对象才能关闭 JVM?由于许多对象已通过 RMI 传递,因此我必须维护这组对象并取消导出**每个对象。

我读过任何导出的对象在垃圾收集时都应该取消导出自身(现在找不到引用),但我的经验告诉我,某些对象(尤其是分布的?)可能需要很长时间才能被垃圾收集,所以这是不是一个真正的选择。

* 使用LocateRegistry创建 ** Unexport 使用UnicastRemoteObject
执行

java client distributed rmi server

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

从 .h5 文件加载 keras (tensorflow) 模型

我将在 Keras 中训练的模型保存为 .h5 文件。当尝试在分布式设置中加载它时,我收到错误:

InvalidArgumentError(请参阅上面的回溯):无法将设备分配给节点“policy/dense_2_b”:无法满足显式设备规范“/job:ps/task:0”,因为在此过程中没有注册与该规范匹配的设备;可用设备:/job:localhost/replica:0/task:0/cpu:0

似乎 .h5 文件中的变量以某种方式分配给具有作业“localhost”的特定设备。因此,当我尝试将其加载到参数服务器上时,我收到错误。

有人能澄清如何解决这个问题吗?我可能应该首先加载 keras 模型而不启动服务器,然后在参数服务器上重新加载它。但细节我不清楚..

distributed keras tensorflow

5
推荐指数
0
解决办法
724
查看次数

tf.estimator:分布式评估

我有一个 TensorFlow 集群,能够对我的模型执行分布式训练。我使用tf.estimatortf.estimator.train_and_evaluate以及配置的TF_CONFIG

虽然我可以使用以下命令在任意机器上进行评估evaluator,但评估仍然只发生在机器上。因此,我的训练非常快,因为它是在多台机器上进行的,而评估却很慢。

在训练过程中是否可以将评估分布在多台机器上?

非常感谢你的回答。

python distributed tensorflow

5
推荐指数
0
解决办法
839
查看次数

如何使用“loc”在 dask 中选择数据框的列

任何人都可以告诉我如何使用 dask 在数据框中选择带有“loc”的一列?

作为旁注,当我使用 dd.read_csv 加载数据帧时,标题等于“None”,列名称从零开始到 131094。我即将选择列名称为 131094 的最后一列,我得到错误。

代码:

> import dask.dataframe as dd
> df = dd.read_csv('filename.csv', header=None)
> y = df.loc['131094']
Run Code Online (Sandbox Code Playgroud)

错误:

文件“/usr/local/dask-2018-08-22/lib/python2.7/site-packages/dask-0.5.0-py2.7.egg/dask/dataframe/core.py”,第180行,位于_loc“无法在没有已知分区的情况下在 DataFrame 上使用 loc”)ValueError:无法在没有已知分区的情况下在 DataFrame 上使用 loc

根据此指南http://dask.pydata.org/en/latest/dataframe-indexing.html#positional-indexing,我的代码应该可以正常工作,但不知道是什么导致了问题。

python distributed dataframe pandas dask

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

RPC 和 RMI 有什么区别?

目前正在阅读有关 RPC 和 RMI 的内容,我对它们之间的区别有点困惑。

在实现 RMI 和 gRPC 等时,语法基本相同。

它们都有确定方法参数和响应的接口。

它们都可以发送参数中的对象(Java RMI 本地执行此操作,C# gRPC 使用 proto)。

它们都通过某个对象上的方法调用(基于接口)来执行对服务器的请求。

那么区别是什么呢?客户端和服务器之间的数据传输过程是如何发生的?

从表面上看,RMI只是RPC的Java实现,而gRPC是C#实现。

rpc distributed rmi distributed-system

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

2PC(2 阶段提交)和 2 PL(2 阶段锁定)之间的区别

两者有什么区别?表面上的协议看起来不同,但我想了解两者之间真正的不同之处以及为什么它们不等效。

database distributed paxos two-phase-commit

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

包设置不会传播到分布式的工作人员

信息:

$ julia --version
julia version 1.6.0
$ lscpu
~/root/MyPackage$ lscpu
Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   39 bits physical, 48 bits virtual
CPU(s):                          4
On-line CPU(s) list:             0-3
Thread(s) per core:              1
Core(s) per socket:              4
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       GenuineIntel
CPU family:                      6
Model:                           158
Model name:                      Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
...

Run Code Online (Sandbox Code Playgroud)

假设我想要以下包结构,并且想要使用 ReTest 的并行测试(我的问题似乎是代码加载在分布式中的工作方式,因此这实际上并不是 ReTest 特定的问题)。

| root/
    | MyPackage/
        | Project.toml
        | Manifest.toml
        | src/ …
Run Code Online (Sandbox Code Playgroud)

distributed loading include julia

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

这是分布式机制的现实期望吗?

我一直在评估ActiveMQ作为候选消息代理.我编写了一些测试代码,试图了解ActiveMQ的性能限制.

我可以通过尽快发送消息来在代理中生成故障状态,如下所示:

try {
    while(true) {
        byte[] payload = new byte[(int) (Math.random() * 16384)];
        BytesMessage message = session.createBytesMessage();
        message.writeBytes(payload);
        producer.send(message);
} catch (JMSException ex) { ... }
Run Code Online (Sandbox Code Playgroud)

我很惊讶这条线

producer.send(message);
Run Code Online (Sandbox Code Playgroud)

当经纪人进入失败状态时阻止.我希望会抛出一些异常,因此会有一些迹象表明经纪人已经失败了.

我意识到我的测试代码是在向代理发送垃圾邮件,我希望代理失败.但是,我更希望经纪人"大声"失败而不是简单地阻止.

这是不切实际的期望吗?

更新:

Uri的回答引用了3月提交的ActiveMQ错误报告.错误描述包括一个听起来像我正在寻找的提案:"如果传输上的请求超时(这是为了捕获故障情况,那么预计不会合理发生的事情),事情就会产生错误而不是建立等待线程."

但是,在8个月之后,该错误目前未通过一次投票分配.所以我想这个问题仍然存在,这是ActiveMQ应该(将会)实现的吗?

java distributed activemq-classic

4
推荐指数
1
解决办法
360
查看次数

Erlang:如何在远程节点上生成的进程中查看io:format/2调用的输出

我正在开发一个分散的Erlang应用程序.我目前正在使用单个PC并通过erl使用-sname标志初始化来创建多个节点.

当我spawn/4在其主节点上使用进程生成进程时,我可以看到io:format/2该进程中的调用在其主erl实例中生成的输出.

当我通过spawn/4组合使用远程生成进程时register_name,输出io:format/2有时会重定向回到进行erl远程spawn/4调用的实例,有时仍然完全不可见.

类似地,当我使用时rpc:call/4,io:format/2调用的输出被重定向回到进行erl`rpc:call/4'调用的实例.

如何获得将调试输出发送回其父erl实例的进程?

erlang rpc distributed spawn

4
推荐指数
1
解决办法
2406
查看次数

缓慢的复杂构建和Hudson与电子云

哈德森是复杂C++构建的正确工具吗?

我有一个大约4个小时的C++构建.编译和打包大约需要1/2的时间,测试会消耗另一半.目前,我们正在使用一个自行开发的系统,但是因为我们将它用于所有的java版本,所以有一些移动要去哈德森.

我的问题是持续集成不是很频繁......每隔4小时连续一次.我想要一个工具,让我以可理解的方式并行化构建.

Hudson非常适合小型构建或java构建,我坐在一个大型maven项目的顶部,但我认为它不会很好地适用于复杂的c ++构建.

你有什么经历?

distributed hudson build

4
推荐指数
1
解决办法
2396
查看次数