1FREEZEGROUP(3PVM) PVM Version 3.4 FREEZEGROUP(3PVM)
2
3
4
6 pvm_freezegroup - Freezes dynamic group membership and caches info
7 locally
8
9
11 C int info = pvm_freezegroup( char *group , int size)
12
13 Fortran call pvmffreezegroup( group, size, info )
14
15
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
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
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
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
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
87 pvm_barrier(3PVM), pvm_lvgroup(3PVM)
88
89
90
91 16 March 1995 FREEZEGROUP(3PVM)