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_Comm_rank

Descripción breve

Determina el rango (identificador) del proceso que lo llama dentro del comunicador seleccionado.

Sintaxis

En C

#include  "mpi.h"
int MPI_Comm_rank (MPI_Comm comm, int *rank)

En C++

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

Parámetros

De entrada

comm Comunicador sobre el que se quiere conocer el identificador.

De salida

rank Entero que indica el rango del proceso.

Descripción

Esta función devuelve el rango del proceso que lo llama en el grupo de comunicación. Para comprender mejor el funcionamiento de este método, mostramos a continuación una imagen ilustrativa. En la imagen, vemos que cada proceso tiene un identificador diferente según el comunicador en el que se encuentre. En el global sus rangos serín 0 para P0, 1 para P1, etc. En el comunicador comm1, vemos que sus rangos son diferentes, siendo 0 para P2, 1 para P3, 2 para P6 y 3 para P7.

Imagen MPI_comm_rank (Pulsar sobre la imagen para ver la animación)
int main(int argc, char *argv[])
{
    int rank;
 
    MPI_Init(&argc, &argv); // Inicializamos las hebras
    MPI_Comm_rank(MPI_COMM_WORLD, &rank); // Obtenemos el valor de nuestro identificador
 
    cout << "Mi rango es " << rank;
    MPI_Finalize();
}

Es equivalente a acceder al grupo del comunicador con MPI_Comm_group, calcular el rango usando MPI_Group_rank y después liberando el grupo temporal con MPI_Group_free.

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.
Creado por: Daniel Guerrero Martínez y Sergio Rodríguez Lumley 2010

Valid HTML 4.01 Transitional