1FREEZEGROUP(3PVM)               PVM Version 3.4              FREEZEGROUP(3PVM)
2
3
4

NAME

6       pvm_freezegroup  -  Freezes  dynamic  group  membership and caches info
7       locally
8
9

SYNOPSIS

11       C    int info = pvm_freezegroup( char *group , int size)
12
13       Fortran   call pvmffreezegroup( group, size, info )
14
15

PARAMETERS

17       group   Character string group name of an existing group.
18
19       size    Size of the group when it is frozen
20
21       info    size of group on success.  Values  less  than  0  indicate  and
22               error.
23

DESCRIPTION

25       The  routine  pvm_freezegroup makes a dynamic group named group static.
26       The  group  information  is   then  "cached"  by  all  group   members.
27       pvm_freezegroup  is  a  synchronizing routine and must be called by all
28       group members to complete.  size indicates the size the  dynamic  group
29       should  be  when made static.  A value of -1 indicates that the current
30       size of the group should be used.  info returns error information.
31
32       Once a dynamic group has been frozen with pvm_freezegroup , all  subse‐
33       quent  operations that can be satisfied with local data use the locally
34       held information. For processes that are  outside  of  the  group,  the
35       first group call, e.g., pvm_bcast(), will cause the static group infor‐
36       mation to be copied to the calling process.  Subsequent operations then
37       use  the  local information. Barriers are still arbitrated by the group
38       server.
39
40       Group members should call  pvm_lvgroup  to leave the group and free any
41       allocated structures that hold the group information.  Processes not in
42       the group may call  pvm_lvgroup  to free any locally  allocated  struc‐
43       tures.  In this case, an error code of PvmNotInGroup or PvmNoGroup will
44       be returned to the caller.
45
46       Barrier are always arbitrated by the group server, even  if  the  group
47       has been made static with pvm_freezegroup. If a process leaves a static
48       group while other process are waiting at a barrier, then PvmNoGroup  is
49       returned to all processes waiting at the barrier.  Future barrier calls
50       with the defunct static group, return the same error.
51
52

EXAMPLES

54       C:
55               inum = pvm_joingroup("worker");
56            info = pvm_freezegroup( "worker", size );
57
58       Fortran:
59               CALL PVMFJOINGROUP('group2', inum)
60            CALL PVMFFREEZEGROUP( 'group2', size, info )
61
62

ERRORS

64       These error conditions can be returned by pvm_freezegroup
65
66       PvmSysErr
67              pvmd was not started or has crashed.
68
69       PvmBadParam
70              giving a NULL group name.
71
72       PvmDupGroup
73              trying to freeze a group that is already frozen.
74
75       PvmNotInGroup
76              trying to freeze a group that you are not in.
77

BUGS

79       There is no way to unfreeze a group.
80
81       Processes are not notified if a frozen group becomes invalid.
82
83       Having a non-member process call pvm_lvgroup to free  structures  is  a
84       bit strange.
85

SEE ALSO

87       pvm_barrier(3PVM), pvm_lvgroup(3PVM)
88
89
90
91                                 16 March 1995               FREEZEGROUP(3PVM)
Impressum