I recently came across the rather cool Kickfire analytics appliance, which not only does hardware-based database query execution but is also based on F/OSS technologies.
Similar to the Azul Java compute appliance the secret is in the bespoke silicon which has been developed to do one thing and to do it well. When a job can reasonably be targeted to hardware and in doing so will execute much faster, why burden a general purpose processor with it and an associated software stack? Frankly, I think it is nothing short of ridiculous that we have data centres across the globe with millions, if not billions, of general purpose processors executing, with relative inefficiency the same tasks. It might be good news for hardware manufacturers and ISVs, but it’s bad news for the environment, CFOs and the armies of poor souls that have to manage spiralling complexity.
Of course there is nothing that new in the Kickfire and Azul appliances, nor in virtual machines and storage area networks and virtual LANs etc. And in fact many of these extremely popular and frequently hyped technology approaches of more recent years have their roots in the mainframe:
- ICL Content Addressable Filestore –> Kickfire
- IBM VM –> Xen &VMware etc
- DEC VAXcluster –> Veritas, Sun and F/OSS Linux clustering
- The Computer Bureau –> Cloud Computing
One of the major differences between then and now however is that we have a much greater degree of interoperability and with applications and data being much more portable. We are not, or rather we have the choice of not being locked into a single vendor.
I would suggest that to get round imminent scaling issues (SMP has effective limits and not everything works well across many cores) and to drive costs and energy consumption down we must do more research into what might be considered novel computing architectures. We need to stop saying “Oh, yeah but CPU is cheap”, and instead to think how we can optimise. It’s obvious that writing everything in assembler is not the answer, and it would appear that many of technological approaches that were displaced by the PC are now making a serious come back, and so we know roughly where to look.
So, let’s have more application-specific silicon, but which supports open applications. Bring back ancillary processors. Off-load the main CPU(s). Accelerate common functions. Put DES and AES etc on the die. Execute Java btyecode natively. And so on…