4.2. 4.2 Multiple Local Call

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.

4.2.1. Example

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 ...

Get Patterns for Parallel Software Design now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.