Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
FREEZEGROUP(3PVM)		 PVM Version 3.4	       FREEZEGROUP(3PVM)

NAME
     pvm_freezegroup - Freezes dynamic group membership and caches info locally

SYNOPSIS
     C	  int info = pvm_freezegroup( char *group , int size)

     Fortran   call pvmffreezegroup( group, size, info )

PARAMETERS
     group   Character string group name of an existing group.

     size    Size of the group when it is frozen

     info    size of group on success. Values less than 0 indicate and error.

DESCRIPTION
     The  routine  pvm_freezegroup makes a dynamic group named group static. The
     group information is  then "cached" by all group members.	 pvm_freezegroup
     is  a synchronizing routine and must be called by all group members to com-
     plete.  size indicates the size the dynamic group should be when made  sta-
     tic.   A value of -1 indicates that the current size of the group should be
     used.  info returns error information.

     Once a dynamic group has been frozen with pvm_freezegroup , all  subsequent
     operations  that  can be satisfied with local data use the locally held in-
     formation. For processes that are outside of the  group,  the  first  group
     call,  e.g.,  pvm_bcast(),  will  cause  the static group information to be
     copied to the calling process.  Subsequent operations then  use  the  local
     information. Barriers are still arbitrated by the group server.

     Group members should call	pvm_lvgroup  to leave the group and free any al-
     located  structures  that hold the group information.  Processes not in the
     group may call  pvm_lvgroup  to free any locally allocated  structures.  In
     this case, an error code of PvmNotInGroup or PvmNoGroup will be returned to
     the caller.

     Barrier  are  always  arbitrated by the group server, even if the group has
     been made static with pvm_freezegroup. If a process leaves a  static  group
     while  other  process are waiting at a barrier, then PvmNoGroup is returned
     to all processes waiting at the barrier.  Future barrier calls with the de-
     funct static group, return the same error.

EXAMPLES
     C:
	     inum = pvm_joingroup("worker");
	  info = pvm_freezegroup( "worker", size );

     Fortran:
	     CALL PVMFJOINGROUP('group2', inum)
	  CALL PVMFFREEZEGROUP( 'group2', size, info )

ERRORS
     These error conditions can be returned by pvm_freezegroup

     PvmSysErr
	    pvmd was not started or has crashed.

     PvmBadParam
	    giving a NULL group name.

     PvmDupGroup
	    trying to freeze a group that is already frozen.

     PvmNotInGroup
	    trying to freeze a group that you are not in.

BUGS
     There is no way to unfreeze a group.

     Processes are not notified if a frozen group becomes invalid.

     Having a non-member process call pvm_lvgroup to free structures  is  a  bit
     strange.

SEE ALSO
     pvm_barrier(3PVM), pvm_lvgroup(3PVM)

				  16 March 1995 	       FREEZEGROUP(3PVM)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=pvm_freezegroup&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help