[发明专利]多线程计算有效
| 申请号: | 201380006344.7 | 申请日: | 2013-01-23 |
| 公开(公告)号: | CN104094235B | 公开(公告)日: | 2019-05-28 |
| 发明(设计)人: | 迈克尔·克莱尔·休斯顿;迈克尔·曼特;李·W·豪斯;本尼迪克特·R·盖斯特 | 申请(专利权)人: | 超威半导体公司 |
| 主分类号: | G06F9/54 | 分类号: | G06F9/54 |
| 代理公司: | 上海胜康律师事务所 31263 | 代理人: | 李献忠 |
| 地址: | 美国加利*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 多线程 计算 | ||
本发明提供了一种系统、方法和计算机程序产品用于改进多线程应用程序的资源利用率。本文所公开的技术提供事件驱动方式以仅在需要时启动内核来进行通道数据上的操作且然后终止以释放资源,而不是要求线程在等待来自通道的数据时阻塞或要求上下文切换以将阻塞最小化。这些操作在硬件中被有效处理,但是足够灵活能以所有编程模型方式来实施。
发明背景
发明领域
本发明大体上涉及软件编程,并且更具体来说,涉及多线程编程技术。
背景技术描述
许多高性能计算应用程序被使用多线程技术编写。当使用多线程技术时,执行的多个线程可以同时或通过交替访问处理流水线在不同的任务上工作。例如,如果可以将任务分解成两个不同的子任务,那么建立两个单独的线程可为有利的,每一个处理不同的子任务。然后,这些线程生成其对应的结果,其共同解决整个任务。
存在不同的技术用于给任务分配工作。一个方式通常被称为“生产者-消费者设计。”在生产者-消费者设计方式内,一个或多个线程负责生成数据,而一个或多个线程负责消费所生成的数据。举例来说,生产者线程可负责将数据从文件读取至可由消费者线程访问的存储区中。消费者线程从该存储区检索数据并且根据需要处理(消费)数据。
随着消费者线程的责任变得更复杂,消费者线程的资源要求通常也变得更复杂。在生产者-消费者设计方式中,随着数据从生产者线程到达存储区中,消费者线程可用于处理数据。对于消费者线程保持驻留在存储器中的该要求需要额外的资源利用率。另外,甚至在存储区为空,消费者线程不进行任何操作的情况下,交换消费者线程出入有源存储器也很昂贵(例如,对于额外的处理循环、完成时间、功率和其它方面)。
因此,所希望的是减少消费者线程的资源要求的技术。
发明的实施方案的概要
本发明的实施方案包括一种方法,其包括:定义通道、定义被配置成从所述通道读取数据的消费者内核、定义被配置成将数据写至所述通道的生产者内核、以及寄存被配置成在满足所述通道的条件时启动所述消费者内核的通道事件。
本发明的另一个实施方案包括计算机可读存储装置,其具有在其上存储的指令,由计算装置执行所述指令使所述计算装置进行包括以下的操作:定义通道、定义被配置成从所述通道读取数据的消费者内核、定义被配置成将数据写至所述通道的生产者内核、以及寄存被配置成在满足所述通道的条件时启动所述消费者内核的通道事件。
本发明的又一个实施方案包括一个系统,其具有:被配置成存储包括通道的模块的存储器、被配置成从所述通道读取数据的消费者内核、被配置成将数据写至所述通道的生产者内核、以及被配置成寄存通道事件的寄存模块,其中所述通道事件被配置成在满足所述通道的条件时启动所述消费者内核,并且一个或多个处理器被配置成处理所述模块。
本发明的进一步特征和优点以及本发明的各种实施方案的结构和操作在下文中参考附图详细描述。要注意的是本发明不受限于本文所述的具体实施方案。此类实施方案在此呈现仅用于说明的目的。基于本文所包含的教导,其它实施方案对于相关领域中的技术人员将是显而易见的。
附图简述
在此并入并形成说明书的部分的附图图示本发明的实施方案,并且与说明书一起进一步用于解释本发明的原理并使相关领域中的技术人员能够制作和使用本发明。
图1是使用现有技术的实例多线程应用程序。
图2图示根据本发明的实施方案的多线程应用程序。
图3是根据本发明的实施方案的图示开发多线程应用程序的操作的流程图。
图4是根据本发明的实施方案的图示扩展通道和事件处理的操作的流程图。
图5是根据本发明的实施方案的图示符合示例性生产者-消费者实施方式的消费者内核的操作的流程图。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于超威半导体公司,未经超威半导体公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201380006344.7/2.html,转载请声明来源钻瓜专利网。





