Re: Data oriented programming

Mat Noguchi <[email protected]> Thu, 30 Sep 2010 09:49:58 -0700
Newsgroups gmane.games.devel.sweng
Message-ID <D7F4D9E414140644BF099886C28C6636350A0B198D@bngexchange01.bungie.bng.local>
Incidentally, Rico Mariani posted this earlier this week:

http://blogs.msdn.com/b/ricom/archive/2010/09/27/less-loosely-coupled-than-meets-the-eye.aspx

I find it particularly funny since he's chief something in Visual Studio and has significant experience with managed code, but he has a similar perspective on performance even from the managed code perspective.

MSN

From: [email protected] [mailto:[email protected]] On Behalf Of Mike Acton
Sent: Wednesday, September 29, 2010 6:47 PM
To: [email protected]
Subject: Re: [Sweng-Gamedev] Data oriented programming

I'll add my two cents to what Tony said: I personally think the most important thing to keep in mind is that fundamentally the goal of any program (at any level of the hierarchy - from application to function to single instruction) is to transform data from one form into another. Understanding that data being transformed is the key to doing that well. The reality is that it's always a mix of mental models, but the real *problem* in practice is that not only is there no real understanding of the data being transformed, but it's ignored *completely* - as though "data" is some abstract concept that can be ignored.

Mike.
On Wed, Sep 29, 2010 at 5:47 PM, Tony Albrecht <[email protected]<mailto:[email protected]>> wrote:
Hi Gabriel,
     A lot of the work I do is related to optimisation of code or at least producing code that has to perform well, so I use a lot of the concepts mentioned in that paper extensively (and I should too, I wrote it :) ). The key thing to consider is your data - how much of it you access and in what order and where it goes. I find that just reordering data into contiguous chunks has a positive effect, regardless of the state of the code using it. Once the data is fixed, massaging the code that uses it into a better state ( SIMD becomes easier on contig data) improves performance even more.

Taking an existing code base and retrofitting DOD concepts into it can create some pretty nasty code, but designing with data in mind right from the start can produce maintainable, readable, extensible code that runs fast.

-Tony
On 29 September 2010 19:01, Gabriel Sassone <[email protected]<mailto:[email protected]>> wrote:
Hi everyone,
    just wondering if anyone of you has some experiences with "Data-oriented programming" stuff.
To push the limits of the PS3 you must use SPUs very well, and to do this I found that the "data-oriented programming" is really useful and let you create a very scalable framework.
There are some papers around (the most know is probably the one from Sony):

http://research.scee.net/files/presentations/gcapaustralia09/Pitfalls_of_Object_Oriented_Programming_GCAP_09.pdf

I've experienced in small scale (on PS3) and found it really intriguing and performance wise.
Also it is possible to use this mentality to improve performances on X360 and PC, almost all platforms!

What are your experiences with that?

Thanks!
   Gabriel

_______________________________________________
Sweng-Gamedev mailing list
[email protected]<mailto:[email protected]>
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com


_______________________________________________
Sweng-Gamedev mailing list
[email protected]<mailto:[email protected]>
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com

_______________________________________________
Sweng-Gamedev mailing list
[email protected]
http://lists.midnightryder.com/listinfo.cgi/sweng-gamedev-midnightryder.com