- 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
- 6. Véase también
Descripción breve
Devuelve el rango del proceso fuente y destino para una operación de movimiento en una topología cartesiana, teniendo en cuenta dirección y cantidad.
Sintaxis
En C
En C++
#include <mpi.h>
void Cartcomm::Shift(int direction, int disp, int& rank_source,
int& rank_dest) const
Parámetros
De entrada
comm | Comunicador con estructura cartesiana.
|
direction | Dimensión de la coordenada que cambia.
|
disp | Desplazamiento. |
De salida
rank_source | Rango del proceso origen.
|
rank_dest | Rango del proceso destino. |
Descripción
Esta función devuelve el rango correcto para un desplazamiento que puede incluirse directamente como argumento de MPI_Send, MPI_Recv, etc. Para realizar el desplazamiento, se especifica en el argumento direction la dimensión en la que se debe hacer el desplazamiento (un valor comprendido entre 0 y ndims-1).
El desplazamiento disp es el número, positivo o negativo, del desplazamiento. La rutina devuelve dos resultados: rank_source y rank_dest. En el caso de que las coordenadas estén fuera de la malla se devuelve MPI_PROC_NULL.
Direction = 0; disp = 2
Direction = 1; disp = -1
Errores
MPI_SUCCESS | No ha habido error, la función se ha completado satisfactoriamente.
|
MPI_ERR_TOPOLOGY | Topología no válida. No hay un topología asociada a este comunicador.
|
MPI_ERR_DIMS | Argumento dimensión ilegal. El argumento dimensión es nulo o tamaño menor o igual a 0.
|
MPI_ERR_ARG | Valor de argumento no válido. |
Véase también
MPI_Cart_create
MPI_Cart_rank
MPI_Cart_coords