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

FreeBSD Manual Pages

  
 
  

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

NAME
       pvm_mcast  -  Multicasts	the data in the	active message buffer to a set
       of tasks.

SYNOPSIS
       C    int	info = pvm_mcast( int *tids, int ntask,	int msgtag )

       Fortran	 call pvmfmcast( ntask,	tids, msgtag, info )

PARAMETERS
       ntask   Integer specifying the number of	tasks to be sent to.

       tids    Integer array of	length ntask containing	the task  IDs  of  the
	       tasks to	be sent	to.

       msgtag  Integer	message	tag supplied by	the user.  msgtag should be >=
	       0.  It allows the user's	program	to distinguish between differ-
	       ent kinds of messages .

       info    Integer	status code returned by	the routine.  Values less than
	       zero indicate an	error.

DESCRIPTION
       The routine pvm_mcast multicasts	a message stored in  the  active  send
       buffer  to ntask	tasks specified	in the tids array.  The	message	is not
       sent to the caller even if listed in the	array of tids.	The content of
       the  message  can be distinguished by msgtag.  If pvm_mcast is success-
       ful, info will be 0. If some error occurs then info will	be < 0.

       The receiving processes can call	either pvm_recv	or  pvm_nrecv  to  re-
       ceive their copy	of the multicast.  pvm_mcast is	asynchronous and based
       on a minimum spanning tree algorithm between the	pvmds.	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 the matching receive is executed by the receiving processor.

       pvm_mcast first determines which	 other	pvmds  contain	the  specified
       tasks.  Then passes the message to these	pvmds which in turn distribute
       the message to their local tasks	without	further	network	traffic.

       Multicasting is not supported by	most  multiprocessor  vendors.	 Typi-
       cally  their  native  calls  only  support  broadcasting	to {\m all the
       user's  processes  on  a	 multiprocessor.  Because  of  this  omission,
       pvm_mcast  may  not be an efficient communication method	on some	multi-
       processors except in the	special	case of	broadcasting to	all  PVM  pro-
       cesses.

EXAMPLES
       C:
	    info = pvm_initsend( PvmDataRaw );
	    info = pvm_pkint( array, 10, 1 );
	    msgtag = 5 ;
	    info = pvm_mcast( tids, ntask, msgtag );

       Fortran:
	    CALL PVMFINITSEND(PVMDEFAULT)
	    CALL PVMFPACK( REAL4, DATA,	100, 1,	INFO )
	    CALL PVMFMCAST( NPROC, TIDS, 5, INFO )

ERRORS
       These error conditions can be returned by pvm_mcast

       PvmBadParam
	      giving a msgtag <	0.

       PvmSysErr
	      pvmd not responding.

       PvmNoBuf
	      no send buffer.

SEE ALSO
       pvm_psend(3PVM),	pvm_recv(3PVM),	pvm_send(3PVM)

				30 August, 1993			   MCAST(3PVM)

NAME | SYNOPSIS | PARAMETERS | DESCRIPTION | EXAMPLES | ERRORS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=pvm_mcast&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help