A good "second board" for learning
Paw Prints: Writings of the maddog
It is not often that I point to a specific product, slap my forehead and make a snap buying decision. It is even less common for me to pay for something I know I will not get for a couple of months, but last night a friend of mine, Lucas Teske wrote to me and pointed me towards the Adapteva board.
I had looked at this board when they had their kickstarter going, but as Lucas and I discussed it, and particularly in light of my work with both Linaro (on performance improvements) and Project Caua (on economic computing), I started to get more interested, then excited. By the end of the night I had purchased one of the Zynq 7000 units (there is a unit based on the Zynq-7010 and one on the Zynq-7020), complete with GPIO pins.
When you first read the description of the whole board you see the "dual-core ARM-9 architecture" then you see the "16 or 64 cores" and the low power utilization, and you think "cool".
But the (typically) top line in the description is deceiving (in a good way):
which includes NOT ONLY the “dual core ARM A9 CPU”, but also (in the configurations on the Adapteva board) a Field Programmable Gate Array (FPGA) and some Digital Signal Processing (DSP) “slices”. Then when you tie these together with the 16 or 64 core array, you start to see the computing power of this board that draws less than five watts. Then you tie it to the set of GPIO pins that could match up with an Arduino, and the world of interesting programming starts to come alive.
It is not just the computing power, however, but the learning potential that interests me. At a time when some universities are backing away from teaching assembly language or computer architecture, these types of machines are coming out at a price that any school could afford one, even if they are still out of the range of some students in developing nations.
The open source nature of this board and the development tools is also great.
With this board you can practice programming multi-threaded applications, applications that could utilize an FPGA, DSP applications, and a raft of other applications that given a “standard” CPU would be slower than molasses on a cold day. You could look at the tradeoffs of decomposing your application for running on a passively parallel system (later being able to “upgrade” to a 64-core system as they are available) or stay with a single-threaded application.
For those of you who are looking at buying a Raspberry Pi (or the Arduino or the BeagleBoneBlack, or any of the other fine “development” boards) please do not let this persuade you from that first step. This board may still be a little expensive for the things those other boards were designed to handle. Certainly there is a HUGE amount that a beginning programmer can learn from any of those boards using Free Software.
But just as I recently said that “shell” is good as a first language and assembly would be good as a third language, as a second board this is very interesting.
I will not be getting one of these until October, but when I do get it I will be incorporating it into my performance talks and work.
Carpe Diem!comments powered by Disqus
Powerful man-in-the-middle attack is now targeting online shopping.
Another high-profile coder says the kernel team needs a kinder, gentler culture.
Bug database has a bug of its own that could allow an intruder to create an unauthorized account.
Report focuses federal resources on achieving universal Internet access.
Leading browser makers say “no” to porous encryption algorithm
Report from the X-Force group says attackers are using TOR to hide their crimes
Future Firefox extensions will be compatible with Chrome.
Better read this if you bought your computer before 2011
Users should upgrade to the new version as soon as possible
Xen project announces a privilege escalation problem for Qemu host systems