bionic (3) pvm_bcast.3PVM.gz

Provided by: pvm-dev_3.4.6-1build2_amd64 bug

NAME

       pvm_bcast - Broadcasts the data in the active message buffer to a group of processes.

SYNOPSIS

       C    int info = pvm_bcast( char *group, int msgtag )

       Fortran   call pvmfbcast( group, msgtag, info )

PARAMETERS

       group   Character string group name of an existing group.

       msgtag  Integer  message  tag supplied by the user.  msgtag should be >= 0.  It allows the user's program
               to distinguish between different kinds of messages .
               info integer status code returned by the routine.  Values less than zero indicate an error.

DESCRIPTION

       The routine pvm_bcast broadcasts a message stored in the active send buffer to all the members of  group.
       In  PVM  3.2  and  later  the  broadcast  message  is not sent back to the sender.  Any PVM task can call
       pvm_bcast(), it need not be a member of the group.  The content of the message can  be  distinguished  by
       msgtag.  If pvm_bcast is successful, info will be 0. If some error occurs then info will be < 0.

       pvm_bcast is asynchronous.  Computation on the sending processor resumes as soon as the message is safely
       on its way to the receiving processors.  This is in contrast to synchronous communication,  during  which
       computation  on  the  sending  processor  halts until a matching receive is executed by all the receiving
       processors.

       pvm_bcast first determines the tids of the group members by checking a group data base.  A  multicast  is
       performed  to these tids.  If the group is changed during a broadcast the change will not be reflected in
       the broadcast.  Multicasting is not supported by most multiprocessor  vendors.   Typically  their  native
       calls  only  support  broadcasting  to  all  the  user's  processes  on a multiprocessor. Because of this
       omission, pvm_bcast may not be an efficient communication method on some multiprocessors.

EXAMPLES

       C:
            info = pvm_initsend( PvmDataRaw );
            info = pvm_pkint( array, 10, 1 );
            msgtag = 5 ;
            info = pvm_bcast( "worker", msgtag );

       Fortran:
            CALL PVMFINITSEND( PVMDEFAULT )
            CALL PVMFPKFLOAT( DATA, 100, 1, INFO )
            CALL PVMFBCAST( 'worker', 5, INFO )

ERRORS

       These error conditions can be returned by pvm_bcast

       PvmSysErr
              pvmd was not started or has crashed.

       PvmBadParam
              giving a negative msgtag.

       PvmNoGroup
              giving a non-existent group name.

SEE ALSO

       pvm_joingroup(3PVM)

                                                 30 August, 1993                                     BCAST(3PVM)