gpt4 book ai didi

c - 使用 MPI 发送 glib 哈希表

转载 作者:太空宇宙 更新时间:2023-11-04 03:06:25 24 4
gpt4 key购买 nike

我最近遇到了并行程序的问题。每个进程都有几个 glib hashtables 需要与其他进程交换,这些 hashtables 可能非常大。实现这一目标的最佳方法是什么?

  • 创建派生数据类型
  • 使用 mpi 打包和解压
  • 将键和值作为数组发送(问题,因为在编译时不知道元素的数量)

我以前没有用过 1 和 2,甚至不知道这是否可行,这就是我问你们的原因..

最佳答案

打包/解包创建您的数据的副本:如果您的 map 很大,您将希望避免这种情况。这也排除了您的第三个选项。

您确实可以定义自定义数据类型,但这会有点棘手。见this answer的结尾举个例子(在阅读时用“map”替换“graph”,用“pair”替换“node”)。我建议你read up了解这些主题,以深入了解您需要做什么。

在编译时不知道元素的数量应该不是真正的问题。您可以在发送 map 内容之前发送一条包含有效负载大小的消息。这将使接收进程为接收缓冲区分配足够的内存。

您可能还想考虑简单地将 map 的内容打印到文件中,然后让进程读取彼此的输出。这比消息传递更直接,但也不那么优雅且慢得多。

关于c - 使用 MPI 发送 glib 哈希表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4421905/

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