Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
The Unified Modeling Language user guide
The Unified Modeling Language user guide
EASY PIPE: An ``EASY to use'' Parallel Image processing Environment based on algorithmic skelekons
IPDPS '01 Proceedings of the 15th International Parallel & Distributed Processing Symposium
Implementing streams on a data flow computer system with paged memory
ISCA '83 Proceedings of the 10th annual international symposium on Computer architecture
Software and the Concurrency Revolution
Queue - Multiprocessors
C++ GUI Programming with Qt 4
Patterns for parallel programming
Patterns for parallel programming
Intel threading building blocks
Intel threading building blocks
Hi-index | 0.00 |
We present a design pattern which allows for easy multithreaded application development, without requiring parallel programming expertise from potential users. The pattern encourages reusability considering threads as truly independent software components, or agents, while hiding the low level details about safe data sharing and synchronization. Though coarse grained, the solution is perfectly compatible with other more specific multithreading techniques, which could be used in more computationally intensive agents. The approach is based on the classical pipeline pattern, but includes also asynchronous communications and event driven responses, and implements an efficient distributed synchronization and data sharing technique, which minimizes overhead. These features make the pattern specially adequate for real time applications that possibly need to be monitored by an interactive GUI, such as computer vision or signal processing applications, among others.