【问题标题】:Use infiniband with Akka in Scala?在 Scala 中将 infiniband 与 Akka 一起使用?
【发布时间】:2013-05-23 12:23:26
【问题描述】:

是否可以在 Akka 中使用 infiniband 而不是 TCP/IP?我想在本地集群上使用 Akka 进行 HPC,而使用 TCP/IP 的网络瓶颈很严重......

【问题讨论】:

  • 根据下面的链接,您可以将 Akka 与 Infiniband 一起使用。虽然我从未尝试过,但它似乎是可能的。 groups.google.com/forum/?fromgroups#!topic/akka-user/…
  • 虽然信息量似乎不大:P
  • 是的,抱歉,我只是想让你知道它看起来是可能的。

标签: scala cluster-computing akka hpc infiniband


【解决方案1】:

要回答我自己的问题,您似乎可以使用“ip over infiniband”,因此您很有可能可以将akka“按原样”用于提供此选项的集群设置。我将很快通过一些基准测试来研究这一点。

【讨论】:

  • 目前我分别使用 Akka 和 MPJ Express 作为 Floyd 算法的并行实现的后端,分别获得了 82% 和 90% 的效率。需要对 Akka 后端的序列化进行一些调整以使其公平,但似乎两者都以非常好的速度运行。
【解决方案2】:

我无法直接对此做出回应(infiniband),但 Akka-ZeroMq (http://doc.akka.io/docs/akka/snapshot/scala/zeromq.html) 非常好。 https://github.com/mDialog/scala-zeromq 是我的同行写的一个我们已经迁移到的库,而不是实际的 akka 库。

对于 infiniband zmq 性能,您需要查看文档以查看它是否符合您的需求。 http://www.zeromq.org/area:results

我能想象到的唯一消息是 tcp 的问题只是绝对巨大的消息,在这种情况下,您可能需要重新考虑您正在通过网络发送的内容。

ZeroMq 是您相对于大多数其他消息传递的最佳性能选择,但对于习惯于良好的老式持久消息传递系统的开发人员来说,它并不是最明显的解决方案。

【讨论】:

    【解决方案3】:

    用于 2.2 的新 Akka Remoting 是可插拔的,因此您应该能够挂接您自己的 Infiniband 传输。

    【讨论】:

    • 有没有关于可插拔传输的简单示例,或者如何操作? Akka 源中的 netty 传输非常重要。
    • 创建一个传输是不平凡的。您打算实施哪种交通方式?
    • 我们有一个使用本地节点间通信层的分布式系统。我想使用 Akka 演员实现新功能。理想情况下,我们可以完全搬到 Akka,并且可以使用 Akka 提供的交通工具。然而,在一些过渡时期,我想通过我们现有的协议来隧道 Akka 通信,以避免必须在每个节点上配置/打开另一个端口。
    • (续)这意味着我只需要将 akka 通信映射到现有的原语上。我有这个工作,但是当两个节点同时尝试“Akka-associate”时,或者当一个节点关闭并重新启动时,由于某种原因消息被吞没了。我可能没有保留正确的数据结构或没有正确同步它们。我可能能够使用 netty 传输示例来完成,但它比我需要的更抽象,所以更简单的示例或状态机描述将不胜感激:-)
    • 所以 cmets 不是最好的论坛,我们可以继续在您想要的 Google 群组中讨论 Akka-dev ML。
    【解决方案4】:

    here 中,您可以找到一个项目,该项目试图使用 JNI 和他们自己的本机代码将 RDMA 通过 infiniband 或以太网进行传输。我不确定是否还有其他方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 1970-01-01
      • 2016-11-14
      • 2014-11-02
      • 2016-06-21
      相关资源
      最近更新 更多