7.9.2 gamx2d

a,ra,ca=gamx2d(a,rdest,cdest[,ictxt,scope,top,lda,rcflag])

La columna de procesos coordina el proceso que debería recibir los resultados. Si rdest=-1, entonces rdest es ignorado. Esta rutina obtiene los valores maximos comparandolos para cada elemento con los demas elementos de las matrices de cada proceso en la misma posicion. El resultado es devuelto en valor absoluto. En el caso de utilizar numeros complejos se calculará la norma. La ejecución de esta rutina puede bloquear globalmente, por tanto todos los procesos que intervienen deberán ejecutar esta rutina.

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 *
from RandomArray import *
from random import Random
iam,nprocs=PyBLACS.pinfo()
nprow,npcol=2,2
irsrc,icsrc=0,0
g=Random(iam)
n=4
ictxt=PyBLACS.gridinit(nprow,npcol)
nprow,npcol,myrow,mycol=PyBLACS.gridinfo()
x=zeros([n,1],Float)
for i in range(0,n):
        x[i]=100*g.random()
print "x[",myrow,",",mycol,"]=",transpose(x)
a,ra,ca=PyBLACS.gamx2d(x,irsrc,icsrc)
if myrow==irsrc and mycol==icsrc:
        print "max=",transpose(a)
PyBLACS.gridexit(ictxt)
PyBLACS.exit()
El resultado de la ejecución de este script es:
[vgaliano@localhost EXAMPLES]$ mpirun -np 4 mpipython exPyblacsgamx2d.py
x[ 1 , 1 ]= [ [  3.38789388  79.33674928  68.89134666  67.87649609]]
x[ 0 , 1 ]= [ [  2.25802504  86.12917718  30.39651697  85.26061846]]
x[ 1 , 0 ]= [ [  2.82295946  82.73296323  49.64393182  76.56855727]]
x[ 0 , 0 ]= [ [  1.69309062  89.52539112  11.14910212  93.95267964]]
max= [ [  3.38789392  89.52539062  68.89134979  93.9526825 ]]

See Sobre este documento... para sugerencias en cambios.