Author Topic: overclocked gaming rig vs. COTS PC  (Read 2272 times)

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
overclocked gaming rig vs. COTS PC
« on: December 12, 2009, 11:02:08 PM »
What sort of speedup can we expect for DB2/3 with some expensive, exotic PC system (for example, overclocked Intel Skulltrail/upcoming core i9) over a COTS Pentium 4 PC? Exponential?
Or, would it provide a better speedup with, say, 5 p3 PCs versus 1 exotic gamer PC? Would that provide an exponential speedup?

I'm thinking with DB3, since it's supposed to be highly parallelized, several low-end PCs would perform better than 1 uberfast PC. However, with the more serialized DB2, we should expect better performance with 1 high-end PC, right?

Also, would it be faster to network several low-end computers with small size environments/populations or use 1 high-end PC with a large-size environment?

Basically, I have like 4 p3 laptops I never use, is it worth it to connect them together with ethernet and have each one run a small DB sim w/ teleporters connecting them?

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
overclocked gaming rig vs. COTS PC
« Reply #1 on: December 12, 2009, 11:39:18 PM »
Oh, before I forget, will we expect it to run on XBOX 360 better than any mid-range PC?

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7718
    • View Profile
overclocked gaming rig vs. COTS PC
« Reply #2 on: December 13, 2009, 02:41:04 AM »
  • DB2's big O is something greater than linear and less than quadratic (it's hard to say exactly because of various optimizations).  So if you throw double the processing power at it you won't get twice the speed.  It's also single threaded, so it can't take advantage of multiple cores.  For both reasons you're better off running multiple instances of DB2.  You'll maximize your Darwinbots throughput if you have one instance per hardware thread.  So a core i7 machine will let you run 8 DB2 instances where a P4 would only let you run one.
  • For DB3, initial versions will be at least O(n^3).  Though I hope to get that down to linear.  DB3 will also eventually target OpenCL, so it will be able to target GPUs for some of the computations.  A GPU is something like 500 times faster than a normal processing core.  DB3 will also be able to utilize multiple processing cores so it should scale fairly well with modern processors which have more hardware threads.
  • XBox 360 is running a 3 core PPU (basically a power PC.  It's actually a cool story, they sort of "borrowed" the single core PPU the PS3 was going to use.  The core was being designed by IBM, which meant it was basically a power PC.  Which meant that very early XBox 360 dev kits were actually Macs.  ) with 2 hardware threads per core.  Each core is clocked at something like 3 Ghz.  So for pure processing power it's basically as fast as a core i7 running at 2.5 Ghz, give or take.  I haven't looked at the other specs, but I imagine the RAM is much faster than anything you'd find on a PC.
  • Modern processors have hit a wall with single core speeds.  They just can't produce anything much faster than 3 Ghz.  So a P4 from 6 years ago vs. a modern core i7 is about having more cores than making each core faster.  Though the core i7 will have faster cores since the cycle cost per instruction has gone down a bit, and they've gotten better at masking cache hit costs and the like, and the caches are larger.
  • Modern processors are also more efficient.  The cycles per watt is much higher.  If you're thinking of running a server farm for DB instances, you'll want to think about operating costs.  A computer running a 500W power supply with 10 cents per kilowatt hour (the average cost here in California) will cost $1.20 a day to run.  That doesn't sound like a lot but that's about $36 a month per PC.  Older processors run at about the same wattage as a modern processor.  They have to, since the more wattage you burn the hotter the processor gets and the more advanced the cooling system required.  So there's sort of a wall of about 150W that a processor can't go beyond.
  • So if you're thinking of a server farm, be sure to factor the electricity costs in to your decision.  5 P3 computers can cost conservatively something like $100 a month or more.  If you plan to run them for any length of time, you might be better off buying a nice new system that's less power hungry.

Offline jknilinux

  • Bot Destroyer
  • ***
  • Posts: 468
    • View Profile
overclocked gaming rig vs. COTS PC
« Reply #3 on: December 13, 2009, 04:37:39 AM »
The RAM on the Xbox 360 is faster than that on most PCs, but it only has 512 mb. How will that affect DB3? I'd imagine problems with large size/population sims. Do you know if it's possible to upgrade the RAM on it?

Also, since the Xbox OS runs on a PPC, could it be ported to, say, a PS3?

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7718
    • View Profile
overclocked gaming rig vs. COTS PC
« Reply #4 on: December 13, 2009, 05:08:09 AM »
You can't upgrade the RAM.  Also, the RAM is shared with the graphics card (unified memory architecture) so the working set of usable memory might be less than that depending on what you're doing on the graphics card.  I don't know what sort of affect that will have on simulation size.

I do a bit of PS3 programming at work.  It is a horrible evil demon spawn of a machine to develop for (though still better than the Wii).  I don't know what sort of programming access it has for indie developers, though.  It's basically one core from the XBox 360 and 6 SPUs.  An SPU is a specially designed vector processor.  It can't directly access main memory (everything has to be marshaled) and has a 256KB local store (basically a L2 cache).  The PS3 also has 256 MB of RAM instead of 512 (there's another 256 in the graphics card, though), so memory would be even tighter.

So long story short it's an entirely different platform from the XBox, and requires you to directly target it.  I don't think there'd be a way to target the SPUs from .NET code, either, so harnessing the console would be difficult.  And I have no idea how open it is to programming without a devkit.