On Wed, Nov 7, 2007 at 6:55 PM, william ratcliff
<[hidden email]> wrote: > Has anyone had any luck using weave with openMP? Yes. I have been trying a test case and getting reasonable speed ups. You'll need gcc version 4.3, 4.2 doesn't seem to work. I have recorded some of the results on the pages below. Be warned, I am inexperienced in parallel computing so there is a chance of gross errors in my thinking and coding. <https://www.matforge.org/msel/wiki/2008/04/04/16.48> <https://www.matforge.org/msel/wiki/2008/03/24/15.37> <https://www.matforge.org/msel/wiki/2008/03/20/15.46> The following is the test code for the above results. <https://www.matforge.org/msel/wiki/2008/04/07/13.24> Note that there is no need to recompile everything with 4.3, only weave. Getting 4.3 built was a little involved. The links above provide some rudimentary instructions. The above results are for a machine with 2 and another with 8 nodes. I have also been evaluating openmp on a 64 node Altix machine. There are a number of issues with building scipy and numpy that have been resolved mostly concerning the SGI's scientific library, but I am currently having issues with getting weave to compile on the Altix. This seems to be due to having all the python stuff compiled with gcc, but using the Intel compiler for weave. Cheers > 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 > _______________________________________________ > SciPy-user mailing list > [hidden email] > http://projects.scipy.org/mailman/listinfo/scipy-user > -- Daniel Wheeler _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
Just following up from the email below. I got openmp + weave working
on an Altix 64 node machine, but the speedups for a simple matrix multiplication are horrendous <https://www.matforge.org/msel/wiki/2008/04/11/11.50>. This is using an intel compiler for weave, and using gcc 4.1 for scipy + numpy. I have no idea why the results are so poor. Cheers On Mon, Apr 7, 2008 at 2:23 PM, Daniel Wheeler <[hidden email]> wrote: > On Wed, Nov 7, 2007 at 6:55 PM, william ratcliff > <[hidden email]> wrote: > > Has anyone had any luck using weave with openMP? > > Yes. I have been trying a test case and getting reasonable speed ups. > You'll need gcc version 4.3, 4.2 doesn't seem to work. I have recorded > some of the results on the pages below. Be warned, I am inexperienced > in parallel computing so there is a chance of gross errors in my > thinking and coding. > > <https://www.matforge.org/msel/wiki/2008/04/04/16.48> > <https://www.matforge.org/msel/wiki/2008/03/24/15.37> > <https://www.matforge.org/msel/wiki/2008/03/20/15.46> > > The following is the test code for the above results. > > <https://www.matforge.org/msel/wiki/2008/04/07/13.24> > > Note that there is no need to recompile everything with 4.3, only > weave. Getting 4.3 built was a little involved. The links above > provide some rudimentary instructions. > > The above results are for a machine with 2 and another with 8 nodes. I > have also been evaluating openmp on a 64 node Altix machine. There are > a number of issues with building scipy and numpy that have been > resolved mostly concerning the SGI's scientific library, but I am > currently having issues with getting weave to compile on the Altix. > This seems to be due to having all the python stuff compiled with gcc, > > > but using the Intel compiler for weave. > > Cheers > > > > > 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 > > _______________________________________________ > > SciPy-user mailing list > > [hidden email] > > http://projects.scipy.org/mailman/listinfo/scipy-user > > > > > -- > Daniel Wheeler > -- Daniel Wheeler _______________________________________________ SciPy-user mailing list [hidden email] http://projects.scipy.org/mailman/listinfo/scipy-user |
Free forum by Nabble | Edit this page |