Concept ProcessGroup

Contents

Description

A process group is an abstraction of a set of coordinating processes. A process group does not specify how the processes coordinate (although particular refinements of the concept may do so), but is able to determine which process is currently executing and how many processes are in the group.

Refinement of

Notation

PG
A type that models the ProcessGroup concept.
pg
Object of type PG

Associated types

Concept tag PG::communication_category Must be convertible to process_group_tag.
Process ID type PG::process_id_type A type used to uniquely identify a particular process in the process group. This type must be DefaultConstructible, Assignable, and EqualityComparable.
Process size type PG::process_size_type An integral type used to store the number of processes

Valid Expressions

Name Expression Type Semantics
Number of processes num_processes(pg) Convertible to process_size_type Returns the number of processes in this group.
Executing process process_id(pg) Convertible to process_id_type Returns the ID of the process that is currently executing. There are num_processes(pg) distinct return values.
Synchronize synchronize(pg) void Processes wait at the synchronization barrier until all processes have arrived, at which point all processes continue execution.

Models


Copyright (C) 2004-5 The Trustees of Indiana University.

Authors: Douglas Gregor and Andrew Lumsdaine