[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-gsl] Usage of GSL random in parallel code [OpenMP]
From: |
Klaus Huthmacher |
Subject: |
Re: [Help-gsl] Usage of GSL random in parallel code [OpenMP] |
Date: |
Mon, 5 May 2014 09:27:32 +0200 |
User-agent: |
SquirrelMail/1.4.23 [SVN] |
Please forget my sample code!!
As I realized, the different threads do not hold the initializsation of
the random number generators but do it each time anew, thus each thread
generates the same random number again and again.
I am sorry!!
Best wishes,
-- Klaus.
> Dear Rhys,
>
> sorry, but I do not get your point. Could you elaborate on it in more
> detail?
>
> Furthermore, I do not fully get what Altro is doing. I have the impression
> that he is calculating the random numbers in advance.
>
> That is what I do 'not' suggest with my C++11 wrapper but simply make the
> random number generator available to each thread seeded differently.
>
> So, finally, if the main part of the calculating in Altros code happens in
> the for lopp, why not directly initialize the random number generator
> there, see the appended minimal example 'me-altro.c'
>
> Best wishes and keep uns informed,
> -- Klaus.
>
>
>
>
>
>>> I would simply use a wrapper around a C++ std::vector who holds as many
>>> C++11 random number generators (engines) as you use threads in your
>>> code.
>>> By calling a random number, the engine in the ith index of the vector
>>> is
>>> used, where i is the thread id.
>>
>> If your threads aren't doing much work beyond random number
>> generation, you might see a less-than-ideal speedup due to contention
>> on the contiguous std::vector memory.
>>
>> Not that you will see such a thing, but suspect it if you run into a
>> wall.
>>
>> - Rhys
>>
>