为什么 pc 上的软件基本不使用 mpi 实现多核并行而使用多线程居多

19 天前
 ljiaming19
感觉 pc 上跑的应用就算要并行也基本是用多线程 基本没有使用 openmpi/intel mpi 之类的软件实现并行的 这主要是什么原因
1244 次点击
所在节点    程序员
6 条回复
dongruixuan
19 天前
因为不用 serialize?MPI 应该得把数据 serialize 后才能发到其他进程吧,相比之下多线程可以直接用 threadsafe 的 queue 之类的就行
Kirscheis
19 天前
当年在超算上写代码的跑模拟的飘过。

不是一个概念,用 mpi 的主要目的是多个机器间并行,pc 就一个机器,想共享数据直接共享内存就完事了,用 mpi 还要显式地处理数据传输,增加一堆代码,降低性能,这不是纯纯给自己找不痛快。

而且用多线程多直观,入门编程四五天就能学会了,什么语言都能用。mpi 得学半天,支持的语言也不咋多。
ljiaming19
19 天前
@Kirscheis 不过超算上很多软件多线程反而不如用 mpi 单线程相同核数算得快
w568w
19 天前
MPI 是消息传递机制,Multithreading 是共享内存机制。在 SMP 的前提下,一般来说共享内存性能要高于前者。单台 PC 是 SMP 。
ShuWei
19 天前
多线程在单机上,调度更灵活,性能也能保证,没必要使用 mpi 机制,mpi 主要针对跨计算模块的,这个计算模块一般指有自己独立的 cpu 内部缓存和内存的情况,与现在所说的多核处理器场景还不太一样
secondwtq
18 天前
Python multiprocessing 迫真猴版 MPI

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1047854

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX