gpt4 book ai didi

Boost.MPI 与 Boost.Asio

转载 作者:行者123 更新时间:2023-12-03 07:32:50 24 4
gpt4 key购买 nike

再会!

这些库有什么区别?

我阅读了 MPI 的文档并且对 asio 有一点经验。对我来说不一样
网络通信的实现,仅此而已。

但是它们每个都引入了不同的抽象(我不确定同一级别
这些抽象)导致不同的应用程序设计。

我什么时候应该使用一个或另一个库?我必须知道的选择正确的
在每个单独的情况下做出决定?

是的,Asio 适用于多个节点(并且通常是非常通用的框架),但为什么 MPI 不太适合此类任务呢?我不认为对 MPI C 库的依赖是限制性的,或者 MPI 很难理解,那么可扩展性呢?使用 Asio,我们可以实现广播和其他功能,另一方面 MPI 并不禁止编写简单的网络应用程序。如果需要,用 MPI 重写特定于 Asio 的逻辑在概念上是否困难?

类似套接字的通信怎么样:如果它是强制性的,我们可以在 Asio 或任何其他框架的模块中封装这样一个,并且仍然使用 MPI 进行其他通信。

对我来说,sokets 和 MPI 标准是不同的网络服务,不清楚在现实世界中什么是基本的,从简单的客户端-服务器对到一些中等计算的距离只是一步。另外,我认为 MPI 与 Asio 相比没有显着的开销。

也许这是个糟糕的问题,而我们所需要的只是 ICE(互联网通信引擎)之类的东西?不同的语言支持并再次(确保 ZeroC)出色的性能。

而且,当然,我从未在任何文档主题中看到“不要为此使用这个库!”。

我根本无法接受这种不统一:一种情况是套接字,另一种情况是异步消息,最后是重型中间件平台。开发生命周期的清晰度在哪里?也许这不是一个公平的问题,但为了开始减少这个动物园,我们需要一些要点。

最佳答案

每个库解决不同的问题,它们并没有真正重叠。它还取决于您要解决的问题以及应用程序的通信模式。使用Boost.MPI用于可扩展性,例如扩展到数千或数万个节点。根据底层网络架构,MPI 还擅长集体操作:聚集、分散、广播等。

使用Boost.Asio如果您只需要少数节点,例如单个服务器和一些客户端,则适用于套接字抽象层。如果您还没有以某种方式使用 MPI 发行版,我建议您使用 Boost.Asio。

关于Boost.MPI 与 Boost.Asio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4113026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com