gpt4 book ai didi

c++ - 在单个 Raspberry-Pi 上使用 MPI

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:05:44 25 4
gpt4 key购买 nike

我正在开发一个应用程序(在 C++ 中),它涉及对数据数组的多个独立操作(FFTW + 信号处理)。数组大小可以是 512 或 1024(尚未决定),数据类型为 double 。

我希望将这些独立操作并行化,以充分利用 Pi。我过去会做的很明显的事情是使用 pthreads。

但是,(不幸的是 :))我最近了解了 MPI,我想知道我是否应该在这里使用它而不是好的旧线程。显然,如果我有一个设备集群(这是我在互联网上搜索时得到的),MPI 将是可行的方法。

但是在我只有一台设备的情况下,MPI 仍然是一个不错的选择吗? (特别是当该设备是 Raspberry-Pi 时)。

(如果上面的答案是“否”,这是否意味着当只有一台计算机时,MPI 通常是一个糟糕的选择?)

最佳答案

MPI 可能是一个很棒的选择,具体取决于每单位通信可以完成多少工作。这就是我是否考虑 MPI 的方式。

我是 MRI 模拟框架的合著者。在那里我们处理单独的“宏观”自旋,它们通常可以作为空间非相互作用来处理。这允许人们对每一次旋转和局部 bloch 方程进行穷人的并行化。所以很多物理知识很少交流。即使在单个设备上,它也可以像 pthreads 一样执行。

然而,在频谱的另一端,我看到了 SCALAPACK 所做的大量并行矩阵求逆。在那里你会发现每单位计算有很多沟通。这就是世界上没有机会与 pthreads 竞争的地方。

即使您打算使用 pi 集群,在这种情况下您也会同时使用 MPI 和 pthread,并且可能无法收支平衡,因为 100Mbit 网络存在严重的延迟问题。
有1Gb/s网络的单板机,fp性能更强的树莓派,通信成本可能是值得的。

tldr:要使 MPI 有意义,需要 computation/communication >> 1

关于c++ - 在单个 Raspberry-Pi 上使用 MPI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50611597/

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