A bridging model for parallel computation
Communications of the ACM
A simple load balancing scheme for task allocation in parallel machines
SPAA '91 Proceedings of the third annual ACM symposium on Parallel algorithms and architectures
LogP: towards a realistic model of parallel computation
PPOPP '93 Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming
A concurrent dynamic task graph
Parallel Computing
A Framework for Exploiting Task and Data Parallelism on Distributed Memory Multicomputers
IEEE Transactions on Parallel and Distributed Systems
BSPlib: The BSP programming library
Parallel Computing
Performance of Hierarchical Processor Scheduling in Shared-Memory Multiprocessor Systems
IEEE Transactions on Computers
Benchmarking and comparison of the task graph scheduling algorithms
Journal of Parallel and Distributed Computing
Task Parallelism and High-Performance Languages
IEEE Parallel & Distributed Technology: Systems & Technology
Approaches for Integrating Task and Data Parallelism
IEEE Concurrency
Parallelism in random access machines
STOC '78 Proceedings of the tenth annual ACM symposium on Theory of computing
Evaluation of Task Pools for the Implementation of Parallel Irregular Algorithms
ICPPW '02 Proceedings of the 2002 International Conference on Parallel Processing Workshops
Hi-index | 0.00 |
Constructing high performance computing system and providing easy-to-use programming model for users are two main parts of parallel computing, but the latter has been in a sorry state for a long time. LilyTask programming model is based on tasks which can be easily mapped to the decomposition of computation. Without explict synchronization and mutual exclusion, users will concentrate on the inherent parallelism in a problem instead of lock/unlock programming techniques. Most existing implementations of the task pool, a flexible data structure for task parallel, lack basic representation of relations among tasks. LilyTask introduces task group and task relation to help users easily map subproblems to tasks. The kernel of LilyTask system, a distributed task pool, automatically exploits potential parallelism among tasks at runtime. With runtime task assignment and task stealing, LilyTask system achieves dynamic load balancing. Our performance evaluation shows that LilyTask system with task pool outperforms sequential programs and BSPlib in solving both regular and irregular problems.