|
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:AAN...@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:AAN...@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>
|