gpt4 book ai didi

台式机 CPU 上的 MPI 和 OpenMP

转载 作者:行者123 更新时间:2023-12-01 08:35:38 25 4
gpt4 key购买 nike

我只是想知道 OpenMP(共享内存)和 MPI(分布式内存)怎么可能在像 i7 这样的普通桌面 CPU 上运行。是否有某种虚拟机可以在这些 CPU 上模拟共享和分布式内存?我问它是因为在学习 OpenMP 和 MPI 时,显示了 super 计算机的结构,具有共享内存或分布式内存的不同节点,每个节点都有自己的处理器和内存。

最佳答案

MPI 不假设 MPI 进程如何以及在何处运行。就 MPI 而言,进程只是具有称为其等级的唯一地址的实体,而 MPI 使它们能够以消息的形式发送和接收数据。消息传输的确切方式留给实现。该模型非常通用,以至于 MPI 几乎可以在任何可以想象的平台上运行。

OpenMP 使用线程处理共享内存编程。线程只是可以访问共享内存空间的并发指令流。它们可以在单个 CPU 内核上以分时方式执行,也可以在单个 CPU 芯片内的多个内核上执行,或者它们可以分布在通过某些复杂网络连接在一起的多个 CPU 之间,从而允许它们访问彼此的内存。

鉴于这一切,MPI 并不要求每个进程都在专用 CPU 内核上执行,或者数百万个内核必须放在与某些高速网络连接的单独板上 - 性能和技术限制一样。您可以愉快地在单个 CPU 内核上运行 100 个进程的 MPI 作业,尽管性能会非常非常糟糕,但它仍然可以工作(假设有足够的可用内存)。这同样适用于 OpenMP - 它不需要将每个线程都安排在专用的 CPU 内核上,但这样做可以提供最佳性能。

这就是为什么 MPI 和 OpenMP 被称为抽象的原因——它们足够通用,以至于在源代码保持不变的情况下,执行硬件可以有很大的不同。

关于台式机 CPU 上的 MPI 和 OpenMP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11009371/

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