1. Indice de pagina
  2. 1. Descripción breve
  3. 2. Sintaxis
  4. 2.1. En C
  5. 2.2. En C++
  6. 3. Parámetros
  7. 3.1. De entrada
  8. 3.2. De salida
  9. 4. Descripción
  10. 5. Errores

MPI_Bcast

Descripción breve

Envía un mensaje desde un proceso origen a todos los procesos pertenecientes al mismo grupo.

Sintaxis

En C

#include <mpi.h>
int MPI_Bcast(void *buffer, int count, MPI_Datatype datatype,
			int root, MPI_Comm comm)

En C++

#include <mpi.h>
void MPI::Comm::Bcast(void* buffer, int count,
	const MPI::Datatype& datatype, int root) const = 0

Parámetros

De entrada

buffer [El mismo que de salida] Dirección inicial del buffer (a enviar para la raíz).
count Número de elementos en el buffer (int).
datatype Tipo de dato de los elementos del buffer (Por ejemplo, MPI_INT).
root Rango (rank) del proceso que transmitirá el mensaje al resto (int).
comm Comunicador por el que se realiza la transmisión.

De salida

buffer [El mismo que de entrada] Dirección inicial del buffer (a recibir para el resto).

Descripción

MPI_Bcast envía un único mensaje desde el proceso que tenga el rango de raíz (root) a todos los procesos del grupo (en general, los del comunicador especificado), incluyendose a sí mismo. Todos los procesos llaman a la función exactamente de la misma manera, usando siempre los mismos argumentos para comm (el comunicador) y para el proceso raíz (root). Cuando se haya completado la función, todos los procesos tendrán una copia en su buffer de entrada de lo enviado por el proceso raíz.
En general los tipos de datos derivados están permitidos para el parámetro datatype. La concordancia en tamaño entre los tipos de datos especificados por los procesos receptores y del emisor debe ser igual. Esto implica que la cantidad de datos enviados debe ser la misma cantidad que los datos recibidos entre cada proceso con la raíz (root). Todas las rutinas de envío y recepción de datos a colectivos (o entre colectivos) tienen esta restricción impuesta.

Imagen MPI_Bcast (Pulsar sobre la imagen para ver la animación)

Errores

MPI_SUCCESS No ha habido error, la función se ha completado satisfactoriamente.
MPI_ERR_COMM Comunicador no válido. Un error común es usar un comunicador nulo.
MPI_ERR_COUNT Valor no válido del argumento count. Debe ser un valor no negativo, a veces se permite un valor cero.
MPI_ERR_TYPE Tipo de dato especificado no válido. Puede ser un tipo de dato (MPI_Datatype) para el que aún no se ha hecho commit (Véase MPI_Type_commit).
MPI_ERR_BUFFER Puntero al buffer no válido. Generalmente sucede cuando se especifica un puntero a null, lo cual no está permitido.
MPI_ERR_ROOT Proceso raíz (root) no válido. El proceso emisor debe ser especificado como un rango (rank) dentro del comunicador por el que se realiza la comunicación. Los rangos deben variar entre cero y el tamaño del comunicador menos uno.
Creado por: Daniel Guerrero Martínez y Sergio Rodríguez Lumley 2010

Valid HTML 4.01 Transitional