help-gsl
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-gsl] GSL 1.16 gsl_interp_accel_find not threadsafe?


From: Patrick Alken
Subject: Re: [Help-gsl] GSL 1.16 gsl_interp_accel_find not threadsafe?
Date: Mon, 21 Mar 2016 13:45:15 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.0

Hard to say without any example code, but are you trying to use the same accel object from all the threads? Each thread will need its own interpolator and accel workspace. From the two lines you posted, I don't see any global variables or anything that would cause problems as long as each thread has its own accel workspace.

Patrick

On 03/21/2016 12:34 PM, Leek, Jim wrote:
I am using GSL in an openMP program.  It usually goes pretty well, but I 
recently ran a problem where I started getting random results (the 
deterministic problem returned wildly different results on each run.)

I was finally able to get Intel Inspector to give me a clue.  It says there is 
a data race in gsl_intep_accel_find at:

Line 210,211:
   a->miss_count++;
   a->cache - gsl_interp_bsearch(ca, x, x_intex, len-1)

The call stack is:
gsl_spline_eval_integ:190
gsl_intep_eval_integ:273
cspline_eval_integ:403
gsl_interp_accel_find:211

Avoiding calling this in the threading region does seem to solve the issue.

1) Is this a known issue?
2) Is there a known way to get around it?
3) Is it already fixed in a newer version of GSL?

Thanks,
Jim




reply via email to

[Prev in Thread] Current Thread [Next in Thread]