[发明专利]用于利用工作窃取支持进行有效同步屏障的技术有效
申请号: | 201580061987.0 | 申请日: | 2015-11-11 |
公开(公告)号: | CN107250984B | 公开(公告)日: | 2020-09-29 |
发明(设计)人: | A·D·罗宾森;A·D·冈萨雷斯 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/30 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 姬利永 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 利用 工作 窃取 支持 进行 有效 同步 屏障 技术 | ||
1.一种用于多线程化执行的计算设备,所述计算设备包括:
事务性屏障模块,所述事务性屏障模块用于:
通过由所述计算设备所执行的线程队的第一线程将所述第一线程的任务失窃标志的值与假进行交换,以及将所述任务失窃标志的所述值存储在所述第一线程的临时标志中,其中,所述临时标志对于所述第一线程而言是本地的;以及
由所述第一线程在交换所述任务失窃标志的所述值之后进入同步屏障;以及
规约模块,所述规约模块用于由所述第一线程通过响应于进入所述同步屏障而对所述线程队的多个临时标志执行逻辑OR规约操作以便为所述线程队的每个线程提供规约值,判定所述线程队的多个临时标志中的任何临时标志是否为真,其中,所述线程队包括包含所述第一线程的多个线程;
其中,所述事务性屏障模块进一步用于:
响应于确定所述多个临时标志中的任何临时标志为真而由所述第一线程重复对所述任务失窃标志的所述值的交换。
2.如权利要求1所述的计算设备,其中,将所述第一线程的所述任务失窃标志的所述值与假进行交换以及将所述任务失窃标志的所述值存储在所述临时标志中包括以原子方式将所述第一线程的所述任务失窃标志的所述值与假进行交换以及将所述任务失窃标志的所述值存储在所述临时标志中。
3.如权利要求1所述的计算设备,进一步包括任务执行模块,所述任务执行模块用于:
由所述第一线程执行来自所述第一线程的任务队列的第一任务;以及
由所述第一线程判定所述任务队列是否为空;
其中,交换所述任务失窃标志的所述值包括响应于确定所述任务队列为空而交换所述任务失窃标志的所述值。
4.如权利要求1所述的计算设备,其中,所述事务性屏障模块进一步用于:响应于进入所述同步屏障,由所述第一线程等待所述线程队的其他线程进入所述同步屏障。
5.如权利要求4所述的计算设备,进一步包括任务窃取模块,所述任务窃取模块用于:
响应于等待所述线程队的所述其他线程进入所述同步屏障,由所述第一线程从所述线程队的第二线程中窃取任务;以及
响应于窃取所述任务,由所述第一线程将所述第二线程的任务失窃标志设置为真。
6.如权利要求5所述的计算设备,其中,窃取所述任务以及设置所述第二线程的所述任务失窃标志包括以原子方式窃取所述任务以及设置所述第二线程的所述任务失窃标志。
7.如权利要求5所述的计算设备,其中,窃取所述任务包括:
标识所述线程队的所述第二线程;以及
从所述第二线程的任务队列中弹出所述任务;
其中,弹出所述任务以及设置所述第二线程的所述任务失窃标志包括以原子方式弹出所述任务以及设置所述第二线程的所述任务失窃标志。
8.如权利要求5所述的计算设备,其中,窃取所述任务进一步包括:
响应于弹出所述任务而由所述第一线程执行所述任务直至完成;
响应于执行所述任务直至完成而由所述第一线程判定所述第一线程的任务队列是否为空;
响应于确定所述任务队列不为空而由所述第一线程从所述任务队列中弹出第二任务;以及
响应于弹出所述第二任务而由所述第一线程执行所述第二任务直至完成。
9.如权利要求5所述的计算设备,其中,所述任务窃取模块进一步用于:
响应于从所述第二线程中窃取所述任务,由所述第一线程判定所述第一线程的所述临时标志是否等于假;
其中,将所述第二线程的所述任务失窃标志设置为真进一步包括响应于确定所述临时标志等于假而将所述第二线程的所述任务失窃标志设置为真。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580061987.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种机顶盒自动检修工具
- 下一篇:一种沼气池试验装置