Parallel Processing For Cardiac Simulations Using an Xbox 360
Foot-in-Mouth writes "Physorg has an article about a researcher, Dr. Simon Scarle at the University of Warwick's WMG Digital Laboratory, who needed to model some cardiological processes. Conventionally, he would requisition time on a university parallel-processing computer or use a network of PCs. However, Dr. Scarle's work history included gaming industry experience as a software engineer at a company associated with Microsoft Games Studio. His idea was that researchers could use Xbox 360s as an inexpensive parallel computing platform due to the console's hefty parallel processing-enabled GPU. He said, 'Although major reworking of any previous code framework is required, the Xbox 360 is a very easy platform to develop for and this cost can easily be outweighed by the benefits in gained computational power and speed, as well as the relative ease of visualization of the system.'"
I thought everyone used the PS3 for this sort of off-the-shelf supercomputer thing.
Will you have to be an XboxLive Gold member to get this service?
Using the XBox 360 as a parallel computing platform when "major reworking of any previous code framework is required" seems like a huge risk when considering the XBox 360 reliability problems.
Perhaps the newer systems have better reliability, I only hope for their sake they did their homework before buying the boxes.
How would this work? Does Microsoft sell licenses for such purposes? Would they need to buy special development boxes instead of cheap of the self hardware? Has the Xbox360 been hacked enough to make this practical?
And most important of all: Why use a Xbox360 GPU in the first place? Aren't there PC GPUs that could run circles around what is in the Xbox360? Wouldn't a PS3 be better suited duo to being an open platform (well, at least as long as the old models are still available)?
It would perhaps give a new meaning to the red rings of death.
Would offloading to Xbox GPUs be cheaper than multi-GPU PCs doing the same thing? I totally get that he went with the 360 hardware having previous experience using it, I'm just curious how the actual hardware pricepoint works out... Suppose it comes down to exactly what is in the 360.
If you program C# Windows / Direct3D, programming, XNA for XBOX is easy to program for. You can actually start with XNA on the PC and most stuff will transfer over with minimal changes. You have access to the GPU and shader programming so GPGPU programming ideas can be ported as well.
The PS3 Linux is significantly more difficult to program for, has a different memory model (and programming architecture) for the SPU's, has very poor (compared to Visual Studio) debugging and programming IDE environment, etc. Not to mention that the latest version of the PS3 doesn't even support Linux. There is no GPU access so GPGPU algorithms available on the PC need to be manually ported to the PS3.
That said, if they actually did buy older PS3's, take the steep learning curve to SPU programming, port all of their code to a 100% custom platform with hard-to-use tools, and heavily optimize the SPU code, they would probably be running their algorithms significantly faster on PS3 SPU's than on the XBOX 360 GPU.
What about in 5 years, or some other point in the future? The advantage of programming for say, x86, etc. is that the hardware will be out there and available for some time, and it will keep getting more clock cycles, etc. However, how long will the X Box be on the market? Will researchers be hunting pawn shops and garage sales in 5 years to replace broken hardware units?
Don't blame me, I voted for Kodos
Apologies for the rhetorical question, but obviously GPGPU for scientific simulations isn't new. We've had a whole lot on that already. The only possible new thing could be using the Xbox360 for it. But as far as I can tell (confirmed by all the comments I've seen so far), there isn't even anything interesting about that--- this guy just used the Xbox360 because he was already familiar with the programming environment, not because it has any particular advantages over CUDA on a PC.
10 PRINT CHR$(205.5+RND(1)); : GOTO 10
I've found that - for me - most comments (when available) on most linked articles are of low quality (I'm not referring to /. comments, but the ones at any given article site itself). However, the ones addressing TFA at the physorg site are pretty cogent and informative, IMO.
Pathological kinda promises Path + Logical - but instead, you get stuck with pathetic.
Found cure for cancer. Patented it.
Think of what a Beowulf Cluster.. O wait, nevermind.
I wonder if the Microsoft Audit team will show up and slap a fine for violating the EULA or something...
First thing that sprang to mind: Shelf after shelf of RROD's
Actually, the case could easily be made that programming a GPU that was NOT meant for general-purpose computing is quite a bit harder than the Cell, which WAS designed with more general-purpose computing in mind. You don't need to port everything required for GPGPU, you just use the libraries and tools developed by IBM for the Cell.
"Upon attaching the waterblock to my penis, I began to notice that I know nothing about computers." -- JRockway
So some guy somewhere said: "Yeah, it's possible." But even if someone started planning such a thing, why would they use 4 year old technology?
Twinstiq, game news
so does any PC you like, and withe NVideas line of GPGPU cards, and their CUDA development kit its perfectly do-able with much more parallel processing power. Especially once you consider packages like accelereyes with matlab that make it easy.
Because it's really a publicity stunt from Microsoft trying to get the Xbox360 in the forefront of peoples minds in the lead up to Christmas.
The article reads like most of the marketing cover I see from Microsoft (and for that matter most other software companies).
Organisation X needed to do Y but the competing product was too expensive (in price/effort/time). Our product does Y at a fraction of the price/time/effort of our competitor.
The people at Orgaisation X are smart people who know all about Y and are very happy with our product.
Last year I attended a presentation by Dr. Middelkoop. He showed us a demo on distributed computing using PS3s. http://www.ise.ufl.edu/middelkoop/ His work was focused on optimization.
Better send him to jail.
...if they chose a platform that is more reliable than an Xbox 360.
That's right bitches, 54.2% failure rate.
"The agriculture ministry is not in charge of Gundam" - Japanese ministry official.
You're getting more bang for the buck with a desktop PC and standard graphics cards.
That said, if they actually did buy older PS3's, take the steep learning curve to SPU programming, port all of their code to a 100% custom platform with hard-to-use tools, and heavily optimize the SPU code, they would probably be running their algorithms significantly faster on PS3 SPU's than on the XBOX 360 GPU.
I know next to nothing about parallel processing or either game console, but I have to ask couldn't they simply use more 360s and get the same speed, without having to spend time doing all of that?
Give me a break. So long as your program doesn't need more than 256k of memory per thread you can port it by typing little more than "CC=gcc-spu make". There is a nice helper library that wraps your main() and passes I/O to and from the SPU. I got about 40kloc of audio processing code running on the SPU in a grand total of 30 minutes, which included downloading the SDK (and reading the docs while it downloaded and installed). It required zero code changes. Getting good performance requires vectorizing the code with intrinsics which is exactly like coding for x86's SSE2 but easier because the SPU vector engine is a lot more complete. If you need to work with more memory you need to do some manual memory management, but it's nowhere near as invasive as the shuffling you need to do to move data on and off a video card. CELL is quite simply FAR easier than GPGPU.
tl;dr version: GPGPU is complex and specialized enough that you have to write for it, CELL is so simple that you can get regular CPU code running on it with few to no changes.
You would think that with Microsoft's billions they could hire PR/marketing people with a bit more subtlety.
With the relaunch of the search engine, it was painful to read the drones sitting around in some marketing company's office posting "I'm a long time Google user and I decided to give Bing a try and by golly! I'm switching".
You would think the last thing Microsoft wants the public to associate the worst console hardware in history with cardiology.
Way to go Microsoft, you product that's only claim to fame(or infamy) is The Red Ring of Death is being associated with the organ that is the number one cause of Death in people from heart disease or failure.
I find this story interesting, perhaps for a different reason to why it was posted here. I walk past the WMG Digital Lab on my way to the bank whenever I go, and I'm quite impressed that they've managed to do the research, get a paper published and get it talked about here within a couple of months of the building work on the lab being completed...
Power and speed, yes. Accuracy, well, that wasn't a requirement before, was it? It merely had to look good. I don't know if I'd settle for medical imaging that merely looks good but fudges over the nasty bits that show the doctor just why it hurts. And because the calculations are too complex and too many to check by hand, we'll have to rely on automated checking too. Suppose, assuming they do check, thanks, they use the same hardware for that? Whoops.
You cannot possibly come up with a more transparent ploy to get game consoles for the whole department. I bet the next stage is "simulation at home"..
In all seriousness, there appears to be call for what I would call Geowulf clusters (a Beowulf cluster of graphics processors)..
Insert
SPUs are not suitable for everything. CPU side of the Xbox 360 has 6 hardware threads on 3 general purpose cores, while PS3 has only one general purpose core.
If you doesn't need SPUs the PS3 turns to be very poor contender agains 3 very fast HT cores of the Xbox. Larger shared CPU/GPU memory architecture also helps the Xbox.
Just add a recent graphics card into your system. With CUDA, it’s all already prepared for you.
Any sufficiently advanced intelligence is indistinguishable from stupidity.
Sure if the problem is embarrassingly parallel or not real-time, otherwise, latency for message transfer would probably kill it.
In the real world, there are other constraints, like the cost of distributing the data, the cost of spawning new parallel tasks, and so on. These all make the parallel part more expensive, so it eventually the benefits are outweighed by the cost.
It's quite rare to find a problem that you can split into completely isolated subproblems with no dependencies. These are known as 'embarrassingly parallel' problems. Things like SETI@Home fall into this category; each work unit can be processed independently without any knowledge of the others and the order in which they are processed doesn't matter. Finding an element in an array is a trivial example of this kind of problem; you can search subarrays in parallel and keep splitting the array until you are searching one-element subarrays in parallel. Even then, you have the cost of creating the threads or processes for the search, so this probably won't be the fastest case.
[1] This is a parallel mergesort, which is one of the simplest concurrent sorting algorithms. It's not the best, so don't implement it in real code, but it's a good exercise for people starting parallel programming.
I am TheRaven on Soylent News
Given that:
- Microsoft subsidizes every XBox 360 system and makes an investment for every unit sold
- Microsoft only recoups that investment with game and accessory sales
- A supercomputer built on Xbox 360 nodes would not need any games or accessories
We can try to answer:
- How many nodes would a supercomputer need to completely suck the life out of Microsoft once and for all?
- How much that machine would be able to do?
Even if it is not make it to the top 500, just killing Microsoft is a worthy goal.
http://www.dieblinkenlights.com
Microsoft just patched it shut.
I'd go on a Vegan diet but the delivery time from Vega is too long. --brownkitty
And how long will it take before they need to redo their software all over again because Microsoft abandons the platform?
I have to ask couldn't they simply use more 360s and get the same speed, without having to spend time doing all of that?
Each Xbox 360 costs $299, plus $99 per console per year for "Creators Club", a certificate to run self-signed .NET assemblies. So the fewer consoles you buy, the less you have to pay Microsoft to rent a soft-mod. (Incidentally, Apple copied this model for the iPhone developer program.) The fat PS3 was $399, and the owner had the ability to boot into Other OS permanently.
... is what you'll be missing out on. All because you ostensibly couldn't pay someone to write a hypervisor driver for your new SKU. You would have been better off releasing the specs and having the community do it for you.
"Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
I object to your use of the term 'soft-mod'.
As I understand it, a soft-mod is a piece of data installed on a video game console that allows it to execute a program not explicitly approved by the console maker. XNA Creators Club fits this definition, or how did I misdefine soft-mod?
How much do they cost?
I know tobacco is bad for you, so I smoke weed with crack.
Dude, if SPU programming is so easy for you, please apply for a position at my company: WB Games Chicago. We'd love to have someone who can port entire libraries to SPU in 30 minutes as you claim working on either the Mortal Kombat team or our other unannounced title.