[SciPy-user] openmp and weave?

william ratcliff william.ratcliff at gmail.com
Wed Nov 7 17:55:32 EST 2007


Has anyone had any luck using weave with openMP?  If so, what did you
have to do?  I've started by updating my compiler to MinGW:
gcc-4.2.1-dw-2-2 (and similarly for g++), but am running into problems
with code written in weave that doesn't use any of openmp:

Here is the code:

import numpy as N
import weave
from weave import converters



def blitz_interpolate(x,y):


    code = """
    int pts = Ny[0];
//#pragma omp parallel for
    for (int i=0; i < pts-1; i++){
        y(i) = sin( exp( cos( - exp( sin(x(i)) ) ) ) );
     }
    return_val = 3;
    """
    extra=["-fopenmp -Lc:/python25/ -lPthreadGC2"]
    extra=[]
    z=weave.inline(code,['x','y'],type_converters=converters.blitz,compiler='gcc')
    print z
    return





if __name__=="__main__":
    x=N.arange(1000)
    y=N.zeros(x.shape,'d')
    blitz_interpolate(x,y)
    print x[35], y[35],N.sin(N.exp(N.cos(-N.exp(N.sin(x[35])))))





This works fine with version 3.4.2 of gcc, g++

Thanks,
William



More information about the SciPy-User mailing list