mb,nb,nprow,npcol=readconfig(iam,nprocs,file_config,mb0,nb0,nprow0,npcol0)
La rutina readconfig
obtiene la configuración de la malla de procesos desde un archivo de configuración que indicaremos mediante file_config
o bien la calcula a partir del número de procesos disponbibles. En el caso que la calcule de forma automática, se buscará una matriz de procesos lo más cuadrada posible y que agrupe el mayor número posible de procesos con los que se ha iniciado la ejecución (mpirun -np N mpipython example.py
, donde N
es el número de procesos). Por ejemplo, si N=4
entonces nprowxnpcol=2x2
, o si si N=7
se obtendría nprowxnpcol=3x2
.
Por otro lado, con respecto a la malla de procesos se puede indicar cualquiera de los parámetros (nprow
o npcol
)y se calcularán el resto en función del indicado y buscando utilizar el mayor número de procesos posible. Por ejemplo, si N=9
e indicamos nprow=4
, en lugar de obtener una configuración por defecto nprowxnpcol=3x3
, obtendríamos nprowxnpcol=4x2
. De este modo, podremos seleccionar la configuración de la malla de procesos que deseemos con determinados fines, como pudiera ser el de ajustar la malla de procesos a las formas de las matrices de datos. Siguiendo esta línea, si deseamos multiplicar dos vectores, sería conveniente utilizar una configuración Nx1
.
Las características de cada uno de los parámetros de entrada y salida son:
Parámetros de Entrada
iam
: Indicador del proceso.
nprocs
: Indicador del número de procesos con los que se ha inciado la aplicación.
file_config
(opcional): Fichero de configuración donde leer esta configuración.
mb
(opcional): Número de filas de la matriz bloque para la distribución cíclica 2D.
nb
(opcional): Número de columnas de la matriz bloque para la distribución cíclica 2D.
Parámetros de Salida
nprow
: Numero de filas de la matriz de procesos.
npcol
: Numero de columnas de la matriz de procesos.
See Sobre este documento... para sugerencias en cambios.