- 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
Crea un nuevo comunicador con topología cartesiana
Sintaxis
En C
En C++
#include <mpi.h>
Cartcomm Intracomm::Create_cart(int ndims, const int dims[],
const bool periods[], bool reorder) const
Parámetros
De entrada
comm_old | Comunicador de entrada.
|
ndims | Numero de dimensiones de la rejilla cartesiana.
|
dims | Array de enteros de tamaño ndims que especifica el numero de procesos de cada dimensión.
|
periods | Array de booleanos de tamaño ndims que especifica si la topología es periódica (true) o no (false) en cada dimensión.
|
reorder | Los rangos son reordenados a conveniencia de la topología física de la red (true), o no (false). |
De salida
comm_cart | Nuevo comunicador con topología cartesiana. |
Descripción
MPI_Cart_create devuelve un nuevo comunicador con topológica cartesiana correspondiente a la información proporcionada.
Si reorder = false el rango de cada proceso en el nuevo comunicador sera el mismo. De lo contrario reordenara los procesos a fin de elegir una buena estructura equivalente a la topología física de la red.
Si el tamaño total de la malla cartesiana es inferior al numero de procesos del comunicador, entonces el resto de procesos retornaran MPI_COMM_NULL, análogamente a MPI_Comm_split. Se produce un error en la llamada si se especifica un tamaño de malla mas grande que el grupo de procesos.
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_coords
MPI_Cart_rank
MPI_Cart_shift