一种基于多处理器系统的多库函数调用方法和系统技术方案

技术编号:4319176 阅读:194 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种基于多处理器系统的多库函数调用方法和系统,其中所述多处理器系统包括一个主处理单元PPE和多个协处理单元SPE,包括多库函数的应用程序在PPE的内存空间执行,该方法包括:在PPE的应用程序内维护各SPE的状态,其中已经启动的SPE具有用于截获PPE命令的SPE代理;响应调用一库函数请求,PPE根据当前各SPE的状态,判断调用所述库函数的可用SPE数量是否足够;如果可用SPE数量足够,发送运行命令到选择的SPE;执行完毕全部库函数后,PPE发送终止命令到全部启动的SPE。

【技术实现步骤摘要】

本专利技术 一般涉及计算机领域,具体涉及一种基于多处理器系统的多库函数调用方法和系统
技术介绍
本专利技术的多处理器系统包括一个主处理单元(PPE)和若干个协处理 单元(SPE),共享主存储器,并且每个SPE有自己的存储器,IBM Cell宽频引擎就是这样的一种多处理器系统。Cell宽频引擎(Cell Broadband Engine, CBE )是一种单芯片多处理 器系统。如图1所示,其具有在一个共享的主存储器上进行操作的9个 处理单元,其中包括一个主处理单元(Power Processing Element, PPE ) 和8个协处理单元(Synergistic Processing Element, SPE )。基于这样的 系统结构,CBE能够提供杰出的系统能力,其克服了同时期的多处理器 系统在性能上所存在的三个重要限制一功率使用、存储器使用和处理器 频率。因而,CBE被广泛地应用于信号处理、模式匹配、模型建立、目 标确定、映射、通信和加密等,尤其是在高性能计算领域,CBE占领 着重要的地位。可以说,CBE已经成功地进驻了市场的大部分领域。对于高性能计算或者其它计算敏感型的应用,越来越多的库函数已 经被改造成适合运行在CBE之上,这样多个库函数运行在同一个CBE上的运行效率和开发效率就变成一个明显的问题。每一 个运行在CBE上的计算敏感型应用主要依赖于SPE进行计算, 在SPE开始计算之前,首先要创建一些操作系统线程和SPE线程,然后 在计算结束后终止(destroy)线程。对于调用多个库函数,当调用第一 个库函数时,要经历创建线程、终止线程的过程,当调用第二个库函数 时,还需要经历创建线程、终止线程的过程,后面库函数调用也一样, 而创建线程和终止线程,以及其间的建立PPE/SPE通信都要花费时间, 对于特别大型的计算任务,这样的线程创建和终止时间可以忽略不计, 但是对于密集调用库函数的小型、计算敏感型应用来说,这样的频繁创 建线程、终止线程就会花费大量时间,使整个系统和任务的效率下降。
技术实现思路
因此,需要一种基于多处理器系统的多库函数调用的方法和系统, 该方法和系统能对于密集调用库函数的小型、计算敏感型应用可以提高 整个系统和任务的效率。根据本专利技术的一个方面,提供了 一种基于多处理器系统的多库函数 调用方法,其中所述多处理器系统包括一个主处理单元PPE和多个协处 理单元SPE,包括多库函数的应用程序在PPE的内存空间执行,该方法 包括在PPE的应用程序内维护各SPE的状态,其中已经启动的SPE具 有用于截获PPE命令的SPE代理;响应调用一库函数请求,PPE根据当前各SPE的状态,判断调用所述库函数的可用SPE数量是否足够;如果可用SPE数量足够,发送运行 命令到选择的SPE;执行完毕全部库函数后,PPE发送终止命令到全部启动的SPE。根据本专利技术的另 一个方面,提供了 一种基于多处理器系统的多库函 数调用系统,其中所述多处理器系统包括一个主处理单元PPE和多个协 处理单元SPE,包括多库函数的应用程序在PPE的内存空间执行,该系 统包括在PPE端包括SPIZ状态维护模块用于在PPE的应用程序内维护各SPE的状态;指示代理建立模块指示启动的SPE建立用于截获PPE命令的SPE 代理;命令发送模块响应调用一库函数请求,根据当前各SPE的状态, 判断调用所述库函数的可用SPE数量是否足够;如果可用SPE数量足够, 发送运行命令到选择的SPE;当执行完毕全部库函数后,发送终止命令 到全部启动的SPE;在各已经启动的SPE端包括用于截获PPE命令的SPE代理。通过实施本专利技术,多处理器系统在多库函数调用时,无需频繁创建 线程、终止线程,节省系统调用多库函数的处理时间,提高整个系统和 任务的效率。附图说明通过对附图中本专利技术示例实施例方式的更详细描述,本专利技术的上 述、以及其它目的、特征和优势将变得更加明显,其中,相同的参考标 号通常代表本专利技术示例实施例方式中的相同部件。图1示意性地示出了 CBE系统框图;图2示意性地示出了在CBE系统中调用一个库函数时,PPE和SPE 的流程;图3示意性地示出了在CBE系统中调用多个库函数时,PPE和SPE的流程;图4示意性地示出了根据本专利技术的一个优选的实施方式的多库函数 调用PPE和SPE主要流程;图5示意性地示出了根据本专利技术的一个优选的实施方式的多库函数 调用PPE和SPE详细流程;以及图6示意性地示出了根据本专利技术的一个优选的实施方式的多库函数调用系统。具体实施方式将参照附图更加详细地描述本专利技术的优选实施方式,在附图中显示 了本专利技术的优选实施例。然而,本专利技术可以以各种形式实现而不应该理 解为被这里阐述的实施例所限制。相反,提供这些实施例是为了使本专利技术更加透彻和完整,并且,完全将本专利技术的范围传达给本领域的技术人贝。参考现有技术图2,图2示意性地示出了在CBE系统中调用一个库 函数时,PPE和SPE的流程。在PPE端,在步骤S201开始调用SPE处 理流程,在步骤S202, PPE创建操作系统线程,然后在步骤S203发出 创建SPE线程指令,PPE发出创建SPE线程指令后就在步骤S204 —直 等待从SPE的确认;SPE发出确认后,PPE在步骤S205收到确认,判 断资源是否足够,如果资源不够,返回到步骤S202,继续创建操作系统 线程;如果资源足够,就进入步骤S206,准备数据并且发送命令到SPE。 PPE在步骤S207 —直等待SPE线程结束, 一旦结束,在步骤S208释放 SPE的相应资源,在步骤S209, PPE的调用SPE处理流程结束。在图2中,还给出了相应的SPE流程。该SPE在步骤S210,响应 PPE的要求,被启动后,在步骤S211初始化SPE环境,并在步骤S212 响应PPE的S204步骤,SPE发出确认初始化结束,SPE在步骤S213等 待从PPE的数据及处理命令,然后在步骤S214响应SPE的步骤S206, 处理接收到的数据并返回结果,该SPE流程在步骤s215终止。从图2可以知道,PPE调用 一个库函数就要创建操作系统线程和SPE 流程,结束后又释放掉该资源。参考图3,图3示意性地示出了在CBE系统中调用多个库函数时, PPE和SPE的流程。图3中,在步骤S301开始PPE的流程,PPE将要 调用多个库函数,这里假设将要调用N (N〉1 )个库函数。在步骤S302 开始调用库函数1 , SPE的流程如SPE流程1所示,该流程与图2的SPE流程是相同的。对于在步骤S303调用库函数2,...,在步骤S304调用 库函数N, PPE的具体的具体步骤都是和图2的PPE步骤相同,其对应 的SPE步骤也都和图2的SPE步骤相同。在步骤S305判断问题是否解 决,即是否该调用的库函数都已经调用完毕,如果完毕,就进入步骤 S306, PPE的流程结束。否则,继续调用库函数,这里,图3示意性地 指向调用库函数l。将图3和图2比较就可以看出,每当调用一个库函 数,从PPE角度,步骤S202创建操作系统线程、步骤S203创建SPE 线程都是要重复进行的,而对于每个SPE,每当调用一个库函数,都要 初始化SPE环境,调用结束还用终止该SPE,这些流程以及建立PP本文档来自技高网
...

【技术保护点】
一种基于多处理器系统的多库函数调用方法,其中所述多处理器系统包括一个主处理单元PPE和多个协处理单元SPE,包括多库函数的应用程序在PPE的内存空间执行,该方法包括:    在PPE的应用程序内维护各SPE的状态,其中已经启动的SPE具有用于截获PPE命令的SPE代理;    响应调用一库函数请求,PPE根据当前各SPE的状态,判断调用所述库函数的可用SPE数量是否足够;如果可用SPE数量足够,发送运行命令到选择的SPE;    执行完毕全部库函数后,PPE发送终止命令到全部启动的SPE。

【技术特征摘要】

【专利技术属性】
技术研发人员:李晖王佰玲彭红波
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1