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""
for April fools jokes...
And I just got finished compiling Gentoo too...
it seems like a very cool technology. From what the article says this software would definitely eliminate a large chunk of code optimization time, but I suppose that as each new architecture was developed a second team would have to be completing the SPIRAL coding.
I'm always amazed by the speed differences coming from those who know the architecture and those who don't, maybe this will even the playing field and let coders code.
Those who know, do not speak. Those who speak, do not know. ~Lao Tzu
When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop.
ummm...its called spiral.
Signal processing code represents small part of the code that I write and I find it the most manageable. It's not easy to code nor is more quickly finished. But I find it more predictable and testable. It's the business logic and UI that becomes this impossible morass of vague requirements and compromises.
Nothing in the world is more dangerous than sincere ignorance and conscientious stupidity.
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.
I hear what you're saying... and it sounds like "buzzword, buzzword, buzzword, buzzword, buzzword, buzzword"
I am a viral sig. Please copy me and help me spread. Thank you.
They finally found the silver bullet? Wow... and that even after the entire world has been searching for it for 42 years and didn't find it, with techniques as powerful as RAD and OOP. Guess they're just a whole lot smarter than the entire rest of the world.
I didn't read the article, but after reading the summary one word comes to mind... "SWEET!"
fast as fast can be. you'll never catch me.
It's a god damned DSP algorithm wizard.
This will not help you write anything but specific DSP algorithms.
I think this is just a variation of 4GL in the sense that you write applications (or a subsection of an application) in one language, and letting the system output optimized code for the intended target system....
For doing data-entry/database-intensive work, TenFold's Tsunami (free) and EnterpriseTenFold ($$$) products automatically regenerates code for the target platform and database. As you switch from one RDBMS backend to another, the program changes the SQL dramatically to take advantage of performance features of the new database...
.. our dba's have a perl script that takes metadata and a data dictionary and then generates all the necessary table updates and structures for table updates. Its not ff transforms, but generating code it not a new idea. What I want is a tool that generates java code from business rules. That would make my job so much easier. Of course open source too, cause I can't afford Rational Rose.
Only 'flamers' flame!
Does slashdot hate my posts?
This is similar to a new software tool I've been working on, that may revolutionize the way software projects are badly managed. This new breed of tool, called "DEATH SPIRAL", automatically generates unrealistic deadlines, schedules in exponentially increasing overtime, and adds random pieces of vague, ill-conceived functionality to effect feature creep and cost overruns. This frees up managers' time to concentrate on fostering the more personal, human aspects of the project -- low morale, burnout, and turnover.
Attention zealots and haters: 00100 00100
As the old saying goes, A fool with a tool is still a fool
Tools might make programming easier, but you will always need your skills to achieve anything. Sure, some tools might make programming easier or faster, but in the end it doesn't mean anyone can be a programmer.
www.fftw.org/fftw-paper-ieee.pdf