All of us know that the major PC-hardware companies (AMD&ATI, Intel, nVidia) release lots of software tools in order to aid to a software developers. This is good, but not enough, IMHO. In fact, quiet not every software developer is interested to optimize its program to a new hardware, because this takes lots of various resources. As result, we can see that almost all software developers do ignore optimizations, which can be achieved by using a modern technologies like last (and even first!) SSE's, multi-core CPU, GPU-calculations and so on. Of course, there are several tools exist that can help software developers to optimize its program: very efficient compilers, CUDA etc.
But let me to expose yet another point of view. What if to negotiate with software developers to publish the sources of most calculation-intensive parts of their programs? You may ask me: what for? To optimize it by call upon the huge world community of enthusiasts or professionals. Let's imagine that some software company would publish such a part of program, then some enthusiasts or professionals could optimize it and release their work as libraries to integration into the program by using, for example, not yet existed Open Application Accelerator
. When the program runs, it can call the OpenAA and ask it for optimized libraries. If ones exist, the program will use them, if not, the program will use her own libraries.
This method could be the panacea for a software developers. They need just to publish a piece of code, that's all. All the work will be done by enthusiasts or professionals, whose will be free to use any technology they do like.