[发明专利]MPI源代码程序到基于MPI线程的程序的自动转换有效
申请号: | 201010221296.1 | 申请日: | 2010-06-30 |
公开(公告)号: | CN101937367A | 公开(公告)日: | 2011-01-05 |
发明(设计)人: | A·V·索巴洛夫;R·F·范德韦恩加特;S·J·惠特洛克 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/54 |
代理公司: | 永新专利商标代理有限公司 72002 | 代理人: | 王英;刘炳胜 |
地址: | 美国加*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | mpi 源代码 程序 基于 线程 自动 转换 | ||
版权声明
本文包含的内容是受到版权保护的。当专利公开出现在专利商标局的专利文件或记录中时,版权所有者不反对任何人复制本专利公开,但是在其它情况下保留对版权的所有权利。
技术领域
本公开总体上涉及将在消息传递基础结构中运行的计算机程序的自动转换。
背景技术
许多计算问题可以被细分为独立的或松散依赖的任务,这些任务可以分布在一组处理器或系统中并且可以并行地执行。该技术通常允许比在由单个处理器或系统执行所有任务时更快地解决主要问题。有时,处理时间可以与在子任务上工作的处理器或系统的数量成比例地降低。除了当需要与其它任务交换数据时,每个进程可以独立地计算。
可以根据需要,通过在协作的处理器和系统之间发送消息来协调所述处理器和系统。消息还可以用于分发工作以及收集结果。对问题的一些划分和分解会极大地需要消息传递基础结构,或者通过发送和接收大量的消息,或者通过在消息内传输大量的数据。
可以将消息通过许多不同的通信信道或“结构(fabric)”从一个进程传输到另一个进程。例如,在同一物理机器上执行的进程能够使用多处理器机器上的共享存储器或点对点处理器互连有效地进行通信。在不同机器上的进程可以通过高速网络进行通信,例如:(InfiniBand贸易协会的注册商标)、(Myricom公司(Arcadia,California)的注册商标)、可缩放相干接口(“SCI”)、或由Quadrics有限公司(Bristol,United Kingdom)提供的QSNet。这些网络可以提供自然操作模式(native operational mode)以及仿真模式(emulation mode),自然操作模式暴露可从结构获得的所有特征,仿真模式允许由遗留软件(legacy software)使用网络。进程还可以经由传统网络(例如以太网)来通信。
可以定义一组标准的消息传递函数,并且可以提供库以在每种类型的结构上执行标准函数。消息传递接口(“MPI”)是定义基本应用编程接口(API)的工业标准,用于在消息传递方面对分布式存储器和共享存储器系统进行编程。由MPI论坛的成员定义了MPI标准(参见MPI:“A Message-Passing Interface Standard”(2.1版,消息传递接口论坛,2008年6月23日),其可从xwwwx.mpi-forum.org/docs/获得,其中,在URL中用“xwwwx”替换了“www”以避免从该文档内的有效链接)。MPI(或类似的)库可以提供在一个或多个结构上的标准函数。
在进程内的多个线程有时用于共享资源,例如存储器,这具有以下优点:线程不需要使用消息传递机制来进行通信。线程在利用多处理器系统中的不同处理器核心方面特别有用。多处理器系统中的操作系统可以在运行于不同处理器核心上的线程之间分配任务,并且可以利用对于线程可行的数据共享,所述线程运行在公共地址空间内,并且在多处理器环境内有处理器互连可用。
但是,在MPI环境中,在一个进程内的多个线程需要遵循特定的实现技术。在MPI标准下,每个MPI进程通常被映射到唯一的操作系统进程。进程的地址空间仅可以由另一个进程通过调用MPI库函数来访问。如在MPI-2规范的12.4节“MPI和线程”中所指出的,在进程内的每个线程可以发出MPI调用;但是,线程不是独立可寻址的,因为在发送或接收调用中的参数识别进程而不是线程。发送到一进程的消息可以由该进程中的任何线程接收。进程具有多线程的事实不影响进程的外部接口。
为了遵守MPI标准,如在MPI-2规范的12.4节“MPI和线程”中所规定的,适应线程的实现必须确保所有MPI调用是线程安全的并且阻塞MPI调用仅阻塞调用线程,允许其它线程执行,如果有的话。但是,为了满足该标准,需要使用例如允许一次仅由一个线程进行访问的互斥原语(primitive)来保护由发出MPI调用的线程使用的静态和全局变量。适应线程的实现通常需要由程序员使用例如Posix线程这样的技术或根据混合的MPI/OpenMP标准来写源代码程序。这些复杂的编程模式(programing paradigm)增加了程序复杂性,并且会降低整体的程序性能。这种实现将抵销使用线程的多个优点中的一个优点,线程可以使用静态和全局变量进行通信,而没有通过共享存储器机制发送消息的开销。
附图说明
图1示出了在使用共享存储器段的MPI基础结构中运行的进程之间的数据传输。
图2说明了根据本发明的一个实施例的、在转换为线程的进程之间的数据传输。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010221296.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于视频传输的便携式卫星通信地球站
- 下一篇:电容式触摸按键组件安装结构