Adaptive load sharing in homogeneous distributed systems
IEEE Transactions on Software Engineering
Actors: a model of concurrent computation in distributed systems
Actors: a model of concurrent computation in distributed systems
Journal of Molecular Graphics
ACT++: building a concurrent C++ with actors
Journal of Object-Oriented Programming
The NAS parallel benchmarks—summary and preliminary results
Proceedings of the 1991 ACM/IEEE conference on Supercomputing
A Dynamic Load-Balancing Policy with a Central Job Dispatcher (LBC)
IEEE Transactions on Software Engineering
Scheduling multithreaded computations by work stealing
Journal of the ACM (JACM)
Programming dynamically reconfigurable open systems with SALSA
ACM SIGPLAN Notices
Load Balancing across Near-Homogeneous Multi-Resource Servers
HCW '00 Proceedings of the 9th Heterogeneous Computing Workshop
Distributed allocation with pools of servers
PODC '82 Proceedings of the first ACM SIGACT-SIGOPS symposium on Principles of distributed computing
Load Balancing of Autonomous Actors over Dynamic Networks
HICSS '04 Proceedings of the Proceedings of the 37th Annual Hawaii International Conference on System Sciences (HICSS'04) - Track 9 - Volume 9
A scalable approach to multi-agent resource acquisition and control
Proceedings of the fourth international joint conference on Autonomous agents and multiagent systems
The Internet Operating System: Middleware for Adaptive Distributed Computing
International Journal of High Performance Computing Applications
Programming Erlang: Software for a Concurrent World
Programming Erlang: Software for a Concurrent World
Kilim: Isolation-Typed Actors for Java
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Scalable Dynamic Load Balancing Using UPC
ICPP '08 Proceedings of the 2008 37th International Conference on Parallel Processing
Actor frameworks for the JVM platform: a comparative analysis
PPPJ '09 Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis
Proceedings of the 15th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
UTS: an unbalanced tree search benchmark
LCPC'06 Proceedings of the 19th international conference on Languages and compilers for parallel computing
Actors that unify threads and events
COORDINATION'07 Proceedings of the 9th international conference on Coordination models and languages
EuroPar'10 Proceedings of the 16th international Euro-Par conference on Parallel processing: Part I
Hierarchical Load Balancing for Charm++ Applications on Large Supercomputers
ICPPW '10 Proceedings of the 2010 39th International Conference on Parallel Processing Workshops
Temporal Reasoning about Resources for Deadline Assurance in Distributed Systems
ICDCSW '10 Proceedings of the 2010 IEEE 30th International Conference on Distributed Computing Systems Workshops
Work stealing for multi-core HPC clusters
Euro-Par'11 Proceedings of the 17th international conference on Parallel processing - Volume Part I
Supporting Deadline Constrained Distributed Computations on Grids
GRID '11 Proceedings of the 2011 IEEE/ACM 12th International Conference on Grid Computing
Hi-index | 0.00 |
Dynamic load balancing is critical in achieving high performance in parallel systems, especially for applications with unpredictable workloads. Traditional load balancing approaches -- such as work-sharing and work-stealing -- often assume that the computations can be divided into smaller computations based on some granularity. These approaches do not scale when the computations are not dividable and their sizes are highly variant. In this paper, we present a novel approach -- founded in the Actor model known for its programmability -- for dynamically load-balancing non-uniform parallel computations. Specifically, our approach is to explicitly reason about resource requirements and commitments at run-time in order to make fine-grained scheduling decisions. We prototype our approach by extending an efficient Java implementation of Actors, ActorFoundry. We have also implemented a tuner which dynamically balances the resources used by the computations vs. those used by the reasoning mechanism, essentially balancing the quality of scheduling against the resources needed for achieving it. We propose a new benchmark -- the Unbalanced Cobwebbed Tree (UCT) -- to fairly compare our approach to existing approaches, which captures the non-uniform nature of computations. Experimental results show that despite the higher overhead of providing Actors' programmability features, for a diverse enough set of computations, our approach outperforms both work-sharing and work-stealing approaches, and shows better scalability.