BCAST(3PVM) BCAST(3PVM)
NAME
pvm_bcast - Broadcasts the data in the active message buffer to a group of
processes.
SYNOPSIS
CC int info = pvm_bcast( char *group, int msgtag )
Fortran call pvmfbcast( group, msgtag, info )
PARAMETERS
group Character string group name of an existing group.
mmsgtag 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.
DISCUSSION
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 dis-
tinguished 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 broad-
cast. Multicasting is not supported by most multiprocessor vendors. Typi-
cally 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)
Back to the alphabetical listing
Back to the listing of routines
for sending and receiving messages