GPGPU: Still Bleeding Edge?
Is GPGPU ready for production and prototyping use, or would you still consider it mostly a research/bleeding edge technology?  I work in the computational biology field and it's starting to attract attention from the more computer science oriented people in the field, but most of the work seems to be porting well-known algorithms.  The porting of the algorithm is itself the research project and the vast majority of people in the field don't know much about it.  

I do some pretty computationally intensive projects on conventional multicores.  I'm wondering how close GPGPU is to being usable enough for prototyping new algorithms, and for everyday production use.  From reading Wikipedia, I get the impression that the programming model is strange (heavily SIMD) and somewhat limited (no recursion or virtual functions, though these limitations are slowly being removed; no languages higher level than C or a limited subset of C++), and that there are several competing, incompatible standards.  I also get the impression that, unlike regular multicore, fine-grained parallelism is the only game in town.  Basic library functions would need to be rewritten.  Unlike with conventional multicore, you can't get huge speedups just by parallelizing the outer loop of your program and calling old-school serial library functions.

How severe are these limitations in practice?  Is GPGPU ready for serious use now?  If not, how long would you guess it will take?
GPGPU: Still Bleeding Edge?
===

Is GPGPU ready for production and prototyping use, or would you still consider it mostly a research/bleeding edge technology?  I work in the computational biology field and it's starting to attract attention from the more computer science oriented people in the field, but most of the work seems to be porting well-known algorithms.  The porting of the algorithm is itself the research project and the vast majority of people in the field don't know much about it.  

I do some pretty computationally intensive projects on conventional multicores.  I'm wondering how close GPGPU is to being usable enough for prototyping new algorithms, and for everyday production use.  From reading Wikipedia, I get the impression that the programming model is strange (heavily SIMD) and somewhat limited (no recursion or virtual functions, though these limitations are slowly being removed; no languages higher level than C or a limited subset of C++), and that there are several competing, incompatible standards.  I also get the impression that, unlike regular multicore, fine-grained parallelism is the only game in town.  Basic library functions would need to be rewritten.  Unlike with conventional multicore, you can't get huge speedups just by parallelizing the outer loop of your program and calling old-school serial library functions.

How severe are these limitations in practice?  Is GPGPU ready for serious use now?  If not, how long would you guess it will take?