1
dongruixuan 92 天前 via iPhone
因为不用 serialize?MPI 应该得把数据 serialize 后才能发到其他进程吧,相比之下多线程可以直接用 threadsafe 的 queue 之类的就行
|
![]() |
2
Kirscheis 92 天前
当年在超算上写代码的跑模拟的飘过。
不是一个概念,用 mpi 的主要目的是多个机器间并行,pc 就一个机器,想共享数据直接共享内存就完事了,用 mpi 还要显式地处理数据传输,增加一堆代码,降低性能,这不是纯纯给自己找不痛快。 而且用多线程多直观,入门编程四五天就能学会了,什么语言都能用。mpi 得学半天,支持的语言也不咋多。 |
3
ljiaming19 OP @Kirscheis 不过超算上很多软件多线程反而不如用 mpi 单线程相同核数算得快
|
4
w568w 91 天前
MPI 是消息传递机制,Multithreading 是共享内存机制。在 SMP 的前提下,一般来说共享内存性能要高于前者。单台 PC 是 SMP 。
|
5
ShuWei 91 天前
多线程在单机上,调度更灵活,性能也能保证,没必要使用 mpi 机制,mpi 主要针对跨计算模块的,这个计算模块一般指有自己独立的 cpu 内部缓存和内存的情况,与现在所说的多核处理器场景还不太一样
|
![]() |
6
secondwtq 91 天前
Python multiprocessing 迫真猴版 MPI
|