相较共享内存,另一个选择就是消息通讯模型。这个模型中,如果当前正在执行的任务需要某些共享数据参与内部计算,可以通过显式通讯的方式进行获取。这种方式可以在一台物理机上使用,也可以在多台物理机之间使用。任务通过消息通讯的机制对数据进行更新。当其他进程在具有相关数据时,数据传输通常需要一些附加操作,比如:一个发送操作必须与一个接收操作相对应。
这个模型对于编程者来说是透明的,其会包含一个与底层硬件相关,用来发送和接收消息的库。编程者需要对进程间的通讯进行显式的管理。各种各样的消息传递库在19世纪80年代时,就已经出现了。消息传递接口(MPI)库经历了时间的磨砺,在当今环境下依旧是很受欢迎的消息传递中间件[2]。不过,不同的MPI实现版本之间有很多的不同,其会让程序的可移植性降低。
[2] W. Group. E. Lusk, A. Skjellum, Using MPI: Portable Parallel Programming with the Meaasge-passing Interface, second ed.. MIT Press, 1999