Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Supercomputing Australia Graphics Hardware

Australia's CSIRO To Launch CPU-GPU Supercomputer 82

bennyboy64 contributes this excerpt from CRN Australia: "The CSIRO will this week launch a new supercomputer which uses a cluster of GPUs [pictures] to gain a processing capacity that competes with supercomputers over twice its size. The supercomputer is one of the world's first to combine traditional CPUs with the more powerful GPUs. It features 100 Intel Xeon CPU chips and 50 Tesla GPU chips, connected to an 80 Terabyte Hitachi Data Systems network attached storage unit. CSIRO science applications have already seen 10-100x speedups on NVIDIA GPUs."
This discussion has been archived. No new comments can be posted.

Australia's CSIRO To Launch CPU-GPU Supercomputer

Comments Filter:
  • by SanguineV ( 1197225 ) on Monday November 23, 2009 @06:02AM (#30200366) Homepage

    Can someone explain exactly what the benefits/drawbacks of using GPUs for processing?

    GPUs are massively parallel handling hundreds of cores and tens of thousands of threads. The drawbacks are they have limited instruction sets and don't support a lot of the arbitrary jumping, memory loading, etc. that CPUs do.

    It would also be nice if someone could give a quick run down of what sort of applications GPUs are good at.

    Anything that is massively parallelisable and processing intensive. The usual bottle neck with GPU programming in normal computers is the overhead of loading from RAM to GPU-RAM. Remove this bottleneck in a custom system and you can have enormous speed ups in parallel applications once you compile the code down to GPU instructions.

    Greater detail I will leave to the experts...

  • by Sockatume ( 732728 ) on Monday November 23, 2009 @06:12AM (#30200404)

    Graphics processing, the technically demanding part of PC gaming, uses GPUs essentially exclusively. Physics processing, the runner-up, can already be loaded off to technically-similar PPUs, or even actual GPUs working as physics processors. The reason that most apps run on the CPU is that it's easier to write for, not that most apps actually run better on it for some fundimental reason.

  • Re:lollero (Score:5, Informative)

    by JorDan Clock ( 664877 ) <jordanclock@gmail.com> on Monday November 23, 2009 @06:25AM (#30200444)
    You already have the technology in your box. The difference is, in the past couple of years, GPUs that were once used exclusively to speed up rendering have become more and more generalized on the hardware and instruction set level to the point where they are a very attractive method of speeding up things other than rendering. Physics simulations, such as fluid dynamics, are much faster on a GPU than a CPU. I currently run the GPU client of Folding@Home and it outperforms the CPU client by orders of magnitude.

    The hardware has been around for quite some time, but now we're realizing all the things a GPU can do besides run pretty games faster.
  • by Spazed ( 1013981 ) on Monday November 23, 2009 @06:34AM (#30200476)
    It is probably considerably cheaper as well, GPU based 'supercomputers'(Can we please stop calling them that? Can we just say, "Computers we'll all carry around in ten years?") aren't a whole lot more than SLI that gamers have been using for decades, the parts are pretty cheap. The Tesla website claims it is 1/100th the cost of a traditional supercomputer, which might only really become true over the lifetime of the machine because of the lower power requirements. Of course that is also assuming that your problem is a good fit for a Tesla system.
  • GPUs are good if (Score:5, Informative)

    by Sycraft-fu ( 314770 ) on Monday November 23, 2009 @06:43AM (#30200498)

    1) Your problem is one that is more or less infinitely parallel in nature. Their method of operation is a whole bunch of parallel pathways, as such your problem needs to be one that can be broken down in to very small parts that can execute in parallel. A single GPU these days can have hundreds of parallel shaders (the GTX 285 has 240 for example).

    2) Your problem needs to be fairly linear, not a whole lot of branching. Modern GPUs can handle branching, but they take a heavy penalty doing it. They are designed for processing data streams where you just crunch numbers, not a lot of if-then kind of logic. So if your problem should be fairly linear to run well.

    3) Your problem needs to be solvable using single precision floating point math. This is changing, new GPUs are getting double precision capability and better integer handling, but almost all of the ones on the market now are only fast with 32-bit FP. So your problem needs to use that kind of math.

    4) Your problem needs to be able to be broken down in to pieces that can fit in the memory on a GPU board. This varies, it is typically 512MB-1GB for consumer boards and as much as 4GB for Teslas. Regardless, your problem needs to fit in there for the most part. The memory on a GPU is very fast, 100GB/sec or more of bandwidth for high end ones. The communication back to the system via PCIe is an order of magnitude slower usually. So while you certainly can move data to main memory and to disk, it needs to be done sparingly. For the most part, you need to be cranking on stuff that is in the GPU's memory.

    Now, the more your problem meets those criteria, the better a candidate it is for acceleration by GPUs. If your problem is fairly small, very parallel, very linear and all single precision, well you will see absolutely massive gains over a CPU. It can be 100x or so. These are indeed the kind of gains you see in computer graphics, which is not surprising given that's what GPUs are made for. If your problem is very single threaded, has tons of branching, requires hundreds of gigs of data and such, well then you might find offloading to a GPU slower than trying it on a CPU. The system might spend more time just getting the data moved around than doing any real work.

    The good news is, there's an awful lot of problems that nicely meet the criteria for running on GPUs. They may not be perfectly ideal, but they still run plenty fast. After all, if a GPU is ideally 100x a CPU, and your code can only use it to 10% efficiency, well hell you are still doing 10x what you did on a CPU.

    So what kind of things are like this? Well graphics would be the most obvious one. That's where the design comes from. You do math on lots of matrices of 32-bit numbers. This doesn't just apply to consumer game graphics though, material shaders in professional 3D programs work the same way. Indeed, you'll find those can be accelerated with GPUs. Audio is another area that is a real good candidate. Most audio processing is the same kind of thing. You have large streams of numbers representing amplitude samples. You need to do various simple math functions on them to add reverb or compress the dynamics or whatever. I don't know of any audio processing that uses GPUs, but they'd do well for it. Protein folding is another great candidate. Folding@Home runs WAY faster on GPUs than CPUs.

    At this point, GPGPU stuff is still really in its infancy. We should start to see more and more of it as more people these days have GPUs that are useful for GPGPU apps (pretty much DX10 or better hardware, nVidia 8000 or higher and ATi 3000 or higher). Also there is starting to be better APIs out for it. nVidia's CUDA is popular, but proprietary to their cards. MS has introduced GPGPU support in DirectX, and OpenCL has come out and is being supported. As such, you should see more apps slowly start to be developed.

    GPUs certainly aren't good at everything, I mean if they were, well then we'd just make CPUs like GPUs and call it good. However there is a large set of problems they are better than the CPU at solving.

  • Re:lollero (Score:4, Informative)

    by XDirtypunkX ( 1290358 ) on Monday November 23, 2009 @08:01AM (#30200740)

    It's only traditional on very particular workloads that are very parallel, use a lot of floating point and has a largely coherent execution pattern/memory access. The CPU is still the king of general computing tasks that have lots of incoherent branches, indirection and that require serialized execution.

  • by TheKidWho ( 705796 ) on Monday November 23, 2009 @09:25AM (#30201140)

    The next gen Fermi is supposed to do ~600 Double Precision GFLOPS. It also has ECC Memory, has a threading unit built into it, and a lot more cache.

    http://en.wikipedia.org/wiki/GeForce_300_Series [wikipedia.org]

"Gravitation cannot be held responsible for people falling in love." -- Albert Einstein

Working...