Saturday, November 16, 2013

Ymir's Near Term Roadmap

We are back from Motion in Games 2013, and I have to say that I find myself re-energized after both drinking the fantastic craft beers of Dublin and discussing all the great research happening in the community.   This new energy is timely too, as I find myself with no papers or presentations to write, for the moment.

Before sharing where Ymir's development is headed,  I want to take a moment to announce that the paper we presented at the conference is now publicly available online:  Object-Centric Parallel Rigid Body Simulation with Timewarp.  Give it a read and please feel free to share any constructive feedback!


Ymir's Near-Term Roadmap 

 

Performance 

 

In the paper, we presented a breakdown of of Ymir's current simulation profile on one of our test scenarios.  These results are as follows:


Scalable and real-time yes, however, Ymir can be faster, much faster.    From the graph we plainly see two places to start, namely: the time spent performing collision checks (Collision Check in orange) and the clean-up of old physical states in response to global time updates (GVT Update in maroon).

Regarding the former, the data-structure we use to support parallel simulation currently requires locking for mutual exclusion and collision between the same two objects being checked more than once.  These two points can be dealt with directly, though getting rid of the locks will require a bit of creativity.  We will be documenting our new lock-less data-structure along with (hopefully) improved performance numbers in the coming weeks.

As to GVT Update, we plan to take a hard look at our current implementation and optimize, optimize, optimize.  Not a fun process, but one which must be done.

After we are confident in our performance tuning, we must also compare Ymir to other physical simulation engines such as Bullet.  We will be keeping our fingers crossed that as we scale over many cores we are eventually able to perform better than Bullet on a single core.  Regardless of the outcome, we will be sure to share these results as we have them. 

Code Clean Up

 

Deadlines cause pressure and pressures lead to sloppy code.  I have not been immune!  The code base requires documentation and removal of dead-code.  Ymir has evolved A LOT in recent months and we need to take a step back and optimize towards our latest design, culling any code that no longer fits. 

Breaking New Ground

 

My adviser and I still hunger for papers and, as such, are on the look out for the next topic which may lead to further publication.  These topics will be in the direction of distributed simulation, however, may not be totally in line with Ymir's immediate development needs.  Time will tell the topic of study as we are still discussing several ideas amongst ourselves.

No comments:

Post a Comment