Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Reachability trees for high-level Petri nets
Theoretical Computer Science
Solving problems on concurrent processors. Vol. 1: General techniques and regular problems
Solving problems on concurrent processors. Vol. 1: General techniques and regular problems
Introduction to algorithms
Effective bandwidth allocation and buffer dimensioning in ATM based networks with priorities
Computer Networks and ISDN Systems - Special issue: telecommunication services for developing economics
Repeatable and portable message-passing programs
PODC '94 Proceedings of the thirteenth annual ACM symposium on Principles of distributed computing
Efficient message passing interface (MPI) for parallel computing on clusters of workstations
Proceedings of the seventh annual ACM symposium on Parallel algorithms and architectures
Coloured Petri nets: basic concepts, analysis methods and practical use, vol. 2
Coloured Petri nets: basic concepts, analysis methods and practical use, vol. 2
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Computers and Intractability: A Guide to the Theory of NP-Completeness
Computers and Intractability: A Guide to the Theory of NP-Completeness
The Semantics of Blocking and Nonblocking Send and Receive Primitives
Proceedings of the 8th International Symposium on Parallel Processing
Very Long Instruction Word architectures and the ELI-512
ISCA '83 Proceedings of the 10th annual international symposium on Computer architecture
The Barrier Synchronization Impact on the MPI-Programs Performance Using a Cluster of Workstations
ISPAN '97 Proceedings of the 1997 International Symposium on Parallel Architectures, Algorithms and Networks
Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers (2nd Edition)
On the complexity of buffer allocation in message passing systems
Journal of Parallel and Distributed Computing
Optimal buffer allocation in finite closed networks with multiple servers
Computers and Operations Research
The optimal buffer allocation problem
IEEE Transactions on Information Theory
Exploitation of multicore systems in a java virtual machine
IBM Journal of Research and Development
Hi-index | 0.00 |
The correctness of applications that perform asynchronous message passing typically relies on the underlying hardware having a sufficient amount of memory (message buffers) to hold all undelivered messages-such applications may deadlock when executed on a system with an insufficient number of message buffers. Thus, determining the minimum number of buffers that an application needs to prevent deadlock is an important task when writing portable parallel applications. Unfortunately, both this problem (called the Buffer Allocation Problem) and the simpler problem of determining whether an application may deadlock for a given number of available message buffers are intractable [A. Brodsky, J. Pedersen, A. Wagner, On the complexity of buffer allocation in message passing systems, Journal of Parallel and Distributed Computing 65 (2005) 692-713]. We present a new epoch-based polynomial-time approach for approximating a solution to the Buffer Allocation Problem. Our approach partitions application executions into epochs and intersperses barrier synchronizations between them, thus limiting the number of message buffers necessary to ensure deadlock-freedom. This approach produces near optimal solutions for many common cases and can be adapted to guide application modifications that ensure deadlock-freedom when the application is executed on different systems. We describe a prototype implementation, and present an empirical evaluation of this approach. Lastly, we describe a space-time trade-off between the number of available message buffers and the number of barrier synchronizations, and describe how this trade-off can be used to fine-tune application performance.