Font Size: a A A

Task Based Parallel Programming On Multicore

Posted on:2019-08-25Degree:DoctorType:Dissertation
Country:ChinaCandidate:X P FanFull Text:PDF
GTID:1368330548955217Subject:Computer system architecture
Abstract/Summary:PDF Full Text Request
Given that multi-core and many core hardwares are getting popular,developing parallel programs that can fully utilize the performance power provided by these hardwares is becoming critical to computer sofewares.1)The programming errors while using these facilities totally differ from traditional parallel programming with POSIX threads.One can blame this for the complexity of parallel programming.Yet,another root cause is the anti-intuitive programming interfaces,which cause unnecessary programming errors.2)Developers tend to have multiple parallel programming facilities in their applications.The reason is that each parallel programming facility is designed to handle several specified patterns,which is reasonable.This practice brings two potential risks,more complexity to maintain for developers,and harder to optimize for performance.3)Application level scheduler for parallel tasks may involve performance bottleneck.The problem is that parallel tasks need to use thread-level locks to access shared data,which cause thread blocking and decrease performanc.Thus,we conduct a research “task based parallel programming on multi-core” to address these three challenges.Based on our research,we also present a task parallel programming library,Function Flow.Specifically,we tackle these challenges in the following three aspects.To ease task parallel programming,we conduct a case study for real-world usages of current popular task parallel programming facilities and propose improvement for the programming interface.In detail,our case study involves 107 user cases about using Intel TBB and Microsoft PPL.Our study shows that misuses are ubiquitous for the parallel programming facilities.Consequently,such misues cause dramatically decreased programming productivity.In detail,misusing parallel programming facilities includes compliation errors,like type mismatch,and runtime errors because of misunderstanding concepts in the facilities.Our experiment also shows that customizing compilation errors and coverting runtime errors into checker for compilers can remarkably decrease the chance of misuses,and therefore improve the productivity of task parallel programming.To support popular parallel patterns,we propose a unified pararllel programming model based on two simple primitives.The two primitives are used to coordinate parallel tasks,waiting for all tasks' complete and waiting for any tasks' complete.With the concept of coordinating parallel tasks with these two primitives,we develop a unified task parallel programming framework with the supports from lightweight representation of task dependency and specific runtime optimization.The supports provide rock-solid cornerstone for performance optimization even for complicated task parallel programs.As demonstration,our evaluation shows that our implementation has comparable performance with Intel TBB,which is state-of-the-art practice.To eliminate the thread blocking of the application level scheduler,we propose a new scheduling strategy,SSLink.The key idea is to postpone the tasks that may cause thread blocking based on the lock acquirement information forwared from the rewritten parallel program,in which the lock acquirement information is from static program analysis.Besides,we also address the challenges to intergrate with work-stealing.Our evaluation shows that SSLink performs better than Intel TBB.Overall,around task based parallel programming,our research makes an in-depth and comprehensive understanding from three aspects,understanding the problem of task parallel programming,a solution by coordinating parallel tasks in a unified framework,and performance improvement by eliminating the thread blocking problem.Furthermore,this research provides deeper understanding of task parallel programming and new abstraction of task based parallel programming and utilities.
Keywords/Search Tags:task parallel, usability, programming model, runtime system, task scheduling
PDF Full Text Request
Related items