---
name: "pvm_bcast"
section: "3"
platform: "linux"
package: "pvm-dev"
version: "3.4.2-8"
release: "Debian 3.0 (Woody)"
platforms: ["linux"]
url: "https://new.carta.tech/pvm_bcast"
---

# pvm\_bcast(3)

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

## 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)
