7.9.3 gamn2d

a,ra,ca=gamn2d(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 mínimos 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.gamn2d(x,irsrc,icsrc)
if myrow==irsrc and mycol==icsrc:
        print "min=",transpose(a)
PyBLACS.gridexit(ictxt)
PyBLACS.exit()
El resultado de la ejecución de este script es:
vgaliano@localhost EXAMPLES]$ mpirun -np 4 mpipython exPyblacsgamn2d.py
x[ 0 , 1 ]= [ [  2.25802504  86.12917718  30.39651697  85.26061846]]
x[ 1 , 1 ]= [ [  3.38789388  79.33674928  68.89134666  67.87649609]]
x[ 1 , 0 ]= [ [  2.82295946  82.73296323  49.64393182  76.56855727]]
x[ 0 , 0 ]= [ [  1.69309062  89.52539112  11.14910212  93.95267964]]
min= [ [  1.69309068  79.33674622  11.14910221  67.87649536]]
See Sobre este documento... para sugerencias en cambios.