- Indice de pagina
- 1. Descripción breve
- 2. Sintaxis
- 2.1. En C
- 2.2. En C++
- 3. Parámetros
- 3.1. De entrada
- 3.2. De salida
- 4. Descripción
- 5. Errores
Descripción breve
Envía un mensaje desde un proceso origen a todos los procesos pertenecientes al mismo grupo.
Sintaxis
En C
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.
(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. |