gesd2d(a,rdest,cdest,[ictxt,llda])
Esta rutina envia la matriz que se le pasa por parametro al proceso destino descrito
mediante las coordenadas (cdest,rdesc)
dentro de la malla de procesos. Esta
rutina es localmente bloqueante, es decir , retornará de su llamada incluso si la correspondiente
recepción no ha sido realizada.
Las características de cada uno de los parámetros de entrada y salida son:
Parametros de Entrada
a
: Matriz en tipo de dato Numeric
a ser enviada.
cdest
: Fila en la que se encuentra el proceso destinatario del mensaje.
rdest
: Columna en la que se encuentra el proceso destinatario del mensaje.
ictxt
: Indicador del contexto, parametro opcional. En el caso de no indicarlo,
se utilizará el identificador de contexto por defecto.
llda
: Leading dimension de a.
Parametros de Salida (no tiene)
A continuación mostramos un ejemplo en la utilización de esta rutina:
import PyACTS.PyBLACS as PyBLACS from Numeric import * iam,nprocs=PyBLACS.pinfo() nprow,npcol=2,2 size=4 ictxt=PyBLACS.gridinit(nprow,npcol) nprow,npcol,myrow,mycol=PyBLACS.gridinfo() if myrow==0 and mycol==0: a=reshape(range(size),[size,1]) print "[",myrow,",",mycol,"] sends a=",transpose(a) PyBLACS.gesd2d(a,0,1) PyBLACS.gesd2d(a,1,0) PyBLACS.gesd2d(a,1,1) else: a=zeros([size,1]) a=PyBLACS.gerv2d(a,0,0) print "[",myrow,",",mycol,"] receives a=",transpose(a) PyBLACS.gridexit(ictxt) PyBLACS.exit()
El resultado de la ejecución de este script es:
[vgaliano@localhost EXAMPLES]$ mpirun -np 4 mpipython exPyblacsgesdrv2d.py [ 0 , 0 ] sends a= [ [0 1 2 3]] [ 0 , 1 ] receives a= [ [ 0. 1. 2. 3.]] [ 1 , 0 ] receives a= [ [ 0. 1. 2. 3.]] [ 1 , 1 ] receives a= [ [ 0. 1. 2. 3.]]
See Sobre este documento... para sugerencias en cambios.