{"title":"Staccato:具有缓存感知内存管理的共享内存工作窃取任务调度器","authors":"R. Kuchumov, Andrey Sokolov, V. Korkhov","doi":"10.1504/ijwgs.2019.103233","DOIUrl":null,"url":null,"abstract":"Work-stealing is one of the popular ways to schedule near-optimal task distribution across multiple CPU cores with low overheads on time, memory and inter-thread synchronisations. In the work-stealing strategy, workers that run out of tasks for execution start claiming tasks from other workers' queues. Double ended queues (deques) based on circular arrays proved to be an effective solution for such scenario. In this paper we investigate ways to improve performance of work-stealing schedulers based on deques by enhancing internal data handling mechanisms. Traditionally, deques are designed with an assumption that task pointers are stored within these data structures, while task objects reside in the heap memory. By modifying task queues so that they can hold task objects instead of pointers we managed to increase the performance more than 2.5 times on CPU-bound applications and decrease last-level cache misses up to 30% compared to Intel TBB and Intel/MIT Cilk work-stealing schedulers.","PeriodicalId":54935,"journal":{"name":"International Journal of Web and Grid Services","volume":"18 1","pages":"394-407"},"PeriodicalIF":1.0000,"publicationDate":"2019-10-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":"{\"title\":\"Staccato: shared-memory work-stealing task scheduler with cache-aware memory management\",\"authors\":\"R. Kuchumov, Andrey Sokolov, V. Korkhov\",\"doi\":\"10.1504/ijwgs.2019.103233\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Work-stealing is one of the popular ways to schedule near-optimal task distribution across multiple CPU cores with low overheads on time, memory and inter-thread synchronisations. In the work-stealing strategy, workers that run out of tasks for execution start claiming tasks from other workers' queues. Double ended queues (deques) based on circular arrays proved to be an effective solution for such scenario. In this paper we investigate ways to improve performance of work-stealing schedulers based on deques by enhancing internal data handling mechanisms. Traditionally, deques are designed with an assumption that task pointers are stored within these data structures, while task objects reside in the heap memory. By modifying task queues so that they can hold task objects instead of pointers we managed to increase the performance more than 2.5 times on CPU-bound applications and decrease last-level cache misses up to 30% compared to Intel TBB and Intel/MIT Cilk work-stealing schedulers.\",\"PeriodicalId\":54935,\"journal\":{\"name\":\"International Journal of Web and Grid Services\",\"volume\":\"18 1\",\"pages\":\"394-407\"},\"PeriodicalIF\":1.0000,\"publicationDate\":\"2019-10-21\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"6\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"International Journal of Web and Grid Services\",\"FirstCategoryId\":\"94\",\"ListUrlMain\":\"https://doi.org/10.1504/ijwgs.2019.103233\",\"RegionNum\":4,\"RegionCategory\":\"计算机科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q4\",\"JCRName\":\"COMPUTER SCIENCE, INFORMATION SYSTEMS\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"International Journal of Web and Grid Services","FirstCategoryId":"94","ListUrlMain":"https://doi.org/10.1504/ijwgs.2019.103233","RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q4","JCRName":"COMPUTER SCIENCE, INFORMATION SYSTEMS","Score":null,"Total":0}
Staccato: shared-memory work-stealing task scheduler with cache-aware memory management
Work-stealing is one of the popular ways to schedule near-optimal task distribution across multiple CPU cores with low overheads on time, memory and inter-thread synchronisations. In the work-stealing strategy, workers that run out of tasks for execution start claiming tasks from other workers' queues. Double ended queues (deques) based on circular arrays proved to be an effective solution for such scenario. In this paper we investigate ways to improve performance of work-stealing schedulers based on deques by enhancing internal data handling mechanisms. Traditionally, deques are designed with an assumption that task pointers are stored within these data structures, while task objects reside in the heap memory. By modifying task queues so that they can hold task objects instead of pointers we managed to increase the performance more than 2.5 times on CPU-bound applications and decrease last-level cache misses up to 30% compared to Intel TBB and Intel/MIT Cilk work-stealing schedulers.
期刊介绍:
Web services are providing declarative interfaces to services offered by systems on the Internet, including messaging protocols, standard interfaces, directory services, as well as security layers, for efficient/effective business application integration. Grid computing has emerged as a global platform to support organisations for coordinated sharing of distributed data, applications, and processes. It has also started to leverage web services to define standard interfaces for business services. IJWGS addresses web and grid service technology, emphasising issues of architecture, implementation, and standardisation.