dot= PyPBLAS.pvdot(x,y)
La función "PyPBLAS.pvdot" realiza el producto escalar entre el vector
y y el vector x, ambos variables tipo PyACTS. La operación se puede resumir como:
"y=xT*y" donde xT representa a la traspuesta de x.
Las características de cada uno de los parámetros son las siguientes:
Parametros de Entrada
Parametros de Salida
x e y. Este
valor es una variable global en todos aquellos procesos que han intervenido en
el calculo del producto, es decir, que tengan valores de x e y
para realizar ese calculo. El proceso PyScaLAPACK.iread==1 siempre tiene
este valor por contener datos de los vectores x e y.
Tanto el vector x e y han de ser vectores con elementos de tipo
real, que pueden tener precision simple o doble. En el caso de querer realizar
el producto escalar de vectores con numeros complejos, se deberá hacer uso de
las funciones PyPBLAS.pvdotu (ver sección
from PyACTS import *
import PyPBLAS
from RandomArray import *
from Numeric import *
#Dimension of Arrays
n=8
#Initiliaze the Grid
PyACTS.gridinit()
if PyACTS.iread==1:
print "Example of using PyPBLAS: PvDOT"
print "Parameters:N=",n,";Grid:",PyACTS.nprow,"*",PyACTS.npcol
print "Block's size:",PyACTS.mb,"*",PyACTS.nb
x=reshape(array(range(n)),[n,1])
y=ones([n,1])
print "x=",transpose(x)
print "y=",transpose(y)
else:
x,y=None,None
#We convert Numeric Array to PyACTS.Scalapack Array
ACTS_lib=1 # 1=Scalapack
x=Num2PyACTS(x,ACTS_lib)
y=Num2PyACTS(y,ACTS_lib)
#We call PyPblas Routine
dot= PyPBLAS.pvdot(x,y)
if PyACTS.iread==1:
print "PvDOT=",dot
PyACTS.gridexit()
[vgaliano@localhost EXAMPLES]$ mpirun -np 4 mpipython exPypvdot.py Example of using PyPBLAS: PvDOT Parameters:N= 8 ;Grid: 2 * 2 Block's size: 2 * 2 x= [ [0 1 2 3 4 5 6 7]] y= [ [1 1 1 1 1 1 1 1]] PvDOT= 28.0
See Sobre este documento... para sugerencias en cambios.