Slashdot Mirror


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""

35 comments

  1. Isn't it a little late? by Dh2000 · · Score: 3, Funny

    for April fools jokes...

    1. Re:Isn't it a little late? by Anonymous Coward · · Score: 3, Funny

      Researchers Develop New Fool For Writing Code

      We have several prototypes of these fools. They are called J2EE-programemrs.

  2. Great by youknowmewell · · Score: 0, Offtopic

    And I just got finished compiling Gentoo too...

  3. If this is for real... by jessecurry · · Score: 2, Insightful

    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
    1. Re:If this is for real... by Hast · · Score: 2, Informative

      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.

  4. From the cookie file... by Anonymous Coward · · Score: 4, Funny

    When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop.

  5. Summary of article: by afaiktoit · · Score: 4, Funny

    ummm...its called spiral.

    1. Re:Summary of article: by Paradise+Pete · · Score: 1
      ummm...its called spiral.

      Parent post is not off topic. He's pointing out that the article is devoid of information, so essentially all the article does say is "...it's called Spiral." His four word post contains as much information as the entire article.

    2. Re:Summary of article: by GCP · · Score: 1

      I agree completely. So what's the difference between this and any other compiler / code generator? There are Scheme implementations that compile to C. You "describe" the algorithms in a notation called Scheme, and the system "writes your C code for you". I usually use Python scripts to generate static array initialization code for great big C arrays. If the parameters change, I just rerun the Python and it "writes code" for me. If I draw a user interface with Visual Studio.Net, VS automatically generates all of my C# UI code for me.

      So what's so new about this automatic code generation system that it could revolutionize the way code is written? Well, according to the article, it produces DSP code and it's called "Spiral". Hmm. I'm not fully satisfied with that explanation....

      --
      "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  6. DSP Code by bhima · · Score: 4, Insightful

    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.
    1. Re:DSP Code by torpor · · Score: 4, Interesting

      i concur. the kinds of products i work on have the same constraints: 'tricky DSP code', which, actually, is pretty simple and easy to think with, wrapped up in a huge base of code required to make that simplicity 'easy to use' for the end user.

      gah. interface is always gonna be king. lets see if SPIRAL + GUI-RAD is gonna come to fruition any time soon, for DSP work anyway that'd be nice ..

      --
      ; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
    2. Re:DSP Code by Anonymous Coward · · Score: 0

      This SPIRAL project is about making your FFT library as fast as possible on your runtime platform. From a high-level mathematical viewpoint of an FFT, it compiles and runs candidate algorithms on your target hardware and measures the performance. It then tunes the algorithms, tweaks various parameters and compiler options, and tries again. So it may come up with an FFT algorithm that is not only optimized for running on a Xeon, but also the particular L1 and L2 cache size and other characteristics of your particular Xeon. You and I are not going to take the time to do that by hand. Intel is not going to spend the time to do that for your particular FFT sizes and particular processor configuration. SPIRAL will do it for you.

      If you know anything about how FFTW creates a "plan" for doing an FFT which is optimized to your hardware, SPIRAL sounds like they took that idea and ran with it, and not just for FFTs, but for other algorithms as well.

  7. From the Spiral "Code Generator" page by TuringTest · · Score: 2, Informative

    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.
  8. I see.. by Dogers · · Score: 2, Funny

    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.
  9. The Man-Month Myth by dascandy · · Score: 1, Flamebait

    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.

    1. Re:The Man-Month Myth by archeopterix · · Score: 2, Insightful
      They finally found the silver bullet? Wow...
      Big deal. It's being found about once a year, each time getting a story on Slashdot :-)
    2. Re:The Man-Month Myth by sydbarrett74 · · Score: 1

      Well you know, it is CMUers who refer to MIT as 'the Carnegie-Mellon of the Northeast'.

      --
      'He who has to break a thing to find out what it is, has left the path of wisdom.' -- Gandalf to Saruman
    3. Re:The Man-Month Myth by p3d0 · · Score: 4, Insightful
      Wow... and that even after the entire world has been searching for it for 42 years and didn't find it...
      You say that as though 42 years were a long time. That's like some Roman engineer claiming it's impossible to dig a tunnel under the English Channel.

      The one claim of MMM I disagree with most strongly is that we are within an order of magnitude of the most productive we will ever be in terms of software development. I firmly believe that 99+% of a typical developer's time is spent fighting with tools and reinventing wheels in a way that will seem pittifully primitive 50 years from now, and will be looked back on with awe and nostalgic reverence 200 years from now.

      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
    4. Re:The Man-Month Myth by Anonymous Coward · · Score: 0

      Thats because there is a significant percentage of programmers who enjoy doing battle with their tools. they love to reinvent the wheel and do things in the most complicated way possible.

      Hence... Perl... and also Linux.

    5. Re:The Man-Month Myth by p3d0 · · Score: 1

      Well, sometimes the wheel needs reinventing. A Roman chariot wheel wouldn't be much good on a formula-1 race car.

      --
      Patrick Doyle
      I mod down every jackass who puts his moderation policy in his sig. Oh, wait a sec....
  10. VP by SilverspurG · · Score: 0

    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.
    1. Re:VP by russellh · · Score: 1
      The problem is that it was written by a journalist.

      No revolution here.

      SPIRAL is a generator for libraries of fast software implementations of linear signal processing transforms. These libraries are adapted to the computing platform and can be re-optimized as the hardware is upgraded or replaced. ...

      Spiral: A Generator for Platform-Adapted Libraries of Signal Processing Alogorithms
      --
      must... stay... awake...
    2. Re:VP by Anonymous Coward · · Score: 0

      What a useless comment. Let's see if I can top that.

      (Why do people think it justifies their talking without knowing the subject by prepending "I didn't RTFA"? RTFA and then talk if you good something to contribute)

  11. In addition: by Anonymous Coward · · Score: 0

    ... and it's optimized!

  12. revolutionary my ass by Anonymous Coward · · Score: 3, Insightful

    It's a god damned DSP algorithm wizard.

    This will not help you write anything but specific DSP algorithms.

    1. Re:revolutionary my ass by rbarreira · · Score: 1

      Yeah, only on slashdot would this be publicized as revolutionary...

      --

      The AACS key is NOT 0xF606EEFD628B1CA427BEA93A9CA9773F
  13. 4GL by Anonymous Coward · · Score: 1, Interesting

    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...

  14. Hey... by Anonymous Coward · · Score: 0
    saving time, money and aggravation for end users
    ... But what about the developers?
  15. our dbas do that sort of.. by josepha48 · · Score: 2, Insightful

    .. 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?

    1. Re:our dbas do that sort of.. by GeorgeMcBay · · Score: 1


      What I want is a tool that generates java code from business rules. That would make my job so much easier.


      That would make your job so easy, you'd be out of one. Be careful what you wish for!

    2. Re:our dbas do that sort of.. by josepha48 · · Score: 1

      No I'd still have a job, because I can do the business analysis too.

      --

      Only 'flamers' flame!
      Does slashdot hate my posts?

  16. (it had to be said) by Bill+Dog · · Score: 2, Funny

    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
    1. Re:(it had to be said) by qwijibo · · Score: 1

      Is that an OSS project? I don't think you'd be able to sell it. Most large companies already have people with an almost spooky ability to recognize traits that could lead to project success and avoid them like the plague.

  17. For fools by robnauta · · Score: 1

    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.

  18. Paper: The Design and Implementation of FFTW3 by alw53 · · Score: 1

    www.fftw.org/fftw-paper-ieee.pdf