在多线程计算环境中建立跨越多个进程的通信程序制造技术

技术编号:2885154 阅读:225 留言:0更新日期:2012-04-11 18:40
提供一种确定性的、非死锁技术,用于在多线程计算环境中取得分布式合意。该技术包括在多个进程之间通信,以便为分布在多个进程上的一组参与线程的通信程序建立候选标识符;在多个进程之间通信,以便在多个线程的每个参与线程处检查是否能在其进程要求该候选标识符,如果能,就要求该候选标识符,作为新标识符,由此建立通信程序。举例来说,该技术可以通过消息传送接口(MPI)库内的子例程调用来实现。(*该技术在2020年保护过期,可自由使用*)

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及计算机系统中管理共享资源的功能,更具体来说,涉及一种用于例如在消息传送接口(MPI)库内实现的线程安全的分布式合意技术(thread-safe distributed consensus technique)。为了更好地理解本专利技术的背景,首先来解释一些术语。本领域中有名的术语一对称多处理器(SMP),指的是计算系统中硬件的一个方面,更具体来说,涉及处理器平面(planar)本身的物理布局和设计。这类多个处理器单元的一个特点是对全局存储器的共享和对SMP系统的输入/输出(I/O)相同使用权。与现代复杂计算系统普遍相关的另一个术语是“线程”。术语“线程”的大体意义只是指在计算机执行的应用软件和操作系统的内核中经过的简单执行路径。本领域中人们都知道,普遍允许每个进程映象(process image)中有多个这种线程。POSIX标准中现在已经收入了线程标准。例如在K.Robbins和S.Robbins所作的名为《实用UNIX程序设计一并发、通信和多线程指南》(Practical UNIX Programming-A Guide to Concurrency,Communication and Multi-Threading)(Prentice Hall PTR出版,1996)一文中介绍了POSIX标准下的基本线程管理。本文在描述本专利技术实施例时所用的另一个概念是锁(locks)。在现代计算系统中通常有一些关键的代码段和共享数据结构,诸如共享库,它们的完整性对系统的正确运行及其重要。概括来说,锁是在软件(或硬件)中用来“串行化”对这些关键的代码段和/或共享数据结构的访问的设备。另一个要注意的术语是多线程安全(multithread-safe)的代码的概念。如果竞争相同资源或例程的多个执行线程被串行化,使得能对所有线程保证数据完整性,则代码被视为是线程/多线程安全的。实现这一点的一种方法是借助上述的锁。作为另外的背景,消息传送接口(MPI)标准定义下列语义并行作业中的进程在一个保证域内消息完整性的通信域(communicationdomain)(以下也称“通信程序”)内交换消息。在一个域中发出的消息不干涉另一个域中发出的消息。当并行作业开始时,各进程的子集可以合作,以按需建立单独的通信域。申请人认识到多线程环境中产生的一个问题,其中多个线程可能同时试图获得通信域。如果没有办法来解决这个问题,就可能会发生死锁。所以需要一种确定性的、非死锁的技术来实现多线程处理系统中的分布式合意。本专利技术就是为解决这个需要而提供的一种技术。简要地说,本专利技术的一个方面提出一个用于跨越多线程计算机环境的多个进程建立通信程序的方法,该环境中多个进程可能同时在试图建立通信程序(communicator)。该方法包括在多个进程之间通信,以便为分布在多个进程上的一组参与线程的通信程序建立候选标识符;在多个进程之间通信,以便在多个线程的每个参与线程处检查是否能在其进程要求(claim)该候选标识符,如果能,就要求该候选标识符,作为新标识符,由此建立通信程序。本专利技术的另一个方面提供一个用于跨越多线程计算机环境的多个进程建立通信程序的系统,该环境中多个进程可能同时在试图建立通信程序。系统包括的一个装置,用于在多个进程之间通信,以便为分布在多个进程上的一组参与线程的通信程序建立候选标识符;还有一个装置,用于在多个进程之间通信,以便在多个线程的每个参与线程处检查是否能在其进程要求该候选标识符,如果能,就要求该候选标识符,作为新标识符,由此建立通信程序。本专利技术的再一个方面包含至少一个可由机器读取的程序存储装置,内含至少一个可由机器执行的指令程序,指令程序用来执行跨越多线程计算机环境的多个进程建立通信程序的方法,该环境中多个进程可能同时在试图建立通信程序。该方法包括在多个进程之间通信,以便为分布在多个进程上的一组参与线程的通信程序建立候选标识符;在多个进程之间通信,以便在多个线程的每个参与线程处检查是否能在其进程要求该候选标识符,如果能,就要求该候选标识符,作为新标识符,由此建立通信程序。重申一遍,这里提出一种用于在多线程的多进程计算环境中实现分布式合意的技术。该技术是确定性的,因为各线程将在有限次数的重试中以可预测的顺序成功创建一个通信程序。该技术被相信优于所谓的“随机化”算法,在这种算法中,未能创建通信程序的线程只是等待过了随机量的时间后再重试。此外,这里提出的技术保证避免线程之间的死锁。这优于其它检测到死锁情况就采取打破死锁的行动的算法。死锁检测通常涉及注意到某一段时间过去了还没有线程在进行。这里提出的分布式合意功能是高效的,因为线程为获得对新通信域的分布式合意而被迫重试的次数有个上限一即使存在多组试图同时创建通信程序的线程也是如此。由以下结合附图对本专利技术的某些最佳实施例的详细说明,可以更容易了解本专利技术的上述及其它目的、优点和特点。附图简介附图说明图1表示一例包含按照本专利技术的通信域合意功能的线程计算机环境;图2是多个有多个线程的进程的简化图,其中按本专利技术原理建立了跨越多个进程的多个线程的通信域;图3A和3B表示按照本专利技术原理的通信域合意技术的一个实施例。下面结合图1说明一例包含和使用按照本专利技术的通信域合意功能的线程计算机环境。如图所示,计算机环境100包括多个经连接104而相连的计算节点102。例如,每个计算节点可包含是一个国际商用机器公司推出的RS/6000 SP系统的节点,连接104可以是个也是国际商用机器公司推出的分组交换网络,诸如SP转接器或高性能转接器(HPS)。再次注意,图1仅仅是举例表示的。这里所披露的技术,还可应用于图1所示多处理器环境以外的任何单线程的或多线程的程序的集合。在环境100内,消息分组被通过分组交换网络104从源计算节点(发送节点)传送到接收计算节点(接收节点)。例如计算单元N的用户任务106可以向计算单元1(接收节点)的用户任务106传送消息。适配器112连接计算单元102与转接器104。《用于AIX管理的IBM并行系统支援程序指南》(IBM Parallel System Support ProgramsFor AIX Administration Guide)(出版号GC23-3897-02(1996))中详细介绍了转接器104的一个例子。进一步来说,计算单元与其相关适配器112之间的通信,例如由包括诸如打开通信、关闭通信、启用路由、停用路由、返回状态和重置适配器等功能(functions)的接口描述。在一个实施例中,接口包含消息传送接口(MPI)110-这里也称MPI库。对适配器的接入由每个计算单元102内的内核扩展/设备驱动程序108作中介。扩展(extension)108包括的一组功能(functions),有操作系统本身(例如国际商用机器公司出售的AIX操作系统)的权力。内核扩展(kernel extension)授权由用户任务106(或程序)使用适配器112并有在需要时中断用户任务的能力。用户任务通过MPI库110与适配器112通信。对MPI库的更详细介绍,例如可参阅国际商用机器公司的出版物-题目为《AIX的IBM并行环境MPI程序设计和子例程参考》(IBM Parallel 本文档来自技高网...

【技术保护点】
一种用于多线程计算机环境中建立跨越多个进程的通信程序的方法,在该环境中多个进程可能同时在试图建立通信程序,该方法包含: (1)在多个进程之间通信,以便为分布在多个进程上的一组参与线程的通信程序建立候选标识符; (2)在多个进程之间通信,以便在多个线程的每个参与线程处检查是否能在其进程要求该候选标识符,如果能,就要求该候选标识符作为新标识符,由此建立通信程序。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:R布拉克莫雷RR特雷曼恩AB怀特
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1