Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
The Multiple Local Call pattern describes the design of a bidirectional one-to-many and many-to-one communication mechanism for a Parallel Layers application, taking the form of a tree-like communication structure. It describes a set of communication components that are capable of disseminating calls to multiple communication components that operate over global and/or local variables and return a result. This communication operation supports the delegation of parts of an overall processing activity to processing components in lower layers. Both the upper- and lower-layer components are allowed to execute simultaneously, requiring synchronous communication between them during each call. The call is considered local because all components are designed to exist and execute on a shared memory parallel system. In such an organization a higher-layer component should wait until every layer component below it has provided its result.
Consider the example in Section 3.2 of a parallel application for the Single-Source Shortest Path algorithm: suppose that a parallel program that must implement this algorithm is being developed using the Parallel Layers architectural pattern [OR98] [Ort07a] [Section 3.2] as a functional parallelism approach. The algorithm is partitioned among autonomous layer components that form the processing components of the parallel program. The program is to be developed for a shared memory computer whose programming language supports semaphores [Dij68] [Har98], critical regions [Bri72] [Hoa72] or monitors [Hoa74] [Bri75] [Har98] as synchronization mechanisms for process intercommunication.