Hi Frank, The more intensive function is within rkf45_apply in my case. I simply added a few pragmas to the loops, and it speed it up quite a lot. To put things in context, I am solving millions of differential equations, so the cost of rkf45_apply in itself is quite important. It is in fact the same order as the rest of the code outside the function (which is parallelized). Attached is the modified rk45.c file. Maxime Le 2012-12-12 11:35, Frank Reininghaus a écrit : > Hi, > > 2012/12/11 Maxime Boissonneault: >> Hi, >> I am using GSL from another library of my own to perform numerical >> integration of vectorial differential equations. After optimizing and >> parallelizing most of my library, I ended up with the conclusion that GSL is >> a major bottle neck in my computation, simply because it is not parallelized >> to exploit multi-core achitectures. >> >> I would like to submit patches to add support for OpenMP within GSL, >> allowing easy parallelization on shared-memory architectures. How should I >> proceed to do so ? > I think the most straightforward approach would be to use OpenMP > inside the function that calculates the r.h.s. of your differential > equation. This does not require any modifications to GSL at all. > > Reorganising the ODE solver code in GSL such that it can make use of > many cores might not be easily possible because often the parameters > passed to the r.h.s. function depend on the results of earlier calls. > > Best regards, > Frank -- --------------------------------- Maxime Boissonneault Analyste de calcul - Calcul Québec, Université Laval Ph. D. en physique