Supercruncher Applications
starheight writes "Bill McColl has written an article contrasting traditional massively parallel supercomputing with a whole new generation of compute-intensive apps that require massively scalable architectures and can deliver both incredible throughput and real-time responsivenes when processing millions or billions of tasks."
Just in time for Vista!
Dell's website consumer pricing generator.
Argh.
Imagine a Beowulf cluster of-- oh. Wait.
"No freeman shall ever be debarred the use of arms." -- Thomas Jefferson
Looking at his examples (Search, Ecommerce, Software-as-a-Service, Infrastructure-as-a-Service, Fraud Detection) I have to think "wow, single point of failure". Lots and lots of fault-tolerance needed to put all your eggs in one basket like that.
No folly is more costly than the folly of intolerant idealism. - Winston Churchill
The first half of his list seems a bit flighty. They lean more towards buzz and less useful applications. But the second half is much more practical and likely. There are many potentially interesting applications coming up, but I don't think we'll directly see most of them publicly on the internet. So I give him a +0.5 Insightful.
Developers: We can use your help.
I've seen the things - trust me, they're massive!
Slow news day, huh?
Can we please have a "no links to random, boring blogs week" on Slashdot?
The term "massively parallel" indicates a system operating without those constraint.
Engineering is the art of compromise.
bah weep grana weep minibom
"Using supercomputers to test the next-generation version of the SMP code, we get good scaling to many more cores than in the Intel prototype, and we expect to do even better in the future."
m l#166684
http://forum.folding-community.org/fpost166684.ht
http://fahwiki.net/index.php/SMP_client
My main side project is real time ray tracing software. It is very nearly not subject to Amdahl's Law. In the terminology of the Wiki article, F is approximately zero for Ray Tracing. It will scale very well past 10 cores and may well be able to make good use of 100 cores. Memory bandwidth seems to be the limiting factor (that determines F) but that may not be a problem with enough cache and good code. It's also the only potential mass-market use for a lot of cores. nVidia your days are numbered.
There is no such thing as "massively parallel!" It makes no sense! Parallel in qualitative, NOT quantitative! Things are either parallel or they're not, there are no degrees of "parallelness!"
Sure there are. Say you want to find the maximum of 4 integers. You can do that in parallel, but you won't gain much if you have more than two processors (or execution units). Contrast this with say rendering an image using a path tracer, where each ray is independent of each other. First problem is hard to scale up, second one isn't. I'd say that means that ray tracing is a "more parallel" task.
Also, writing algorithms that has to run on 10000 processors efficiently is not exactly the same as one that has to run on 4 processors, in the same way that writing a multiplayer game that handles four players isn't the same as writing one that can handle thousands of concurrent players. So they toss on the "massive" part to separate the cases. At least that's my take on it.
Actually, massively parallel has a meaning. For example, the 131,072 CPU beast designed by IBM. This computer is designed to solve problems that have another term attached to them, and that is "embarassingly parallel" problems. Your average task is not embarassingly parallel, and thus, is difficult to scale to a massively parallel system. It would take a lot of effort, see?
But some problems can use massively parallel computers, designed to solve embarassingly parallel problems.
"Give me a SUPER number crunch."
"We have a 32.33, repeating, of course, percent chance of survival."
"That's better than we usually do."
"Never give up, for that is just the time and place when the tide will change." -Harriet Beecher Stowe ^_^
Additionally, many of these computers don't run just 1 application. IBM's blue gene, and many other Dept. of Energy/Defense/* computers run a large number of research applications, ranging from 10's to 1000's of cores. It is very rare that a single program gets to run on such a large machine for any length of time by itself, so in most cases, programs don't have to scale to 100,000 PE's, but rather they scale to hundreds or a few thousand. Far more applications can scale well to hundreds than thousands, and still have reasonable speedup.
Microsoft Sucks, F/OSS Rocks. I get mod points now right?
For sparse matrices, you can use algorithms that are vastly more efficient than the algorithms you otherwise would use for non-sparce matrices of the same size. This is called sparse linear algebra. If you can't use the algorithms for sparse linear algebra, it doesn't matter whether you call it "dense", "average", "standard", "normal", "regular", "common", or what the fuck else.
Again, this refers to the algorithms used. There are different algorithms you use in each case. And sure enough, there are other types, such as grids structured in non-standard ways, that some mathematicians might have developed special algorithms for. However, these are the common types of computations run.
No. It's like listing the major uses of motorized vehicles, and among them putting "transport of goods", and "transport of people", and then have some dude on the Internet point out that this sounds funny.
What? You are on drugs, yes? And not the good kind?
What about video encoding? Besides codec parallelism, you can also parallelize the distance between two keyframes, handing that chunk off to a core (or node) for processing. This is very mass-market - more and more people want to make snazzy home movies.
In fact, far more people would like to do this than render 3d movies.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
None of those offer or require real-time guarantees.
Google Alerts is here now.
A better article would have started with the table that defines "supercruncher" and proceeded to describe the architectural issues of building one. Ideally it would have addressed the software challenges.
In most cases, researchers request a specific number of cores, based on experience of how well their code scales. Some codes to auto-scale, depending on available cores, but these are rarer. The way it works is in a batch queue system... Users submit a job required 2000 cores, and wait until that many are available. Then, when the cores become available, their job runs for 6-48hrs or more, depending on the job. In most cases, a large number of researchers are often in contention for computing time, and wait their turn in line. The good ones tend to understand the system better, and will submit workloads that reflect the current available resources, thus limiting the time their work spends sitting in the queue.
Microsoft Sucks, F/OSS Rocks. I get mod points now right?
100 cores is not massively parallel. The kind of scaling we're talking about is much higher. Think thousands of cores each with hundreds of threads.
This is the kind of scaling that weather centers are just starting to reach today. It's the kind of scaling that will require a radical rethinking of how consumer software is designed and what tools we need to make that design process easier.
In this world, software is king. You won't care who your chip vendor is. You'll care who provides your compiler, debugger, performance analysis tools and other such things.
Fascinating that a story purporting to be about supercomputers is actually a summary of Weightless Economy theory. The theory is that the wealthiest countries can't achieve more wealth by implementing things anymore. They can't increase their net worth by manufacturing or solving math problems. They have to turn instead to philosophical goals like people management, interpreting literature, creating works of art.
The supercomputer function is still the same. It still solves algebra, n-body methods, structured grids, and finite state machines. The user of the supercomputer is different. The user is now living on $1 a day in Mongolia.
For the wealthiest countries to stay wealthy, they have to focus on not the computing part but marketing the computing, creating the interface to the math, managing the business around the computing.
Some off-the-wall future consumer things to consider:
I think things get particularly interesting thinking about many-core in handheld devices. Software radio could be tremendously useful there. Route planning using a network of GPS-enabled handheld devices would be cool. Background searching could be used for a lot of things.