ictxt = gridmap(ictxt,usermap,ldumap,nprow,npcol)
Todos los programas que utilicen PyBLACS deberán llamar a esta rutina de
inicialización o bien a una rutina similar como es gridinit
. Estas
rutinas establecen cada proceso dentro
de una
mall. Cada malla BLACS
está definida en un contexto (que representa su
propio universo de paso de mensajes)
, de este modo no se interfieren distintos contextos o distintas configuraciones
de mallas.
Esta rutina puede ser utilizada en repetidas ocasiones para definir
contextos/mallas adicionales.
Esta rutina de creación de una malla establece variables internas a las BLACS
que no deberán ser utilizadas antes de la llamada a la funcion
gridinit
.
Hemos de indicar que estas rutinas mapean a los procesos en una malla: los procesos no se crean de forma dinámica. En la mayoria de sistemas paralelos, los procesos no se crean dinamicamente y éstos se crean cuando el usuario arranca el ejecutable.
Esta rutina permite al usuario establecer los procesos en una malla de una
manera arbitraria.
usermap(i,j)
establece a un determinado proceso a situarse en i,j en la
malla. En los sistemas distribuido, este número de proceso estará simplemente
definido por una maquina
con un identificador entre 0 y nprocs-1
. gridmap
no es
recomendable para el usuario
inexperto, puesto que gridmap
es mucho mas simple. gridinit
simplifica las las funciones
de gridmap
donde los primeros nprow * npcol
procesos son mapeados
dentro de la malla
actual en un order natural por filas. gridmap
permite al usuario avanzado
aprovechar algunas
caraterísticas del sistema actual.
gridmap
abre el camino para el multimallado (multigridding): el
usuario puede separar sus nodos en mallas arbitrarias, unirlas en una misma y
luego
separarlas en dos nuevas mallas. Mediante gridmap
tambien podremos
establecer mallas
arbitrarias o submallas.
Las características de cada uno de los parámetros de entrada y salida son:
Parametros de Entrada
Parametros de Salida
import PyACTS.PyBLACS as PyBLACS iam,nprocs=PyBLACS.pinfo() nprow,npcol=2,2 ldumap=2 usermap=range(0,ldumap*npcol) ictxt=0 ictxt=PyBLACS.gridmap(ictxt,usermap,ldumap,nprow,npcol) PyBLACS.gridexit(ictxt)
[vgaliano@localhost EXAMPLES]$ mpirun -np 4 mpipython exPyblacsgridmap.py [0, 1, 2, 3] [0, 1, 2, 3] [0, 1, 2, 3] [0, 1, 2, 3]
See Sobre este documento... para sugerencias en cambios.