[ODE] Parallelizing ODE?
Russ Smith
russ at q12.org
Thu Nov 22 13:59:01 MST 2001
> Russel (and everyone else), have you given parallelization of ODE
> a thought? We think it would be a cool idea to run ODE on the
> 64 dual P4 2Ghz Beowulf cluster that we are building right now and
> make that feed a parallelized scenegraph on a 4 node graphics
> cluster.
the easiest ways to parallelize ODE are at the very high level, and
very low level. at the low level, using intel SIMD speedups will get
about a *2 performance increase. at the high level:
1. split collision, dynamics and rendering as you suggest.
2. each separate island in ODE can be stepped by a different CPU.
both of these things are rather easy. the second should not require
much modification to ODE, and will use as many processors as you
have islands. this is the best approach, unless your system has
very few, large, islands.
> This would require some profiling of the ODE core to check where
> the bottlenecks are, and how well it actually can be parallelized,
to quote from an earlier email, two things take up 80-90% of the time
in a "typical" system.
1. filling in a "system matrix" using data from the rigid bodies and
constraints. this involves lots of relatively small matrix
multiplications, with dimensions around 1..6. this operation is
about O(n)+O(m), where n is the number of rigid bodies and m is
the number of joints (constraints). every pair of joints connected
to a body adds another block to the matrix. you can parallelize
all pairs on all bodies, there are no data dependencies. also, the
small matmuls are great for SIMD optimization.
2. factorizing that matrix. the matrix is symmetric positive definite
so i use an L*D*L' factorization. this operation is O(m^3), so as
m goes up this starts to dominate. parallelizing factorization is
an area of intense study, and it can get pretty tricky. the matrix
graph analysis and other overhead will mean this is only
worthwhile for large connected systems.
russ.
--
Russell Smith
http://www.q12.org
More information about the ODE
mailing list