|
From: Sander v. D. <sgv...@gm...> - 2011-02-18 21:22:14
|
Hey Hedayat, Looking forward to your real reply ;-) Thanks for your point! It is indeed true that they will become a single island then. However, this doesn't change the problem much. At every physics step the islands are redetermined, after which they can be spread over different threads. So the only situation where there is no advantage is when everything is in a single island (note that this is not the case because all agents are connected through the ground, the ground is disabled and therefore not included in islands), which is not likely to happen. What could perhaps use some consideration is that because of this islands may not have the same size and that one can do some load balancing to distribute them over different threads correctly. But let's first see if it can work at all :) Sander On Fri, Feb 18, 2011 at 4:08 PM, Hedayat Vatankhah <hed...@gm...>wrote: > Hi Sander, > Thanks for the report. :) > I'll post the real reply soon (with some details about what should be done > for RoboCup 2011 in MC). > Just something about ODE islands: I might be wrong but IIRC if two agents > collide with each other, they'll become one island until they are completely > separated again. As I said, I'm in doubt but it'll probably need some > consideration if I'm right. > > Good luck, > Hedayat > > *Sander van Dijk <sgv...@gm...> <sgv...@gm...>* wrote on > 02/18/2011 11:53:24 PM +0350: > > Hello MC, > > As you may know, the RC federation put out a call for proposals for > projects, among others to work on the competition infrastructure. I sent in > a proposal together with Ubbo Visser, which got accepted. So now I am with > Ubbo to work on simspark for 2 months, and I would like to keep you up to > date with what we're doing. > > The main aim of our project is to make the simulator usable for bulk > training. One part of that means debugging the simulator and make it faster > and more stable, the other part is to make some external tools. On the > second point we are still working out the details, but on the first part I > did some work: > > * Did a lot of profiling, which a.o. showed that the server spent more than > 10% of the time on dynamic casting alone. This was mostly because of > continuous searches for nodes in the scene tree. I have put in some caching > here to alleviate it, reducing the time spent casting to 1%. This extra 10% > has now gone to ODE. I still have to create some performance tests to see if > this made stuff faster. > > * Multi threading mode is fixed (but see below). Although at first I was > doubtful of whether the current way it is done would help, it should, > because now the second and third most costly things, gathering perception > data (20%) and gathering monitor data (8%) can now be done in parallel. > However, while running a 6vs6 game there is not a real noticeable speed-up. > But again, I still have to do proper performance tests to see what it does. > > However, the biggest opportunity to optimise is ODE, which now eats up > 67-70% of all computation time. There was a project at CMU in 2007 to > parallelize ODE [1], where they made the collision detection parallel. > Profiling shows however that this will not help: collision detection takes > up 0.45% in rcssserver3d. What is expensive for us, is stepping the physics. > Luckily, ODE already splits this work into different parts, updating > 'islands' seperately, where in our case each island is one agent. I am now > working on parallelising this, and if that works we can in theory cut up the > 67% CPU time into 12/18 parts (4vs6/9vs9) that can be run in parallel, > hopefully making having 8 cores actually useful. > > So far about what I am doing. Now, I would also like something from you > guys ;-) First of all, give the new stuff I committed a good test. Behaviour > of the simulator should still be the same, but it could be that I missed > something and that timing of messages is slightly different, breaking > agents. Also, give the multi threaded mode a good test, see if you can make > it crash. And, finally, I will be working full time on the simulator for 1 > 1/2 months more, if you think there is anything that I may be able to > squeeze in there, do let me know! > > Cheers, > Sander > > [1] http://www.cs.cmu.edu/~mpa/ode/ > > -- > Adaptive Systems Research Group > Department of Computer Science > University of Hertfordshire > United Kingdom > > > ------------------------------------------------------------------------------ > The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE: > Pinpoint memory and threading errors before they happen. > Find and fix more than 250 security defects in the development cycle. > Locate bottlenecks in serial and parallel code that limit performance.http://p.sf.net/sfu/intel-dev2devfeb > > > _______________________________________________ > Simspark Generic Physical MAS Simulator > simspark-devel mailing lis...@li...://lists.sourceforge.net/lists/listinfo/simspark-devel > > -- Adaptive Systems Research Group Department of Computer Science University of Hertfordshire United Kingdom |