Researchers Develop New Tool For Writing Code
neutron_p writes "A group of researchers, led by Carnegie Mellon researchers, have developed a new set of software tools that may revolutionize the way computer code is written. They said they have created a new breed of software called "SPIRAL" that automatically generates code for signal-processing applications - applications that help make computers run faster and cheaper. "What SPIRAL does is permit users to develop high quality code for new and old applications automatically, say in 10 minutes or less, saving time, money and aggravation for end users""
Overview
SPIRAL addresses this problem for the performance-critical class of DSP transform algorithms, like the discrete Fourier transform (DFT), the discrete cosine transforms (DCTs), and many others, by automatically generating code that is tuned to the given computing platform.
SPIRAL uses mathematics to describe, generate, and manipulate fast algorithms, translates them into programs, and searches for the best one for a given platform.
The architecture of SPIRAL is displayed in the figure to the left. The user specifies the transform she wants to implement and its size, e.g., a DFT (discrete Fourier transform) of size 1024. First, the Algorithm Generation block generates one, or several, out of many possible fast algorithms for the transform, represented as a formula in the SPIRAL proprietary language SPL (signal processing language). Next the formula is optimized at the mathematical level using a set of formal mathematical manipulation rules. The optimized SPL formula is compiled by the Implementation block into a program in a common language such as C or Fortran and then optimized using common and not so common compiler techniques. Directives at the Implementation level control implementation choices such as the degree of unrolling or scheduling. The final program is compiled and its runtime measured. Based on this runtime, the Search/Learning block triggers the generation of additional algorithms and their implementations using possibly different directives. Iteration of this process leads to a C or Fortran implementation that is adapted to the given computing platform. Optionally, the generated code is verified for correctness.
In summary, SPIRAL automatically searches in the space of structurally different algorithms and the space of their implementations for the best match to a given computing platform. Further, many optimizations are performed at a high level of program representation, thus overcoming compiler limitations.
Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
This may be very useful if you work with DSP type applications. I have no idea where the article came up with the conclusion that
automatically generates code for signal-processing applications - applications that help make computers run faster and cheaper.
I fail to see what DSP applications have to do with making the computer run faster.
The application is probably nice though. And DSP applications have quite specific types of data flow so I bet they can do some really good optimisations.
Won't help you if you don't do signal processing though.