MPI+CUDA 与纯 MPI 相比有何优势?

2024-04-22

加速应用程序的常用方法是使用 MPI 或更高级别的库(例如在幕后使用 MPI 的 PETSc)并行化应用程序。

然而,现在每个人似乎都对使用 CUDA 来并行化他们的应用程序或使用 MPI 和 CUDA 的混合来解决更雄心勃勃/更大的问题感兴趣。

与传统的、经过试验和测试的并行编程 MPI 模型相比,使用混合 MPI+CUDA 编程模型有什么明显的优势吗?我是在粒子方法的应用领域专门问这个问题

我问这个问题的原因之一是,我在网络上到处都看到这样的说法:“粒子方法自然映射到 GPU 的架构”或类似的说法。但他们似乎从来没有证明为什么我使用 CUDA 比仅使用 MPI 来完成同样的工作更好。


这有点像苹果和橘子。

MPI 和 CUDA 是根本不同的架构。最重要的是,MPI 允许您将应用程序分布在多个节点上,而 CUDA 允许您在本地节点内使用 GPU。如果在 MPI 程序中,您的并行进程需要很长时间才能完成,那么是的,您应该研究如何通过使用 GPU 而不是 CPU 来完成工作来加速它们。相反,如果您的 CUDA 应用程序仍然需要很长时间才能完成,您可能希望使用 MPI 将工作分发到多个节点。

这两种技术几乎是正交的(假设集群上的所有节点都支持 CUDA)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MPI+CUDA 与纯 MPI 相比有何优势? 的相关文章

随机推荐

  • 使用react-google-maps-api将自定义标记作为React组件

    我们正在转换自google map react https github com google map react google map react readme to react google maps api这意味着更多原生 Googl
  • 使用 COMPS 构建 C/C++ 应用程序时出错:硬编码路径

    我正在尝试构建一个使用 C C 绑定开发的 COMPASs 应用程序 当我构建应用程序时 出现以下错误 您知道我该如何解决这个问题吗 xxxx xxx c increment gt buildapp increment BSC Barcel
  • Crash Firebase vs Crashlytics vs HockyApp

    我一直在应用程序中使用 Crashlytics 我们的客户端使用 HockeyApp 并且我是通过 Google Firebase 最近的更新了解到的 有谁有机会使用上述工具 您的概述和建议是什么 您是否喜欢其中一个 为什么 祝你有美好的一
  • Laravel 将数据传递给路由

    我是 Laravel 5 的新手 我需要一些帮助 因为我无法解决我的简单问题 我有一个数据列表http sample com partners http sample com partners如果我单击数据链接 我希望将其重定向到 http
  • 如何从服务器中的客户端池中识别客户端 - 设计

    好的 我正在使用一个客户端 服务器库 服务器可以接受来自客户端的多个连接 每次调用 Accept 时 如果成功 客户端套接字的句柄就会被推送到映射 并以假定的唯一 ID 作为键 这样当服务器稍后想要向特定客户端发送消息时 它就会使用该 ID
  • mysql 其中字符串以数字结尾

    我的表列包含如下值 id item 1 aaaa11a112 2 aa1112aa2a 3 aa11aa1a11 4 aaa2a222aa 我只想选择项目值以数字结尾的行 有这样的事吗 select from table where ite
  • Maven 对特定存储库使用 SOCKS 代理

    我试图将 Maven 配置为在访问特定存储库时使用袜子代理 但不将其用于 Maven 中央存储库 我用过export MAVEN OPTS DsocksProxyHost
  • 单击单个单元格并使用 Javascript 添加颜色到 HTML 表格

    我创建了一个 HTML 表 带有用户输入的列和行 并且还具有选择颜色的动态方式 现在我希望能够单击表格中的各个单元格并用所选颜色为它们着色 到目前为止我有这个代码 我的最终目标是当我再次点击 提交 时能够重置颜色 流程将是 选择桌子尺寸 选
  • 当其父对象设置为不显示时,如何获取对象的最小高度?

    为什么我无法获取min height当一个物体的parent被设定为display none 但如果最小高度是 我仍然可以得到物体的高度not in use 例如 css li display none object display blo
  • 确定 Linux 或 Windows 是 C++ 语言

    我正在用 C 编写一个跨平台兼容函数 该函数根据输入文件名创建目录 我需要知道机器是 Linux 还是 Windows 并使用适当的正斜杠或反斜杠 对于下面的代码 如果机器是Linux那么isLinux true 如何确定操作系统 bool
  • 再次将服务注入域对象

    我有一个对地理数据进行操作的特定域 我正在 TypeScript 和 NodeJS 中实现这个项目 并有以下类 Point 包含纬度和经度的值对象 Area 包含点集作为形状定义的值对象 Sector 实体 它不是持久的 但它是可变的 包含
  • 提交表单不会在 jquery ajax 调用中停止

    我得到以下代码 ajax type POST async false url CheckIdExist data param success function result if result true return false error
  • 如何解析不寻常的日期字符串

    您好 我有一个不寻常的日期格式 我想将其解析为 DateTime 对象 string date 20101121 2010 11 21 string time 13 11 41 HH mm ss 我想用DateTime Tryparse 但
  • Android.mk 与 Application.mk

    我对 Android mk 和 Application mk 的使用有点模糊 我尝试阅读 APPLICATION MK HTML ANDROID MK HTML 在NDK 附带的文档 http developer android com s
  • 如何将类元数据转换为 JSON 字符串

    如何生成类元数据的 JSON for eg C 类 public class Product public int Id get set public string Name get set public bool IsActive get
  • WebClient 最大连接池限制?

    如果远程服务阻塞 我可以发送多少个并发请求 意思是 什么是最大连接数spring在使用时内部使用的池限制WebClient Autowired private WebClient webClient webClient post uri u
  • 卸载 Magento 自定义扩展及其数据库

    我创建了一个扩展并创建了扩展的 zip 文件 以便我可以通过 Magento Connect 安装它 当我使用 Magento Connect 卸载自定义扩展时 它只会删除我的扩展文件和文件夹 但不会删除我的扩展的数据库表 我还想删除我的数
  • 如何在react 16.4.1中使用leaflet-polylinedecorator

    我正在尝试在react 16 4 1中使用传单插件polylinedecorator 所以没有钩子 然而 我能找到的关于如何在 React 中使用此插件的唯一示例是使用钩子 请参阅 如何将 Polylinedac orator 与 Reac
  • 在 Windows 中更改 Angular 项目中的任何内容时,Docker 不会重新编译

    我正在尝试对您的角度应用程序进行 dockerize 为此我创建了一个 Dockerfile 但每当我尝试编辑或更新任何组件时 它都不会编译我的角度应用程序 这是泊坞窗文件 FROM node latest RUN mkdir usr sr
  • MPI+CUDA 与纯 MPI 相比有何优势?

    加速应用程序的常用方法是使用 MPI 或更高级别的库 例如在幕后使用 MPI 的 PETSc 并行化应用程序 然而 现在每个人似乎都对使用 CUDA 来并行化他们的应用程序或使用 MPI 和 CUDA 的混合来解决更雄心勃勃 更大的问题感兴