You'll need Macromedia Flash Player 8 or above in order to view some of our content. Download now!

并行编程之API

英特尔James Reinders解释消息传递接口(MPI)——一个并行API
我是 James Reinders,现在我们来谈谈一个接口——“消息传递接口”。这是一个 API,用于实现并行性。 消息传递接口通常和超级计算机联系在一起,因此在讨论多核处理器时,您不一定熟悉它,不过我认为这个接口值得研究和理解。 您未必会使用它,但最好知道它是可用的以及它是什么东西。

放眼现在的多核系统,比如 1 个 4 核处理器或 2 个双核处理器,在对其编程时都可以假设每个执行线程、每个处理器对内存都有同等的访问权。因此,处理器 1 能将某些数据写入内存,处理器 4 或线程 4 同样也能访问同一处内存。这就是一种非常简单的模式——共享内存模式。

在这个特定的例子中,我们假定程序运行在 4 个处理器上,所有处理器都将读写内存,各处理器之间都按此方式通信。假设我们以不同的方式构建了 1 台机器,或者我们假定这是 1 台不同的机器,而且我们将各处理器限制为只处理它独占控制的数据,各处理器之间的唯一的通信为消息传递。通常,1 个处理器能和其它任何 1 个处理器或任何处理器组合通信。例如,处理器 2 能传递 1 个消息到处理器 4 等等。

这样一来,可在每个处理器上都运行 1 个线程。这就好比是人们分别呆在相邻的房间中,但是不能像一起坐在同一间房间中的桌旁那样谈话,只能写下想交流的内容,再从门底下互相传递。这种方式限制了正在进行的通信量,但是有 1 个巨大优势。它强制实行问题分解规范,因此问题在各处理器上能很好地运行,并且主要使用本地数据,偶尔才在各处理器之间共享信息。按此方法写成的程序通常扩展性更好。倒不是 MPI(消息传递接口)增强了程序的扩展性,而是按此规范书写程序时,程序的自包含性更高——各处理器均使用本地内存。实际上,无论机器中是否采用和现代机器中四核处理器一样的共享内存型处理器,只要是只使用自有内存区段,就能获得性能提升。

以上是对 MPI 的简单介绍。MPI 有几种简单的调用,比如“MPI_Send”和“MPI_Recv”。当然,您可执行初始化以及其它一些调用操作,不过在调用时,您需要传递此调用、缓冲区、缓冲区长度及其它一些往返共享的参数。某个处理器执行发送操作后,数据就发送到另外一个执行相应接收操作的处理器上,由其接收数据。这在编程实现上并不是非常困难。需要按规范分解程序,而且要在相当低的层次上编程并考虑如何实现并行性,显然不是每个人都适合。不过我认为很重要的一点是要理解消息传递是什么,并知道它是可用的。当然,在我们见到机器变成 8 核及 16 核时,这显然已进入到超级计算机领域,而 MPI 作为传统早已在此领域中广泛使用,将来从 10 核到 1000 核都能很好地适应,事实证明,这是一种非常高效的编程方式。这种编程方式未必有趣,因为需要做大量工作,但是它确实非常高效。

您能从这里获得更多相关信息:www.mpi-forum.org。在这里可以找到有关 MPI 的文档和标准等等。另一个地方就是 Wikipedia。查看 message passing interface 词条或搜索 MPI 即可。您会找到大量信息以及简单的应用程序等。

多核处理器有前途吗?

了解多核处理器的功耗、内存和并行指令集。

了解任务和数据并行

任务和数据并行之间的差异,以及如何避免阿姆达尔定律施加的限制。

必须了解的三个并行问题

英特尔James Reinders称,在管理多核系统方面,可扩展性、正确性和可维护性全都是至关重要的因素。

并行之抽象方法

处理原始线程是并行应该避免的问题之一。抽象化为解决这个问题提供了一种方法……

成功的并行编程

说明一些开发者在为并行系统编程,力求改善工作效率时重复出现的话题。

并行编程基础:第一部分

了解线程构造块的核心算法——一个并行编程C++模板库。

并行编程基础:第二部分

英特尔的James Reinders深入探究线程建构基础——一个并行编程C++模板库。

并行编程之API

英特尔James Reinders解释消息传递接口(MPI)——一个并行API。

About Us | Contact Us | Membership | RSS Feeds
Privacy Policy | Terms of Use

Copyright © 2007 CNET Networks, Inc. All rights reserved.

Other CNET Networks sites: ZDNet Australia | CNET.com.au | AppleSource
Builder.com | Builder UK | TechRepublic