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)