Interesting directions...
Dynamically Reconfigurable Computing
This is a fascinating problem. It mirrors biology in a lot of ways -- create a CPU that can change itself in response to the problem it's trying to solve to maximize hardware efficiency.
FPGA's are currently more performant than general purpose Intel-style architectures, and this is with restrictive FPGA's that haven't been customized for general purpose computing at all! With better chips, it can really take off.
Problems
The programming paradigms seem to be the major problem. Major issues:
- Spatially localized memory access
Having to determine the structure of your dataflows before the algorithm has been written
- Mindshift to parallel asynchronous coding practices (writing everything as streamable components -- like pipes)
Possible Solutions
As with all large advances, a revolution needs to happen. In this case, it seems to be the software and the way people think about software.
What's interesting is that Intentional Software is already creating a revolution in how we think of software.
What's also interesting is that for reconfigurable computing to work, we're going to need a system that can generate these FPGA layouts, which happens to be exactly what Intentional Software does.
Also, to support on-the-fly reconfiguration of the CPU, introspection into the code will be needed, which is also a perfect fit for Intentional Software.
I sense an interesting direction for this project.
Applications
Neural networks
- A massively parallel, dynamically reconfigurable computing platform is not only ideal for a neural network, that's essentially what a neural network is! Some very interesting research could come out of that.
Gene (Reverse-)Engineering
- DNA decoding and protein folding need huge CPU resources, and their problems are surprisingly well suited to spatially-localized computations.
Resources
unununium OS - an experimental OS moving towards massive parallelism using Petri Nets
Google engEDU - General Purpose, Low Power Supercomputing Using Reconfiguration
