V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ljiaming19
V2EX  ›  程序员

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

  •  
  •   ljiaming19 · 12 天前 · 1191 次点击
    感觉 pc 上跑的应用就算要并行也基本是用多线程 基本没有使用 openmpi/intel mpi 之类的软件实现并行的 这主要是什么原因
    6 条回复    2024-06-08 18:30:49 +08:00
    dongruixuan
        1
    dongruixuan  
       12 天前 via iPhone
    因为不用 serialize?MPI 应该得把数据 serialize 后才能发到其他进程吧,相比之下多线程可以直接用 threadsafe 的 queue 之类的就行
    Kirscheis
        2
    Kirscheis  
       12 天前
    当年在超算上写代码的跑模拟的飘过。

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

    而且用多线程多直观,入门编程四五天就能学会了,什么语言都能用。mpi 得学半天,支持的语言也不咋多。
    ljiaming19
        3
    ljiaming19  
    OP
       12 天前
    @Kirscheis 不过超算上很多软件多线程反而不如用 mpi 单线程相同核数算得快
    w568w
        4
    w568w  
       12 天前
    MPI 是消息传递机制,Multithreading 是共享内存机制。在 SMP 的前提下,一般来说共享内存性能要高于前者。单台 PC 是 SMP 。
    ShuWei
        5
    ShuWei  
       12 天前
    多线程在单机上,调度更灵活,性能也能保证,没必要使用 mpi 机制,mpi 主要针对跨计算模块的,这个计算模块一般指有自己独立的 cpu 内部缓存和内存的情况,与现在所说的多核处理器场景还不太一样
    secondwtq
        6
    secondwtq  
       12 天前
    Python multiprocessing 迫真猴版 MPI
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2978 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 12:12 · PVG 20:12 · LAX 05:12 · JFK 08:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.