Do you have a "simple" example of how to write something "thread safe" if I plan to use @threads ?
Am Mittwoch, 31. August 2016 07:35:06 UTC+2 schrieb Chris Rackauckas: > > That's pretty much it. Threads are shared memory, which have less overhead > (and are thus faster), and can share variables between them. @parallel is > multiprocessing, i.e. each worker process has its own set of defined > variables which do not overlap, and data has to be transferred between > them. @parallel has the advantage that it does not have to be local: > different processes can be on completely different computers/nodes. But it > has a higher startup cost and is thus better suited to larger > parallelizable problems. > > However, as Yichao states, @threads is still experimental. For one, since > the memory is shared, you have have to make sure everything is > "thread-safe" in order to be correct and not fail (example: two threads > can't write to the same spot at once or else it can be non-deterministic as > to what the result is). But also, the internals still have some rough > edges. Just check out the repo for bug reports and you'll see that things > can still go wrong, or that your performance can even decrease due to > type-inference bugs. <https://github.com/JuliaLang/julia/issues/17395> Thus > it is something to play around with, but it definitely isn't something that > you should put into production yet (though in many cases it is already > looking pretty good!). > > On Tuesday, August 30, 2016 at 5:46:57 PM UTC-7, Andrew wrote: >> >> I have also been wondering this. I tried @threads yesterday and it got me >> around a 4-fold speedup on a loop which applied a function to each element >> in an array, and I conveniently didn't need to bother using SharedArrays as >> I would with @parallel. >> >> On Tuesday, August 30, 2016 at 7:20:36 PM UTC-4, digxx wrote: >>> >>> Sorry if there is already some information on this though I didnt find >>> it... >>> So: What is the difference between these? >>> I have used @parallel so far for parallel loops but recently saw this >>> @threads all in some video and I was wondering what the difference is? >>> Could anyone elaborate or give me a link with some info? >>> Thanks digxx >>> >>
