Determina el tamaño del comunicador seleccionado, es decir, el número de procesos que están actualmente asociados a este.
#include "mpi.h" int MPI_Comm_size (MPI_Comm comm, int *size)
#include <mpi.h> int Com::Get_size () const
comm | Comunicador sobre el que se quiere conocer el tamaño. |
size | Tamaño del comunicador. |
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.
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(); }
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). |