Adapteva Parallella Supercomputing Boards Start Shipping
hypnosec writes "Adapteva has started shipping its $99 Parallella parallel processing single-board supercomputer to initial Kickstarter backers. Parallella is powered by Adapteva's 16-core and 64-core Epiphany multicore processors that are meant for parallel computing unlike other commercial off-the-shelf (COTS) devices like Raspberry Pi that don't support parallel computing natively. The first model to be shipped has the following specifications: a Zynq-7020 dual-core ARM A9 CPU complemented with Epiphany Multicore Accelerator (16 or 64 cores), 1GB RAM, MicroSD Card, two USB 2.0 ports, optional four expansion connectors, Ethernet, and an HDMI port."
They are also releasing documentation, examples, and an SDK (brief overview, it's Free Software too). And the device runs GNU/Linux for the non-parallel parts (Ubuntu is the suggested distribution).
The first comment to mention MAME or BitCoin wins.
If all you are gonna do is advertise, at least do it right!
There is no micro SD included by default and the connectors are micro USB and micro HDMI. Big fail!
Very well:
Imagine a Beuowulf Cluster of these!
I could buy enough of these to cover the underside of the floor of my house and mine Bitcoins during the winter. Then I get radiant heat and useless fake money (which is probably just NSA's password cracker anyways).
sudo make me a sandwich
So it's interesting, a light weight ARM processor, without anything better than micro USB and micro HDMI. Neat yes, but really? Useful? Maybe as a wireless router, or some other PoE like device but as a useful processing system? Um...
Even linking many of these together - neat, but again, the world of MPI is based on completely different processor designs and interconnects, you're talking huge amount of time and effort to replicate something on a unique platform which may or may not ever see wide spread acceptance by the developer base.
Anyone out there in /.-land plan on getting these for a real project?
Tell us about it! What language/OS/purpose?
Just curious...
Help me out here. The Adapteva sales pitch is claiming you get faster time to market by not having to do any FPGA programming (ANSI-C and OpenCL for the multicore coprocessors). The Zynq processor seems to be just for the host OS, which they say can run Ubuntu out of the box and they provide open source development tools for everything else. No mention of Xilinx anywhere that I can see. Am I missing something?
Help me out here. The Adapteva sales pitch is claiming you get faster time to market by not having to do any FPGA programming (ANSI-C and OpenCL for the multicore coprocessors). The Zynq processor seems to be just for the host OS, which they say can run Ubuntu out of the box and they provide open source development tools for everything else. No mention of Xilinx anywhere that I can see. Am I missing something?
he was probably confusing this with http://www.kickstarter.com/projects/1106670630/mojo-digital-design-for-the-hobbyist
which pretty much means he didn't read even half of TFS.
world was created 5 seconds before this post as it is.
I'm skeptical as to how useful this chip will be. High core counts are making supercomputing more and more difficult. Supercomputing isn't about getting massively parallel, but rather high compute performance, memory performance, and interconnect performance. If you can get the same performance out of fewer cores, then there will usually be less stress on interconnects. Parallel computing is a way to get around the limitations on building insanely fast non-parallel computers, not something that's particularly ideal. For things like graphics that are easily parallel, it's not much of a problem, but collective operations on supercomputers with hundreds of thousands to millions of cores are one of the largest bottlenecks in HPC code.
Supercomputers are usually just measured by their floating point performance, but that's not really what makes a supercomputer a supercomputer. You can get a cluster of computers with high end graphics cards, but that doesn't make it a supercomputer. Such clusters have a more limited scope than supercomputers due to limited interconnect bandwidth. There was even debate as to how useful GPUs would really be in supercomputers due to memory bandwidth being the most common bottleneck. Supercomputers tend to have things like Infiniband networking in multidimensional torus configurations. These fast interconnects give the ability to efficiently work on problems that depend on neighboring regions, and are even then a leading bottleneck. When you get to millions of processors, even things like FFT that have, in the past, been sufficiently parallel, start becoming problems.
Things like Parallella could be decent learning tools, but having tons of really weak cores isn't really desirable for most applications.
Looking at the FPGA code, it targets Xilinx devices. The OP points out using proprietary (but free) tools from Xilinx makes it "not open", I guess in the same way that the chips used on the card are "not open". I think it misses the point, but whatever.
It has about half the gigaflops of a Core i7, and costs 80% less to buy.
It uses 5-10 watts, whereas the Core i7 uses 100 - 200 watts, with the chipset.
So total cost of ownership is about 90% less than the Core i7. Ten of them would spank the heck out of a Core i7 and cost the same.
> and what can you run on it ?
16 or 64 cores is good for facial recognition, audio processing, video processing, some network stuff - things where you run the same function on many pixels / samples / rows. So for face recognition, for example, the image would be broken up into 64 blocks and all of the blocks analyzed simultaneously on the 64 cores.
A database designed for the many cores could work well. For example, say you need to sort a table with 100,000 rows. On a system like this with 64 cores,
each core could simultaneously sort a group of 1,500 rows, then you'd merge those 64 sorted groups together ala merge sort. As a firewall, it could handle a blacklist with a million entries, as each core would handle simultaneously apply 1/64 of that list.
With 64 cores, I'd say it's already a cluster. A dozen of these ($1200) would have 768 cores and fit in a microatx case. :)
where do people get their definition of supercomputer? a supercomputer is what you have when your compute needs are so large that they shape the hardware, network, building, power bill. this thing is just a smallish multicore chip, like many others (now and in the past!)
This thing is promised to do 90Gflops and costs 100$. A HD7870 can do 2500Gflops for 300$. Sure, you need to build a rig around it, but you'll still be way better off then soldering together a tower of 25 of these boards.
Yeah but compare it to a GPGPU and you start to realize how slow it is, a $200 660 GTX does 1880 GFLOPS in 140W.
1 GFLOPS/$ versus 9.4 GFLOPS/$
10 GFLOPS/Watt versus 13.4 GFLOPS/Watt
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
It is a shame that you posted as an anonymous coward here. I'ld love to understand your thinking on this. As far as I see it, this is a win as the source code for the FPGA logic will be open, making this much like using Visual Studio to build an other Open Source project - hardly an Open Source fail.
I would also like to know if you run on Sparc CPUs as they are "open" (with published HDL source), rather than on Intel or ARM? If not, how can you defend that your favourite Open Source project (say Apache) running on Linux on an Intel system board is more "Open Source" than this? Do you have the source code for your MoBo's chipset?
You will with the Parallella...
16 or 64 cores is good for facial recognition, audio processing, video processing, some network stuff
Low end ARM cores do that already in a low cost, low power package. I really can't see how this device would be economic for any of those things - even if you need to do facial recognition on multiple image streams at once low cost ARM cores will be cheaper. You also have the difficulty of interfacing so many video streams to a single parallel processing device; it would be easier to have lots of smaller devices.
As a firewall, it could handle a blacklist with a million entries
Again, current ARM based routers can handle such lists. IP address lists or simple URL lists with a few wildcards are no problem. I suppose if you wanted a million complex regex rules then having 64 cores would help, but if you do have such a list you need to write better regular expressions.
Low end servers are about the only application where this makes sense, and even then the added cost of having to write software specifically for these cores probably outweighs any power/performance gains over ARM and you still have the I/O issues I mentioned earlier.
const int one = 65536; (Silvermoon, Texture.cs)
SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
A super computer is a system that has multiple processors functioning in parallel. be it many individual machines networked together, a single processor with a several processors etc.
The term supercomputer is a very old one back before you could even fathom purchasing a machine capable of housing multiple CPUs, well unless you were a university or very well funded trust fund geek
by the original definition most of our phones are super computers
the FPGA is the host for the CPU and communications with the Epiphany processor so you never need to change the FPGA at all. it's the Epiphany processor is what you are developing for, not an FPGA. the functionality of the FPGA is open, so you could use it just like any other IC if you really wanted.
Anons need not reply. Questions end with a question mark.
Proprietary software which can be used for free with very reasonable size and device limitations. Plus if you don't like the GUI you can always run the traditional command line tools to build a bitstream if you want.
I am becoming gerund, destroyer of verbs.
To take this one example suppose the ARM processor can do face recognition of a certain quality on a photo. Suppose it takes 1/4 of a second to process the image with some level reliability. Since this device can process 64 frames simultaneously, it can do the same recognition on video that the ARM could do on a photo.
"With 64 cores, I'd say it's already a cluster. A dozen of these ($1200) would have 768 cores and fit in a microatx case. :)"
But what about performance? For example, how does it perform at parallel integer math (arguably the most common use for these things), as compared to a top-line, price-comparable GPU card?
That's what I want to know. I didn't search for a long time, but I didn't find info on that.
The only problem is you cant run GPU standalone.
There was one project by someone who reverse engineered old Radeon HD2400
http://www.edaboard.com/thread236934.html
http://www.flickr.com/photos/73923873@N05/sets/72157631771354007/
but that guy deleted his git repo before publishing the news blurp and some photos and they quickly shut up about it.
I would love to be able to use GPU cards standalone for Vision projects, or just as a openCL accelerators for embedded systems.
Who logs in to gdm? Not I, said the duck.
manufacturing of physical goods can still be paid
How magnanimous of you.
In other words: You deal with organized crime.
By your standards, 100% of the electronics, computer and software industry is organized crime. That may stroke your ideological fervor, but it's of little practical value. Even Linus Torvalds uses a machine where less than 100% of the IP for all parts, software and manufacturing equipment is open. I'll happily continue using devices, participating in that industry and earning a living. I'm wondering how you made that post while avoiding any contact with the product of, as you label it, organized crime.
That, and GPU computing really only gives that kind of performance for a few types of problems. Namely, if you are able to structure your data arrays in memory in such a way that a GPU can operate on it efficiently. If you are solving nasty PDEs on an unstructured mesh, it's very difficult to do this. In that case, a GPU is pretty worthless. I don't know how these parallella boards work, but hopefully they would be a bit more versatile.
I don't know how these parallella boards work, but hopefully they would be a bit more versatile.
There is almost no chance that a $100 board can be designed to have a memory interface that can keep 64 cores well fed at this point in time. They have almost certainly chosen low latency cache model over high bandwidth cache model due to this, so this product will probably only perform well on highly computational problems that dont require much memory - in other words none of the problems that GPU's struggle with will likely be any better on it.
"His name was James Damore."
"There is almost no chance that a $100 board can be designed to have a memory interface that can keep 64 cores well fed at this point in time. "
I agree with you 100% on that. If the cache isn't terrible, it might be okay if you have a problem amenable to openMP. But mainly I view these low-end things as kind of fun toys.
That said, there is a market for something reasonably compact and affordable in between a 4-8 core desktop and a large scale cluster. I occasionally test and debug problems on my desktop that seem to work fine, but when I scale it to 200 processors and put it on the cluster, all hell breaks loose and it can be hard to debug. A cheapo 64 core board, even if slow, could help bridge that gap, assuming I can use mpich/openMP on this thing.
Otherwise it is for hobbyists or as a learning tool.
These boards are only half the solution to a parallel problem. I used to write satellite imaging software that was parallelized on a 12-CPU server. A lot of work went into the code necessary to parallelize the mapping and DTM algorithms. It wasn't trivial either. I'm failing to see the usefulness of these boards for anything other than intensive scientific computation. Because if the code being run isn't written for parallel processors, you're getting no advantage to running it on a multicore/multiprocessor computer.
Or am I missing something here?
GPUs are SIMD, while this board is MIMD.
Rethinking email
GPUs hit a wall with applications that need significantly more memory than you can fit on the device with the GPU cores. You spend so much time feeding them via the bus from main memory that after a point you'd be much better running the stuff on a far lower number of CPU cores.
So for some stuff they are very good, but for other stuff they are just not suitable at this time.
Faster than serial ?! Of course! I only meant to compare it to a traditional parallel procssing environment. And you can definitely write a simple parallel algorithm for any O/PDE that will work on GPUs. What I meant was that there are an awful lot of claims about how wicked fast GPU processing can be. Some people tout it as much faster than traditional computing. This can be true, but to get a GPU to actually perform at that level, it requires particular structure to your data. Unstructured meshes are known to be particularly nasty. Doesn't mean you can't compute anyway. It just may or may not be any better than traditional methods.
I don't mean to poo-poo GPU computing in general. I admittedly haven't followed this field closely in a year or two, so it's possible there have been some newer agorithms for unstructured meshes that have improved the situation. And without knowing more about your particular problem, I won't speculate and tell you how it should or shouldn't work. Maybe you figured out a decent implementation on your own. In which case, publish it already!
It depends. If you can get them on a board that can address 32GB or more of memory directly then they'll be able to handle a lot of tasks that GPU cards just cannot touch without a lot of waiting around to be fed data or careful design of those tasks to get them to fit into the memory of the GPU card.
"By your standards, 100% of the electronics, computer and software industry is organized crime."
Haven't been paying attention to the Panasonic case, I see.
Every one of these companies is colluding and conspiring. This time, one got caught.
Welcome to reality, child.
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
"you never need to change the FPGA at all."
Until you want to be able to handle the bandwidth of a huge parallel processing unit.
And a typical FPGA will struggle with more than 8 TRUE cores currently. We've tested it. It would not work for our requirements, it was insufficient in bandwidth department.
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
"Ten of them would spank the heck out of a Core i7 and cost the same."
Yea, if it were even a general-purpose usable piece of silicon. It's not.
"16 or 64 cores is good for facial recognition, audio processing, video processing, some network stuff "
We've had all of that in software since fucking Windows 98 on an Evergreen overdrive (180 MHz) chip. Please catch up with current technology or stop shilling, what you speak of is absolutely not new, and not even novel.
"A database designed for the many cores could work well."
As we've had for the past 30+ years I've been alive?
"For example, say you need to sort a table with 100,000 rows. On a system like this with 64 cores,
each core could simultaneously sort a group of 1,500 rows,"
*cackle* Most cores today can't even sort FIVE HUNDRED rows, let alone triple that amount.
Quit shilling and get with reality, please.
Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
How is this not any different then IBM's Cell Processor? You know the one in the PS3. Sure it didn't have as many cores but its the exact same thing and it didn't do well. A big part of the problem was the overhead caused in memory transfer from the host system to the individual cores. The other part was each core only had 512Kb of RAM, these only have 32Kb!
So total cost of ownership is about 90% less than the Core i7.
TCO is a meaningless measure and it's sad that it persists. I have a used halfbrick here. It costs 99% less to buy (excluding shipping) and uses 0% of the power. The TCO is vastly better than either of the two options you present.
Now, return on investment is a much better measure...
But yeah, your other points stand. As always by using more specialised hardware you can get vastly better flops, etc in a given hardware/power/financial budget. There are plenty of tasks that can be parallelized and it doesn't require the overhead of a powerful GPU (i.e. awhole PC attached).
SJW n. One who posts facts.
The Parallella doesn't run standalone, either. It's an accelerator chip attached to an ARM system.
I can fit over 9000 bottle caps in a medium sized rainwater barrel. Not sure what I'd do with it though.
const int one = 65536; (Silvermoon, Texture.cs)
SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
> We've had all of that in software since fucking Windows 98 on an Evergreen overdrive (180 MHz) chip.
So every processor since then is useless?
> "A database designed for the many cores could work well."
> As we've had for the past 30+ years I've been alive?
So noone will ever use another database, and there is no longer any use for hardware to run databases on?
I very much care what it costs me, so TCO is one of the most important measurements of all.
> I have a used halfbrick here. It costs 99% less to buy (excluding shipping) and uses 0% of the power. The TCO is vastly better than either of the two options you present.
So the scorecard reads:
Item Effective Fast TCO
hw1 yes yes 6
hw2 yes yes 2
brick no na 0
It looks to me like "brick" loses because it can't do the job. The other two options are the same, except hw1 costs three times as much.
They can both do the job, and both can do it fast. The only difference is that the TCO is a lot lower on hw2, so it's the best choice.
> TCO is a meaningless measure and it's sad that it persists.
What your brick example shows is that TCO is not the ONLY consideration. "Can it do the job?" is also a critical consideration.
Amazingly, when making decisions you can actually consider more than one factor. You can look at both effectiveness AND cost.
Erm. I beg to differ. Nvidia GPUs are "SIMT" (Single Instruction, Multiple Threads). There are "tricks" to avoid threads in a warp from waiting for other threads (basically, don't use if (condition) ... else ..., but if(condition) ... and if(!condition) ...). AMD GPUs are based on VLIW processors, and are closer to your assertion of SIMD, but it's not quite the same thing either.
you seem to be confusing the Epiphany chip (silicon) with the Zync (FPGA+ARM) host chip or something. the Epiphany chips contain 16 or 64 "true" cores and the chips connect directly together.
what were you talking about?
Anons need not reply. Questions end with a question mark.