{"title":"改进英特尔线程构建块中的任务窃取","authors":"Shiyi Lu, Qing Li","doi":"10.1109/CyberC.2011.61","DOIUrl":null,"url":null,"abstract":"The Intel Threading Building Blocks (TBB)is a run-time library[1] for parallel programming based on C++. The TBB programming environment facilitates programmers to express concurrency in terms of parallel tasks rather than parallel threads. TBB provide programmers with parallel algorithms and concurrent containers, thus programmers can parallel a program without considering how to map the tasks on to the physical threads. In fact, all the paralleling task work is based on the task scheduler. When stealing a task, the task scheduler select the victim thread randomly. In this paper, we first study and characterize the TBB's random stealing. Then we provide two method to predicate the threads' criticality, using the methods to improve the performance of TBB's task stealing. We did some experiments to validate the achievement in improving the performance of TBB's task stealing.","PeriodicalId":227472,"journal":{"name":"2011 International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery","volume":"15 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-10-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"5","resultStr":"{\"title\":\"Improving the Task Stealing in Intel Threading Building Blocks\",\"authors\":\"Shiyi Lu, Qing Li\",\"doi\":\"10.1109/CyberC.2011.61\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The Intel Threading Building Blocks (TBB)is a run-time library[1] for parallel programming based on C++. The TBB programming environment facilitates programmers to express concurrency in terms of parallel tasks rather than parallel threads. TBB provide programmers with parallel algorithms and concurrent containers, thus programmers can parallel a program without considering how to map the tasks on to the physical threads. In fact, all the paralleling task work is based on the task scheduler. When stealing a task, the task scheduler select the victim thread randomly. In this paper, we first study and characterize the TBB's random stealing. Then we provide two method to predicate the threads' criticality, using the methods to improve the performance of TBB's task stealing. We did some experiments to validate the achievement in improving the performance of TBB's task stealing.\",\"PeriodicalId\":227472,\"journal\":{\"name\":\"2011 International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery\",\"volume\":\"15 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2011-10-10\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"5\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2011 International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/CyberC.2011.61\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2011 International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CyberC.2011.61","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Improving the Task Stealing in Intel Threading Building Blocks
The Intel Threading Building Blocks (TBB)is a run-time library[1] for parallel programming based on C++. The TBB programming environment facilitates programmers to express concurrency in terms of parallel tasks rather than parallel threads. TBB provide programmers with parallel algorithms and concurrent containers, thus programmers can parallel a program without considering how to map the tasks on to the physical threads. In fact, all the paralleling task work is based on the task scheduler. When stealing a task, the task scheduler select the victim thread randomly. In this paper, we first study and characterize the TBB's random stealing. Then we provide two method to predicate the threads' criticality, using the methods to improve the performance of TBB's task stealing. We did some experiments to validate the achievement in improving the performance of TBB's task stealing.