Code center > Darwinbots3

Game consoles, GPGPU...

(1/4) > >>

jknilinux:
Hi,

Will DB3 support running on game consoles, like the PS3, etc... ? Also, will it support GPGPUs and multiple cores? The potential speedups are enormous, of course, as game consoles and GPUs have turned into little supercomputers.

Numsgil:
Multiple cores and the XBox 360 will probably be supported.  Until the time PS3 let's you run .Net (probably sometime after Hell freezes over), we can support that, too

Darwinbots is not as embarrassingly parallel as some other problems, so multiple cores will only help up to a point.  Beyond that I think we'll need to fall back on the old trick of running multiple instances of the program.

jknilinux:

--- Quote from: Numsgil ---Multiple cores and the XBox 360 will probably be supported.  Until the time PS3 let's you run .Net (probably sometime after Hell freezes over), we can support that, too

Darwinbots is not as embarrassingly parallel as some other problems, so multiple cores will only help up to a point.  Beyond that I think we'll need to fall back on the old trick of running multiple instances of the program.
--- End quote ---

Is there some way for you to provide a C++/other language version, so we can run it on linux/PS3/OSX? A quick search for "C# to C++ converter" gave me this:

http://tangiblesoftwaresolutions.com/Produ...arp_Edition.htm

I'm sure there are free equivalents.
Then, you could use this:

http://rapidmind.com/product.php

or free equivalent, to make the C++ version of DB3 take full advantage of the Cell BE (PS3), GPGPUs, etc...


Or maybe, you could try to just make it compatible with current *nix C# compilers. That'd probably be easier.



Anyway, I think it would be a good investment to make it at least *nix compatible. I mean, most people here know more about computers than the average joe, and people who know more about computers than the average joe also tend to use *nix anyway. Also, for people with an old PC, it would be nice to be able to run DB on there and not run at an average of 500 cycles/day. Obviously, with something like puppy/DSL, this is easier than if you tried it with xp/2k.

Cyberduke:
Well Linux is a possibility but something to look at much later on IMO.

There was talk around the web of Mono.XNA but I don’t think that materialized? Might have another look later.
Other than that it would involve creating a second graphics module that used OpenGL rather than DirectX/XNA.

And at the moment I am considering using Microsoft live to build a p2p network rather than write my own (which I was quite looking forward to). This would mean that nobody had to worry about server uptime and bandwidth and both X-Box and Windows versions could see each other and share bots over the same network. (Still needs some more research)
I suspect I would need to write my own networking from scratch and use the windows peers as cross-over relays between the two networks to get the Linux peers online.

As far as multi-cores go, I can’t comment too much as I am not sure how numsqil intends on approaching it, but I as far as I can see there should be a fair amount of room to manoeuvre on that front and I assume it would have always an intention of any new re-write to multithread darwinbots due to the obvious performance benefits. Of course it would want to be multithreaded to make full use of the X-box too.

Numsgil:
C++ isn't going to happen.  C# isn't just a different language, it's based on an entirely suite of programming tools, which make my life as a developer worth living   I've done some programming in managed C++, and if it made a difference at all I could be convinced to do it that way, but the problem isn't the language it's the run time library, which is supported by Microsoft, which is a competitor to Sony and it's PS3.  So it's not in the best interests for Sony to support .NET on its platform.

There is Mono, to run .NET apps on linux and mac boxes, so it's possible one day that you might be able to get a .NET port for PS3, driven by the open source community, and then you could compiler and run Darwinbots on the PS3, but I wouldn't hold my breath   Darwinbots on linux is likely to happen first, but it depends on the quality of the Mono platform, and how well it simulates proper .NET, which isn't something we can control.  I don't have (nor want) a linux OS, so I can't test it.  If someone with linux and a mind for programming wants to grab the current code and try compiling it with Mono, and see if it still works, and maybe tweak things if they don't, I can get behind that.

Things like running bot DNA is highly parallel, so lots of worker threads is definitely feasible.  But at the end of the day you have to entirely finish cycle 1 before you can start cycle 2.  You have to entirely finish DNA before you can start physics, etc. etc.  Most games are like this.  It's extremely difficult to take significant advantage of more than a few cores for something like this, because the overall way that games work is serial.  Their internals might be able to be paralleled, but the internals fit together in a highly serial fashion.  But I'll try to put some thought towards multithreading in all the modules.  It's one of my priorities.  Just don't expect it to run 4x faster on a quad core over a single core.  I think to get that sort of benefit you need to run multiple instances and network them together.  That is a solution that can scale very well with the number of cores, especially when the networking doesn't block on the server like it does now with the VB DB.

Navigation

[0] Message Index

[#] Next page

Go to full version