7.5.2 trsd2d

trsd2d(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.La matriz en este caso es de tipo triangular, de esto modo usaremos los parametros uplo, y diag para describir las caracteristicas de la matriz triangular.

Las características de cada uno de los parámetros de entrada y salida son:

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.