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
  11. 6. Véase también

MPI_Comm_size

Descripción breve

Determina el tamaño del comunicador seleccionado, es decir, el número de procesos que están actualmente asociados a este.

Sintaxis

En C

#include  "mpi.h"
int MPI_Comm_size (MPI_Comm comm, int *size)

En C++

#include  <mpi.h>
int Com::Get_size () const

Parámetros

De entrada

comm Comunicador sobre el que se quiere conocer el tamaño.

De salida

size Tamaño del comunicador.

Descripción

Esta función devuelve el tamaño del comunicador seleccionado. Su uso es muy común en los programas basados en MPI. Para explicar mejor cómo funciona haremos uso de una ilustración. En la siguiente imagen podemos ver dos comunicadores, el comunicador global, en el que siempre se encuentran todos los procesos (MPI_COMM_WORLD) y un comunicador creado manualmente (comm1) en el que solo tenemos cuatro de los procesos. Vemos que en total son ocho procesos (desde P0 hasta P7). Si pedimos el tamaño del comunicador global, nos dirá que hay ocho procesos, para el otro comunicador, nos dirá que hay 4.

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

Un ejemplo sencillo de su uso es:

int main(int argc, char *argv[])
{
    int size;
    MPI_Init(&argc, &argv); // Inicializamos las hebras
    MPI_Comm_size(MPI_COMM_WORLD, &size); // Obtenemos el valor de nuestro identificador
    cout << "Hay " << size << " procesos en el comunicador global";
    MPI_Finalize();
}

Errores

MPI_SUCCESS No ha habido error, la función MPI se ha realizado satisfactoriamente.
MPI_ERR_COMM Significa que el comunicador especificado por parámetros es incorrecto. Un error frecuente es utilizar un comunicador nulo.
MPI_ERR_ARG Ha recibido un argumento incorrecto no especificado, generalmente relacionado con el tamaño. Un error frecuente es usar el entero (size) en lugar del puntero a este (&size).

Véase también

MPI_Comm_rank

Creado por: Daniel Guerrero Martínez y Sergio Rodríguez Lumley 2010

Valid HTML 4.01 Transitional