This has got less floating point calculation power than a single mid-range Intel processor, let alone a high end GPU that people use for bitcoin mining.
Sounds good. I have an issue with the "45GHz" claim though - it's kind of like saying your collection of cars can go 2000 mph - you're not actually getting anywhere faster.
Going from A to B is exactly an example of a task that can't be solved in parallel fashion. On the other hand, if you needed to merely cover N miles, then a pool of cars would work just fine.
Many computing problems can't be parallelised and in almost all there are dependencies and synchronisation issues that mean a single double speed CPU is almost always better than two normal ones. Exception might be that when a buggy programme gets locked in a tight loop it will only be able to take half the resources.
To use another car analogy. Counting clock speed is like counting the cars max RPM instead of actually measuring the performance. And then they have totalled the max RPM figures as if they have have 90,000RPM engine.
Yes there are infinitely* many problems that can be parallelised but even in the best case they will only equal the single processor at double the speed.
I should have referenced Amdahl's law in the previous post but didn't want to misspell it and bother to look it up.
*Infinite numbers exist of both parallel and serial computing requirements. Practically there will almost always be additional cost in parallel implementation even if the extra is insignificant such as higher start up cost and coordination for shutdown.
Gustafson and Barsis pointed out that Amdahl assumed a fixed input size. If instead you grow the problem size along with the number of processors, the speedup from parallelism grows indefinitely. Of course, like Amdahl, they assume perfect load balancing and don't factor in communication overhead. But parallel still beats the pants off of serial if we want to keep solving larger and larger problems.
You missed his point. Clock frequencies cannot be combined as it's a measure of the frequency a single core operates at - not how many operations per second can be processed. This is why multi-core CPUs don't say 8GHz even though they have 4x 2GHz cores.
You can nitpick as much as you want, but for a lot of applications it's perfectly OK to sum up the frequencies. A job that can be spread over 8 cores will be executed at about the same time as it would execute on a single core at 8x the frequency
No it wouldn't. You have overhead generated by running threads concurrently (eg thread management, communication between nodes, etc). You have issues where not all threads are going to have the exact same complexity (eg some might consist of more floating point calculations than others), this could even result in threads sitting idle while they wait for another thread on a different core to finish.
Plus there's absolutely no precedence for using clock frequencies cumulatively like this anyway (which I've already demonstrated with my multi-core CPU example), thus the figures Adapteva are touting are not only scientifically and mathematically inaccurate, but also breaking established advertising convention too.
Thus their figures are incorrect - period. So accusing us of nitpicking incorrect figures is just plain dumb when there's absolutely no merit to the 13GHz figure what-so-ever.
[edit]
And it's a sad day for geeks worldwide if discussing the correct usage for scientific measurements is considered nitpicking. Had this been Fox News or the Daily Mail, then your view point could be forgiven. But this is a hacker forum, so I'd expect a higher level of technicality rather than simply ignoring counterarguments in such a dismissive manner. :(
Describing a gadget in terms of cumulative frequency of its cores is an A-Ok method of giving approximate performance, especially when it's obvious that it's a sum of cores. You and I and anyone moderately interested by this project know exactly what this number means. It is also pretty clear that they haven't meant to mislead or trick someone into thinking that they are building a 1THz computer for $99. So, yeah, it's nitpicking.
A better angle would be - given the project and its goals, do you really think it's worth putting them down for something as trivial (and technically correct) as this -
Once completed, the Parallella computer should deliver
up to 45 GHz of equivalent CPU performance
That, as they say on TechCrunch, is a dick move. If anything, they deserve a pat on a back and a donation.
I'm not putting them down. My opinions of them are irrespective of the statistics they present. I love the idea of their project - I hate the idea of people like yourself perpetuating the same misconception that clock frequencies can by summed across cluster nodes. so my issue is with you regurgitating the same dumb fallacies.
If you had even the slightest idea about how cores are rated and the complexities of multi-threaded development, then you'd realise that summing the frequency of the cores is completely inaccurate. Hell, don't you think Intel would be doing this with their multi-core processors if it was a legitimate statistic? (a point I've made several times now but you keep ignoring).
You've been told by a multitude of people what the correct measure of cumulative processing power is, and instead you're still holding onto the same myth which the clickbait headlines are perpetuating. So really, you're just reinforcing my point about how they shouldn't be using such a dumb statistic because people who don't know any better will fall for it.
Anyway, and FYI, core frequency isn't even a good measure of CPU performance on single core systems. A 1GHz RISC CPU will perform vastly differently to a 1GHz CISC. Then you have the plethora of RISC architectures; and even on x86, different CPUs will have different co-processors, caching, pipelining and even additional instructions, thus will perform differently on different stress tests.
So crudely summing clock frequencies on a cluster is about as accurate a description of performance as remarking on the colour of the motherboard. But let's not let a pesky thing like science get in the way of our deeply held beliefs ;)
Ugh. They keep using the term "gigahertz", and it does not mean what they think it means. Having 16 800MHz boards does not mean that you have anything running at 13GHz; it's nonsensical to combine it that way, as any high school science student could tell them.
This doesn't necessarily invalidate the product, but it really does put me off it. If they're going to market a product like that it's going to be to a pretty techy crowd and they should get their terminology right.
While I agree that 16x800 Mhz is more accurate than 13 Ghz; I wouldn't say they got the terminology "wrong."
A lot of companies are using the combined totals to tell how fast/big/etc something is. It isn't even a recent development either.
Just for one example, if you go to Dell's store right now you'll find computers with 8 GB of RAM; but what they fail to tell you is that that is 2x4 GB sticks rather than 1x8 GB stick. So it is actually the "total" RAM in the machine.
Now you might argue that for technical reasons there is a difference between how RAM and CPU-cores are exposed to the underlying software, but that within its self is only true in some infrastructural designs, but not true in others (e.g. Sometimes two cores pretend to be one, sometimes a single core pretends to be two).
All desktop CPUs have 2 64 bit channels right now, you should never configure a machine with a single DIMM. The bigger server CPUs (e.g. the LGA2011 socket) have four. Mobile SoCs almost all use 1x32, though a few recent high end ones (Intel Medfield and the A6 at least) have 2x32.
That not really the same though. Hz is a scale of the frequency of a CPU core. So it's not even a gauge of the execution speed of a CPU. You can't really multiply the cores together as the frequency hasn't increased, you've only increased the parallel capabilities (case in point, multi-core CPUs are rated per core, not cumulatively).
RAM, however, can be added together as data can be cached across one or more sticks. Thus adding another stick of RAM does increase the overall total amount of RAM available.
I'm not an expert on this, but I believe this is why clusters are measured in calculations per second (eg FLOPS) rather than frequencies. Calculations run in parallel (such as clusters do) are increasing the overall number of calculations performed per second. Where as multiple cores running in parallel don't increase the clock frequency.
The RAM example is terrible. Accumulating RAM is application-transparent. Processor accumulation is not.
Two small shovels aren't the same as one big shovel, but two small bags of dirt are basically the same as one big bag of dirt. If you're going to continue with the memory analogy, this would be like combining the graphics memory and general purpose RAM into a single figure.
I take pause at the term of "hexadecicore" and as we go up, it just starts to get more complicated... what would you call a 32 core machine? That just seems like an overly complicated and confusing approach to the problem.
Well, I was obviously playing on "hexadecimal" which isn't great itself; it's a mish-mash of Latin and Greek, and should probably be "deca" instead of "deci" anyway. Regardless, it can't be worse than those stupid resolution acronyms like WUQXVGA which are, for some inexplicable reason, still managing to survive.
Think of it this way. If I have 1 2-gallon bucket or 2 1-gallon buckets (or 4 half-gallon buckets), I still have 2 gallons of carrying capacity.
But if I watch 1 clock for 60 seconds, the amount of time that has passed is exactly the same as if I watch 2 clocks for 60 seconds or 100 clocks for 60 seconds.
I believe this was used to allow to compare performance of their offer with other products. I do not think they were trying to fool any of their potential customers who should easily understand what they are talking about.
This might fool non-tech people, but non-tech people will not buy this product anyway.
Just to clarify, I don't think they were trying to "fool" customers; if nothing else, surely nobody would believe that a genuine 13GHz chip is suddenly going to appear via Kickstarter. It just annoys me as a way of describing performance of their device; as someone else suggested, total FLOPS would have been a much better metric.
Even worse is, that in their kickstarter video they even say that the "old way" of increasing processor frequency does not work anymore and we therefore have to scale the amount of cores.
It does not make any sense at all for them to add the numbers up, aside from being able to present a huge single number for marketing purposes. Even non tech people understand that a 4 x 2ghz processor is not a 8ghz processor....
> Even non tech people understand that a 4 x 2ghz processor is not a 8ghz processor..
Having spoken to a few non-tech people I'm pretty sure that I could find a bunch who don't understand anything in that sentence.
Having spoken to some supposedly tech-savvy children on 4chan /g/ I know that there's a lot of confusion about cores and processors and speed, and that's before you talk about potential benefits and disbenefits.
By their reckoning, a 3GHz i5 or i7 with 4 cores would be a 12GHz processor. Not so different from their promised "13GHz". Their hype makes me suspicious.
It's not actually hz, it's cycles * hz, which is cycles per second. Cycles are additive: 1 cycle + 1 cycle = 2 cycles (in the same way that you get twice as many cycles in 2 seconds as you would in 1 second). We probably all prefer FLOPs/sec, but conceptually they are actually very similar - number of operations = number of clocks * number of operations per clock. Number of operations per clock isn't changing when you add more cores, so if you have a problem with summing clocks you should have a problem with summing FLOPs.
As incredibly misleading as it is, our objections may largely come from preconceived notions of what a hz is. We want it to be a function of a single core because that's how we grew up thinking about it.
Yes, my objection comes from a preconceived notion of what a Hz is, because it is the SI unit of frequency - so it has an internationally standardised meaning which you're meant to be able to rely on! In the same way, when I buy a 9V battery, I rely on my preconceived notion of what a volt is, and that's always worked out okay so far.
As I said, we aren't talking about hz, this is about cycle * hz. You aren't adding hz, you are adding cycles. I argued in my comment why I think this is ok.
They didn't say "cycle * hz" in their blurb anywhere, so I wasn't talking about it. I'll grant that it's a more sensible way of describing what's going on (although I think "cycles per second" sounds a little more natural, despite being equivalent), but it's unfortunately not what they actually said.
As a unitless unit, when people talk about hz they almost never mean just hz. In the case of computing, "hz" is always shorthand for cycles per second e.g. a 2 Ghz computer is 2 billion cycles per second.
Interesting choice of example. The 9V battery gets its rectangular shape from being a stack of 6 1.5V batteries in series. Yet, claiming that the battery isn't 9V but 6 x 1.5V would be considered needless pedantry.
Now, let's say that I have a cuckoo clock that chimes once per hour. This is a rate of ~ 278 μHz. Now, imagine that I buy 3600 of these clock and set them to offset them by 1 second each. I now have 3600 x 278 μHz signals. However, I also have 1 clock going off every second. Thus, the frequency rate for the entire system is 1 Hz, even though the individual components have a much slower rate.
Now, let's say that I didn't do such a great job in aligning the signals of the clocks. Some are 2 seconds apart while others are mere milliseconds apart. From a Fourier transform perspective, there's now multiple signals with multiple frequencies occurring. However, if I average over a long time period, I'm still getting 3600 events per hour, or 1 event per second. The signal may not be a perfect sine curve, but, barring a pathological timing, the strongest Fourier component is going to be the 1Hz signal. Thus, 1Hz would be a reasonable way to describe the cuckoo bird rate of the system.
Increasingly in the server space people use processor cycles additively (is that a word?) because to some degree you can work out how many vCPUs a physical server configuration will give you by adding the clock cycles of all the processors.
It's not perfect - but is a lot easier than dealing with having to look up Intel CPU numbers to see how many cores it has, then multiplying that by the clock speed, then guessing. Getting the total cycles means you can jump straight to the guessing ("estimating") part.
There are GPUs that can do a teraflop, so yes, 26 gigaflops is terribly unimpressive. There are some areas that can't be easily handled by a GPU, but those are mainly bandwidth-limited, which wouldn't be improved by this architecture.
The defining feature of this proposal is their 70 gigaflops/watt number, which is impressive. But that doesn't make it a suitable target for hobbyists. Hobbyists who want to play with supercomputing for cheap should just use their existing video card.
I don't get why it has only 1GB of RAM to go with all those cores. Doesn't that drastically limit the potential applications?
It doesn't sound like they have compelling applications in mind -- they're kind of throwing it out there to see what people will do with it. But there are only a few things that needs so much computation and so little memory. Even a lot of scientific computing today is more like "big data" than "big compute".
Also, it seems obvious that you'll want to use more than one together, so some info about network connectivity would be useful.
It is a compute device. I presume the use would be any scenario where you want a very fast, very concurrent, calculation engine but one that doesn't depend on an extremely large data set.
One random example I can think of would be cracking encryption and or hashes (without the use of rainbow tables or similar).
Your entire comment essentially seems to be "I don't think a usage scenario exists, because I cannot think of any, so why didn't they make it a 'large data' device instead of a compute device?!" which seems more a limitation on yourself than the device its self.
No, my comment is: what are some of those applications? If your answer is that it's for running quadratic or exponential algorithms on medium-size data sets, then that explains a lot.
The relatively few applications explains why they are using Kickstarter for funding. If it had more applications, then people with deep pockets would be falling over themselves to give them money.
There's nothing wrong with this -- the page is just so full of marketing-speak that it's hard to tell.
So if those boards have the same performance of an i5 cpu (25GigaFlops) can they be clustered together to reach a higher amount, say would 10 of them produce 450 GigaFlops?
Has anyone tried building something about a GreenArray [1]? 144 computers per chip, $20 per chip in with an MOQ of 10. I'm not affiliated with them. It just sounds like an interesting chip, and I'm curious whether there is a reason not to buy some for experimentation.
> The Kickstarter page went live today. A pledge of $99 guarantees supporters a 16-core board by May 2013, while a pledge of $499 guarantees delivery by February. The current hardware is in the prototype phase.
Calling this a "supercomputer" is a misnomer (though it's a sexy one), because it makes people expect real high performance. As many have pointed out, a single GPU could beat this thing easily in terms of performance. It's really a dev platform for shared-memory parallel computing, mimicking some types of supercomputer architectures... which isn't to say it's not awesome.
I've seen similar projects in the distributed-memory space (tiny clusters like Limulus[1], MicroWulf[2], or LittleFe[3]). These things are great for educational purposes, and the low cost makes them a lot of fun for classes and workshops. LittleFe, for example, supports distributed-memory and GPGPU programming and teaches you about clusters, and the educational program at the Supercomputing conference lets some educators build one and take it home for free.
But for professional work, I think a workstation-class PC, maybe with a GPU, is always going to win out.
65 comments
[ 4.0 ms ] story [ 93.0 ms ] threadFPGAs and (probably) these are harder to manage and set up but will yield better results per dollar and Watt.
https://en.bitcoin.it/wiki/Mining_hardware_comparison
Going from A to B is exactly an example of a task that can't be solved in parallel fashion. On the other hand, if you needed to merely cover N miles, then a pool of cars would work just fine.
To use another car analogy. Counting clock speed is like counting the cars max RPM instead of actually measuring the performance. And then they have totalled the max RPM figures as if they have have 90,000RPM engine.
http://home.wlu.edu/~whaleyt/classes/parallel/topics/amdahl....
I should have referenced Amdahl's law in the previous post but didn't want to misspell it and bother to look it up.
*Infinite numbers exist of both parallel and serial computing requirements. Practically there will almost always be additional cost in parallel implementation even if the extra is insignificant such as higher start up cost and coordination for shutdown.
http://en.wikipedia.org/wiki/Gustafson%27s_Law
Gustafson and Barsis pointed out that Amdahl assumed a fixed input size. If instead you grow the problem size along with the number of processors, the speedup from parallelism grows indefinitely. Of course, like Amdahl, they assume perfect load balancing and don't factor in communication overhead. But parallel still beats the pants off of serial if we want to keep solving larger and larger problems.
People = threads and cars = cores.
You can nitpick as much as you want, but for a lot of applications it's perfectly OK to sum up the frequencies. A job that can be spread over 8 cores will be executed at about the same time as it would execute on a single core at 8x the frequency
Plus there's absolutely no precedence for using clock frequencies cumulatively like this anyway (which I've already demonstrated with my multi-core CPU example), thus the figures Adapteva are touting are not only scientifically and mathematically inaccurate, but also breaking established advertising convention too.
Thus their figures are incorrect - period. So accusing us of nitpicking incorrect figures is just plain dumb when there's absolutely no merit to the 13GHz figure what-so-ever.
[edit]
And it's a sad day for geeks worldwide if discussing the correct usage for scientific measurements is considered nitpicking. Had this been Fox News or the Daily Mail, then your view point could be forgiven. But this is a hacker forum, so I'd expect a higher level of technicality rather than simply ignoring counterarguments in such a dismissive manner. :(
A better angle would be - given the project and its goals, do you really think it's worth putting them down for something as trivial (and technically correct) as this -
That, as they say on TechCrunch, is a dick move. If anything, they deserve a pat on a back and a donation.If you had even the slightest idea about how cores are rated and the complexities of multi-threaded development, then you'd realise that summing the frequency of the cores is completely inaccurate. Hell, don't you think Intel would be doing this with their multi-core processors if it was a legitimate statistic? (a point I've made several times now but you keep ignoring).
You've been told by a multitude of people what the correct measure of cumulative processing power is, and instead you're still holding onto the same myth which the clickbait headlines are perpetuating. So really, you're just reinforcing my point about how they shouldn't be using such a dumb statistic because people who don't know any better will fall for it.
Anyway, and FYI, core frequency isn't even a good measure of CPU performance on single core systems. A 1GHz RISC CPU will perform vastly differently to a 1GHz CISC. Then you have the plethora of RISC architectures; and even on x86, different CPUs will have different co-processors, caching, pipelining and even additional instructions, thus will perform differently on different stress tests.
So crudely summing clock frequencies on a cluster is about as accurate a description of performance as remarking on the colour of the motherboard. But let's not let a pesky thing like science get in the way of our deeply held beliefs ;)
This doesn't necessarily invalidate the product, but it really does put me off it. If they're going to market a product like that it's going to be to a pretty techy crowd and they should get their terminology right.
A lot of companies are using the combined totals to tell how fast/big/etc something is. It isn't even a recent development either.
Just for one example, if you go to Dell's store right now you'll find computers with 8 GB of RAM; but what they fail to tell you is that that is 2x4 GB sticks rather than 1x8 GB stick. So it is actually the "total" RAM in the machine.
Now you might argue that for technical reasons there is a difference between how RAM and CPU-cores are exposed to the underlying software, but that within its self is only true in some infrastructural designs, but not true in others (e.g. Sometimes two cores pretend to be one, sometimes a single core pretends to be two).
RAM, however, can be added together as data can be cached across one or more sticks. Thus adding another stick of RAM does increase the overall total amount of RAM available.
I'm not an expert on this, but I believe this is why clusters are measured in calculations per second (eg FLOPS) rather than frequencies. Calculations run in parallel (such as clusters do) are increasing the overall number of calculations performed per second. Where as multiple cores running in parallel don't increase the clock frequency.
Two small shovels aren't the same as one big shovel, but two small bags of dirt are basically the same as one big bag of dirt. If you're going to continue with the memory analogy, this would be like combining the graphics memory and general purpose RAM into a single figure.
But if I watch 1 clock for 60 seconds, the amount of time that has passed is exactly the same as if I watch 2 clocks for 60 seconds or 100 clocks for 60 seconds.
This might fool non-tech people, but non-tech people will not buy this product anyway.
It does not make any sense at all for them to add the numbers up, aside from being able to present a huge single number for marketing purposes. Even non tech people understand that a 4 x 2ghz processor is not a 8ghz processor....
Having spoken to a few non-tech people I'm pretty sure that I could find a bunch who don't understand anything in that sentence.
Having spoken to some supposedly tech-savvy children on 4chan /g/ I know that there's a lot of confusion about cores and processors and speed, and that's before you talk about potential benefits and disbenefits.
As incredibly misleading as it is, our objections may largely come from preconceived notions of what a hz is. We want it to be a function of a single core because that's how we grew up thinking about it.
Now, let's say that I have a cuckoo clock that chimes once per hour. This is a rate of ~ 278 μHz. Now, imagine that I buy 3600 of these clock and set them to offset them by 1 second each. I now have 3600 x 278 μHz signals. However, I also have 1 clock going off every second. Thus, the frequency rate for the entire system is 1 Hz, even though the individual components have a much slower rate.
Now, let's say that I didn't do such a great job in aligning the signals of the clocks. Some are 2 seconds apart while others are mere milliseconds apart. From a Fourier transform perspective, there's now multiple signals with multiple frequencies occurring. However, if I average over a long time period, I'm still getting 3600 events per hour, or 1 event per second. The signal may not be a perfect sine curve, but, barring a pathological timing, the strongest Fourier component is going to be the 1Hz signal. Thus, 1Hz would be a reasonable way to describe the cuckoo bird rate of the system.
It's not perfect - but is a lot easier than dealing with having to look up Intel CPU numbers to see how many cores it has, then multiplying that by the clock speed, then guessing. Getting the total cycles means you can jump straight to the guessing ("estimating") part.
I dug out this article from 2007 about building a 26 gigaflops "supercomputer" called the Microwulf Supercomputer which cost under $2500 [1].
And according to Intel [2], the Intel i5-650 processor can do 25.6 GFLOPs.
This is just the worst kind of kickstarter marketing.
1 - http://www.geekologie.com/2007/09/supercomputer-does-26-giga...
2 - http://download.intel.com/support/processors/corei5/sb/core_...
The defining feature of this proposal is their 70 gigaflops/watt number, which is impressive. But that doesn't make it a suitable target for hobbyists. Hobbyists who want to play with supercomputing for cheap should just use their existing video card.
The days of a gigaflop being an impressive unit of measurement are surely over.
Seriously though, this sounds amazing :)
It doesn't sound like they have compelling applications in mind -- they're kind of throwing it out there to see what people will do with it. But there are only a few things that needs so much computation and so little memory. Even a lot of scientific computing today is more like "big data" than "big compute".
Also, it seems obvious that you'll want to use more than one together, so some info about network connectivity would be useful.
One random example I can think of would be cracking encryption and or hashes (without the use of rainbow tables or similar).
Your entire comment essentially seems to be "I don't think a usage scenario exists, because I cannot think of any, so why didn't they make it a 'large data' device instead of a compute device?!" which seems more a limitation on yourself than the device its self.
The relatively few applications explains why they are using Kickstarter for funding. If it had more applications, then people with deep pockets would be falling over themselves to give them money.
There's nothing wrong with this -- the page is just so full of marketing-speak that it's hard to tell.
[1] http://www.greenarraychips.com/
sigh There is no guarantee on Kickstarters.
I've seen similar projects in the distributed-memory space (tiny clusters like Limulus[1], MicroWulf[2], or LittleFe[3]). These things are great for educational purposes, and the low cost makes them a lot of fun for classes and workshops. LittleFe, for example, supports distributed-memory and GPGPU programming and teaches you about clusters, and the educational program at the Supercomputing conference lets some educators build one and take it home for free.
But for professional work, I think a workstation-class PC, maybe with a GPU, is always going to win out.
[1] http://limulus.basement-supercomputing.com/ [2] http://www.calvin.edu/~adams/research/microwulf/ [3] http://littlefe.net/
https://www.digilentinc.com/Products/Detail.cfm?Prod=ZEDBOAR...
No idea what's hiding on the FMC daughterboard, though.