Boost logo

Boost :

Subject: Re: [boost] problems with the Random library in Boost v1.47
From: Hongyu Miao (jackymiao_at_[hidden])
Date: 2011-07-15 11:40:17


Hi, Steven

Thanks for your reply. I'm using MSVC 2010, too. I met such problems when I
generated a million random numbers with the mersenne_twister generator and
OpenMP. I'm not sure whether v1.47 is thread safe, though. Here is the code
triggered the memory access violation:

 

                    int num_point = 1000;

                    int n_para = 1000;

                    boost::numeric::ublas::matrix<double> ui(num_point,
n_para);

                    #pragma omp parallel for shared(ui, num_point, n_para)
private(i, j)

                    for (i=0; i<num_point; i++)

                    {

                                for (j=0; j<n_para; j++)

                                {

                                            ui(i,j) = unirand_real(0.0,1.0);

                                }

                    }

Thanks,

Jacky

 

 

On 07/13/2011 11:35 AM, Hongyu Miao wrote:
> Sorry to bother you with this. I met a problem with the Random library in
> the latest release v1.47.
>
> <snip>
>
> However, when I adopted my code to v1.47, the following code failed due to

> memory access violation after a number of function calls:
>
> double unirand_real(double a, double b)
> {
> // Create a random number generator engine
> static boost::random::mt19937 rng_real(static_cast<unsigned
> int>(std::time(0)));
>
> // select Uniform probability distribution
> boost::random::uniform_real_distribution<> dist(a, b);
>
> // return random sample
> return dist(rng_real);
> }
>
> I will appreciate your help with this problem as right now I think the
> Random library may have a bug.
>

I can't reproduce this problem with MSVC 2010.

a) What compiler are you using?
b) Can you provide a complete minimal test case
that fails?

In Christ,
Steven Watanabe

 


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk