ictxt = gridinit(nprow,npcol[,order])
Mediante la rutina gridinit
indicaremos cuantos
procesos estaran contenidos dentro de la malla que deseamos establecer.
Todas las rutinas de las BLACS
deberán llamar a esta rutina o a su
rutina homóloga (gridmap
). 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
.
Esta rutina crea una malla de procesos de tamaño nprow x npcol
, y
asigna a cada
proceso un orden dentro de esa malla dependiendo del parámetro order
.
Las características de cada uno de los parámetros de entrada y salida son:
Parametros de Entrada
order='R'
: (por defecto)Utiliza una ordenación de menor a mayor por filas.
order='C'
: Utiliza una ordenación de menor a mayor por columnas.
order=(otro valor)
: Utiliza una ordenación de menor a mayor por
filas.
Parametros de Salida
import PyACTS.PyBLACS as PyBLACS iam,nprocs=PyBLACS.pinfo() nprow,npcol=2,2 ictxt=PyBLACS.gridinit(nprow,npcol) if ictxt<>-1: print "Soy ",iam,".I'm in the grid. ictxt=",ictxt else: print "Soy ",iam,".I'm not in the grid. ictxt=",ictxt PyBLACS.gridexit(ictxt)
[vgaliano@localhost EXAMPLES]$ mpirun -np 5 mpipython exPyblacsgridinit.py Soy 4 .I'm not in the grid. ictxt= -1 Soy 3 .I'm in the grid. ictxt= 0 Soy 1 .I'm in the grid. ictxt= 0 Soy 2 .I'm in the grid. ictxt= 0 Soy 0 .I'm in the grid. ictxt= 0
iam=5
) no pertenece a la malla 2x2
creada. De este modo,
únicamente aquellos procesos con ictxt=0
, pertenecen a la malla.
See Sobre este documento... para sugerencias en cambios.