共享内存 – 共享内存与分布式内存和多线程与多进程

我正在学习并行编程.我想知道分布式内存是否总是多进程,多线程总是共享内存?如果多进程可以用于分布式内存和共享内存?
感谢致敬!
最佳答案
是的,是的,“是的,从某种意义上说”

在分布式存储器系统中,不同的CPU单元具有它们自己的存储器系统.如果确实可能的话,来自另一个CPU的访问很可能会更慢或具有更有限的一致性模型.这将是更典型的消息传递多处理器.

使用多个线程进行并行编程更多的是软件范例而不是硬件问题,但是你是对的,使用术语线程实际上指定单个共享内存正在使用中,它可能包括也可能不包括实际的多个处理器.它甚至可能不包括多个内核线程,在这种情况下,线程不会并行执行.

关于最后一个问题的含义,我并不完全清楚.当然,通过说“分布式存储器”或“共享存储器”,它意味着“分布在处理器上”和“由处理器共享”,所以我认为这些术语仅合理地应用于多处理器或潜在的多处理器系统.如果我们在谈论软件意义上的多个进程,我想这对于分布式内存系统来说几乎是一个要求,而且对于共享内存系统来说基本上是一个要求(它们可能被称为线程).

我应该补充一点,分布式内存但缓存一致的系统确实存在并且是一种称为NUMA.的共享内存多处理器设计仅在几年前这些机器是并行计算的疯狂边缘,但现在英特尔酷睿i7处理器已经使NUMA成为主流.

转载注明原文:共享内存 – 共享内存与分布式内存和多线程与多进程 - 代码日志