The processes are supplied in a number of different variations depending on the nature of the channel connections provided by the process as follows.
Any expects the any end of a channel
List expects a channel list
Collect means a collection containing a Collect process as the last or
only element in the process
The nature of the process is defined by concepts such as
Group a set of parallel processes all undertaking the same operation on
different data objects, implementing a data parallel architecture.
Some of the Group implementations (ListGroupList and AnyGroupList) enable synchronisation of
the Worker processes by the use of a Barrier that
is created automatically depending on the properties of the Group.
The groups terminate by sending a UniversalTerminator object to all the processes connected to the Group outputs.
Author, Licence and Copyright statement author Jon Kerridge School of Computing Edinburgh Napier University Merchiston Campus, Colinton Road Edinburgh EH10 5DT Author contact: j.kerridge (at) napier.ac.uk Copyright Jon Kerridge Edinburgh Napier University * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Class | Description |
---|---|
AnyGroupAny | The AnyGroupAny is an implementation of a Group in which inputs are read from a one2any channel and all the outputs of the Worker processes are written to an any2One channel so they can be connected to a single process. |
AnyGroupList | The AnyGroupList is an implementation of a Group in which all the outputs from the Worker processes are written to the ChannelOutputList outputList. |
ListGroupAny | The ListGroupAny is an implementation of a Group in which all the outputs of the Worker processes are written to an any2One channel so they can be connected to a single process. |
ListGroupCollect | A ListGroupCollect is a Group with an internal Collect process rather than a Worker. |
ListGroupList | A ListGroupList is essentially a loop unrolling of a sequential FOR statement such that each loop of the for is allocated to a different Worker process thereby enabling the implementation of a parallel For loop. |
ListMapList | The ListMapList process implements a group of Map processes asthe Map part of the map-reduce architecture. |
ListReduceList | The ListReduceList process implements the reduce phase of the map-reduce architecture. |
ListThreePhaseWorkerList |