
Vicente Botet Escriba said: (by the date of Fri, 30 Apr 2010 08:33:04 -0700 (PDT))
What would it take to get this code to work? std::vector<boost::atomic<Something> > v; v.resize(100);
Hi, just to understand better your concern.
What kind of problems do you expect to have?
A dynamic simulation of thousands / millions of elements.
have you already tried it?
It is already implemented, with OPEN MP and several global locks. We have a speed-up of x5 times on 8 cores. https://yade-dem.org/wiki/Screenshots_and_videos#Ball_Mill_-_125_000_spheres
What do you expect from the atomic library?
I would like to simplify our current code, shorten it by replacing mutexes with boost::atomic in places where I could do that. Mainly I am hoping to remove global container locks. The fact is that when calculating the dynamic equations for thousands of elements, there is no conflict about the order in which they are processed, it can be done simultaneously (so we divide whole container into equal parts and process them in parallel). But also, while being calculated the elements are drawn on a screen by separate thread (a read-only). And also they can be accessed (read-write) from python shell, in realtime, during the calculation. An example of accessing the data in realtime, during calculation is shown on this video: http://geo.hmg.inpg.fr/~janek/yade-videos/buldozer.mpg http://geo.hmg.inpg.fr/~janek/yade-videos/longer-yade-builtin-help.mpg (there are other videos too in that directory). You can read about our software here: https://yade-dem.org/ https://www.yade-dem.org/sphinx/index.html https://www.yade-dem.org/epydoc/ https://www.yade-dem.org/doxygen/ best regards -- Janek Kozicki http://janek.kozicki.pl/ |