1

共享地址空间模型中,进程之间共享一个公共地址空间,并表示为内存中的数据结构(如ConcurrentHashMap)。这提供了非常快速的数据共享的优势,因为共享对象位于单个计算机上(为了简单起见,我们假设如此)。由于进程可能发生冲突,各种锁机制(互斥锁)有助于确保访问共享内存时的互斥。这种方案缺乏可扩展性,因为处理器数量的增加会几何地增加共享内存上的流量,并且单台计算机最多只能有 8 个处理器。

消息传递模型中,没有全局地址空间的意义。每个进程都有一个私有的本地内存。进程可以通过传递消息相互通信。与共享地址空间不同,消息传递模型提供了处理器和内存之间的可伸缩性,尽管需要复制公共数据。处理器的增加也会成比例地增加内存(用于该数据)的大小,尽管在这种情况下不需要锁定机制。

阅读“Thinking in Java”以获得灵感,我发现只有一个关于具有同步原理的共享地址空间模型的讨论。随着我的问题变得越来越复杂,我将尝试消息传递范式,据我所知,这本书没有介绍过。

您能否推荐 Java 本机类或任何经过验证的外部库来使用消息传递模型,例如 C++ 中的 MPI?任何指向该来源的链接将不胜感激!

4

2 回答 2

1

Akka是用于 JVM 的常用actor框架 - 适用于 Java 和 Scala。

于 2012-08-07T14:36:06.927 回答
0

Apache Hadoop软件库是一个框架,允许使用简单的编程模型跨计算机集群对大型数据集进行分布式处理。 http://hadoop.apache.org/

于 2012-08-07T14:39:26.293 回答