Parallel data processing/computations – do we need them? March 4, 2008
Posted by Michele Fadda in technology.Tags: FPGA, grid computing, hardware, parallel algorithms, parallel processing, supercomputers
trackback
This is not about scientific grid systems but rather commercial and open source ones.
Basically there are some open source tools that allows to process data/execute CPU consuming tasks in parallel but the question about their usage. Do we need these kind of software or it’s better to solve it on hardware level?
In my view, which is widely shared in the industry, we always need whatever added speed technology is going to afford.
On software being better than hardware, on this issue, I would consider the following: Do you need a real time response, on a local machine?
If you need a very fast response, i.e.: milliseconds on a heavily computational task, but not a hugely massive one, specialised hardware will always win because you won’t need to propagate and collect intermediate results on a network.
In particular, nowadays we are beginning to have flexibly reprogrammable hardware: FPGAs are currently being used as processing nodes in current supercomputers, together with more traditional CISC processors (e.g.: Cray, which uses Xilinx FPGAs coupled with multiple Amd CPUs). One such example is the CELL processor on board of Sony PS3, which is powerful enough to do tridimensional processing in real time on an externally captured video stream.
In this case we have a computationally heavy, but still limited and “small” task, and want a cheap and rather immediate answer. Dedicated hardware solutions are something we use daily, e.g.: digital signal processing, sometimes without realising it, for instance when it is used within phone switching networks. DSP processing is dedicated hardware, where what you are optimising are algorithms based on repeated multiplications and additions. DSPs are fine tuned for that and may run in circles around more general and less specialised hardware such as modern Personal Computer microprocessors.
Massively huge problem, i.e. cracking RSA, Seti etc, the task at hand is so large that you cannot hope for an immediate answer. Therefore it makes sense to split the computation, which, if you are lucky will take from hours to years on a network of processing nodes. Here nothing will beat the cost of free computational power among a geografic network.
This approach makes even more sense if the network comprises volunteer nodes, which provide computational power for free, or which would have been otherwise idle (screensavers). In this latter case, the issue is not getting the intended result in the fastest way, which would be impossible with dedicated hardware as well, but rather spending as little as possible in order to obtain it. The cost of this technological approach is not really zero, but somehow you managed someone else to provide for it, gratis. You tipically design an application such as a screensaver which slowly, but on an immense scale, checks home for work, computes it, and posts a chunk of work done back home.
If cost is not an issue, nothing will stop you from using both approaches at the same time: flexibly reconfigurable hardware (ad hoc hardware, optimised for the algorithm at hand), repeated modularly on multiple systems connected on a fast network. It is not going to be cheap, but is going to resemble a lot a current supercomputer architecture.
Modern Crays are built this way. And they are based on FPGAs in order to implement special algorithms, with optimised parallel hardware, and they are reconfigurable. Why isn’t this approach adopted more often? The issue is that programming FPGAs with hardware description languages HDLs is a lot harder than programming in traditional programming languages, which are inherently serial. There are attempts to make this burden lighter, via graphical frameworks such as VIVA, or converting traditional languages in order to make them usable on these devices (some Java attempts and the more common System C).
However these tools price tags are Electronic CAD systems’ not personal computer compilers: the companys selling them need to recover millions of dollars of investiments on the few customers they have. So they won’t be adopted.
With more traditional software, you can have open source, but with FPGAs you can’t as the inner workings of their devices are something on which the two leading companies making them, that is Altera and Xilinx, keep very mum. This secrecy, in the end, damages this industry, and limits the adoption of these extremely powerful tools, which have the potential for reshaping the computing industry.
FwLab Microcontrollers Cypress PSOC, Microchip PIC, Firmware development, Embedded Systems
Comments»
No comments yet — be the first.