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
MSBuild is now just another GitHub project as Redmond continues its path to the light.
Malware could pass data and commands between disconnected computers without leaving a trace on the network.
New rules emphasize collegiality in coding.
Upstart lands in the dust bin as a new era begins for Linux.
HP's annual Cyber Risk report offers a bleak look at the state of IT.
But what do the big numbers really mean?
.NET Core execution engine is the basis for cross-platform .NET implementations.
The Xnote trojan hides itself on the target system and will launch a variety of attacks on command.
Spammers go low-volume, and 90% of IE browsers are unpatched.
Adobe scrambles to release patches for vulnerable Flash Player.