From: Hedayat V. <hed...@gm...> - 2011-02-18 21:26:53
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta content="text/html; charset=UTF-8" http-equiv="Content-Type"> <title></title> </head> <body bgcolor="#ffffff" text="#000000"> <br> <br> <span> <style type="text/css">blockquote {color: navy !important; background-color: RGB(245,245,245) !important; padding: 0 15 10 15 !important; margin: 15 0 0 0; border-left: #1010ff 2px solid;} blockquote blockquote {color: maroon !important; background-color: RGB(235,235,235) !important; border-left-color:maroon !important} blockquote blockquote blockquote {color: green !important; background-color: RGB(225,225,225) !important; border-left-color:teal !important} blockquote blockquote blockquote blockquote {color: purple !important; background-color: RGB(215,215,215) !important; border-left-color: purple !important} blockquote blockquote blockquote blockquote blockquote {color: teal !important; background-color: RGB(205,205,205) !important; border-left-color: green !important}</style><i><b>Sander van Dijk <a class="moz-txt-link-rfc2396E" href="mailto:sgv...@gm..."><sgv...@gm...></a></b></i> wrote on 02/19/2011 12:52:05 AM +0350:</span><br> <blockquote style="color: navy; background-color: rgb(245, 245, 245); padding-left: 15px; border-left: 2px solid rgb(16, 16, 255);" cite="mid:AANLkTi=ODZ...@ma..." type="cite">Hey Hedayat,<br> <br> Looking forward to your real reply ;-)<br> <br> 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 :)<br> </blockquote> :) Yes, I didn't want to stand against processing separating islands in parallel; just wanted to help a little if possible (e.g. to prevent an assumption that every agent is a separate island in implementation).<br> In fact, I'm really in favor of processing collision detection of separate islands in parallel, which is also supported by ODE. <br> <br> Thanks,<br> Hedayat<br> <br> <br> <blockquote style="color: navy; background-color: rgb(245, 245, 245); padding-left: 15px; border-left: 2px solid rgb(16, 16, 255);" cite="mid:AANLkTi=ODZ...@ma..." type="cite"> <br> Sander<br> <br> <div class="gmail_quote">On Fri, Feb 18, 2011 at 4:08 PM, Hedayat Vatankhah <span dir="ltr"><<a moz-do-not-send="true" href="mailto:hed...@gm...">hed...@gm...</a>></span> wrote:<br> <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"> <div bgcolor="#ffffff" text="#000000"> Hi Sander,<br> Thanks for the report.� :)<br> I'll post the real reply soon (with some details about what should be done for RoboCup 2011 in MC). <br> 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.<br> <br> Good luck,<br> Hedayat<br> <br> <span> <i><b>Sander van Dijk <a moz-do-not-send="true" href="mailto:sgv...@gm..." target="_blank"><sgv...@gm...></a></b></i> wrote on 02/18/2011 11:53:24 PM +0350:</span><br> <blockquote style="color: navy; background-color: rgb(245, 245, 245); padding-left: 15px; border-left: 2px solid rgb(16, 16, 255);" type="cite"> <div> <div class="h5">Hello MC,<br> <br> 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.<br> <br> 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:<br> <br> * 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.<br> <br> * 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.<br> <br> 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.<br> <br> 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!<br> <br> Cheers,<br> Sander<br> <br> [1] <a moz-do-not-send="true" href="http://www.cs.cmu.edu/%7Empa/ode/" target="_blank">http://www.cs.cmu.edu/~mpa/ode/</a><br> <br> -- <br> Adaptive Systems Research Group<br> Department of Computer Science<br> University of Hertfordshire<br> United Kingdom<br> </div> </div> <pre><fieldset></fieldset> ------------------------------------------------------------------------------ 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. <a moz-do-not-send="true" href="http://p.sf.net/sfu/intel-dev2devfeb" target="_blank">http://p.sf.net/sfu/intel-dev2devfeb</a></pre> <pre><fieldset></fieldset> _______________________________________________ Simspark Generic Physical MAS Simulator simspark-devel mailing list <a moz-do-not-send="true" href="mailto:sim...@li..." target="_blank">sim...@li...</a> <a moz-do-not-send="true" href="https://lists.sourceforge.net/lists/listinfo/simspark-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/simspark-devel</a> </pre> </blockquote> </div> </blockquote> </div> <br> <br clear="all"> <br> -- <br> Adaptive Systems Research Group<br> Department of Computer Science<br> University of Hertfordshire<br> United Kingdom<br> </blockquote> </body> </html> |