y= PyPBLAS.pvaxpy(alpha,x,y)
La función "PyPBLAS.pvaxpy" suma el
vector y
con el resultado de multiplicar el vector x
por un
escalar alpha
. La operación se puede resumir como: "y=y+alpha*x".
Los vectores "x" e "y" han de ser tipo PyACTS
.
Las características de cada uno de los parámetros son las siguientes:
Parametros de Entrada
Parametros de Salida
from PyACTS import * import PyACTS.PyPBLAS as 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: PvAXPY" print "N=",n,";nprow x npcol:",PyACTS.nprow,"x",PyACTS.npcol print "Block's size:",PyACTS.mb,"*",PyACTS.nb alpha=2 print "alpha=",alpha x=(1+1j)*reshape(array(range(n),Numeric.Float),[n,1]) print "x'=",transpose(x) y=(1+1j)*ones([n,1]) print "y'=",transpose(y) else: x,y,alpha=None,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) alpha=Scal2PyACTS(alpha,ACTS_lib) #We call PBLAS routine y= PyPBLAS.pvaxpy(alpha,x,y) y_num=PyACTS2Num(y) if PyACTS.iread==1: print "Resultado Global:" print "y'=",transpose(y_num) PyACTS.gridexit()
[vgaliano@localhost EXAMPLES]$ mpirun -np 4 mpipython exPypvaxpy.py Example of using PyPBLAS: PvAXPY N= 8 ;nprow x npcol: 2 x 2 Block's size: 2 * 2 alpha= 2 x'= [ [ 0.+0.j 1.+1.j 2.+2.j 3.+3.j 4.+4.j 5.+5.j 6.+6.j 7.+7.j]] y'= [ [ 1.+1.j 1.+1.j 1.+1.j 1.+1.j 1.+1.j 1.+1.j 1.+1.j 1.+1.j]] Resultado Global: y'= [ [ 1. +1.j 3. +3.j 5. +5.j 7. +7.j 9. +9.j 11.+11.j 13.+13.j 15.+15.j]]
z = PyPBLAS.pvaxpy(alpha,x,y)