Yesterday I was at a talk by Pat Hanrahan on embedded DSLs and GPUs at the nvidia GPU conference: http://www.nvidia.com/object/gpu_technology_conference.html
Pat argued that the only way forward to achieve usable computing power for physics on heterogeneous computers (eg. multicore+GPU) is through the use of embedded DSLs to allow physicists to express algorithms without reference to underlying architecture, or even details like data structures. His main example involved using Scala to generate C code for scramjet simulation (ie. we're not talking toy simulations here). He actually mentioned Haskell at one point. I strongly agree with Pat. Unfortunately I can't find slides, or many details of the project, online. It seems to me that Haskell is both an excellent host language for embedding small languages and is also a particularly good language for expressing algorithms for code generation. I think this should be the #1 selling point for Haskell for physicists. The only point I vaguely disagreed with was that Pat seemed to think that dynamic types were essential. For the types of problems he was describing it seemed to me that static types were precisely what you needed. -- Dan On Sat, Oct 3, 2009 at 4:23 AM, Khudyakov Alexey <alexey.sklad...@gmail.com> wrote: > В сообщении от 30 сентября 2009 23:42:57 Casey Hawthorne написал: >> On Wed, 30 Sep 2009 21:24:11 +0200, you wrote: >> >I?m a physicist, so I think they would be attracted by something like >> > >> >Haskell: high level physics modelling at Fortran speeds >> > >> >Haskell: mathematics beyond numerical calculus >> >> And, >> easier to make use of multi-core machines than threaded Fortran. >> > Yes this is good selling point. Fortran (and C++ too) programs heavily rely on > global state. And thus are very difficult to parallelize. Frequently only > possibility is process-level parallelism. This however has problems too. > > >> I suppose one could have a Haskell parser convert Fortran to monadal >> code. >> >> Then, a parser to convert, hopefully, most of the resulting code to >> pure code. >> > This is interesting but very challenging task. Conversion fortran-> monadic > code is trade of one mess for another. Since local state and global state are > ubiquitous it's difficult to factor out pure functions. Another problem is > that > fortran functions are usually BIG. > > Most likely this will require manual intervention. > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe