who writes computationally intensive code in c#? on what market research is this based on?
also does it run on linux? i'm asking because in hpc some prototyping is done on win pcs, production code is almost always on linux nodes.
so, why .net?
From what we've seen so far (early users and people we've met at conferences, etc.) there are a fair number of enterprises who write their numerical code in C# so that it's easy for them to maintain, integrate with the other applications, and so on.
It's designed to run on Linux (via Mono), but I need to fix one or two minor bugs and create installers for Linux and Mac OSX. I'm aiming to get this stuff done within the next couple of weeks. The upside here is that you'll be able to create single, GPU-accelerated binaries which you can "xcopy-deploy" to Windows, Linux, and Mac clients.
I've built a physics engine in C# called Farseer Physics Engine. Believe it or not, but it is acutally faster than the original C++ code it is based on. I did a benchmark on physics engines (based on Box2d) in Java, C# and C++: http://ianqvist.blogspot.com/2010/12/benchmarking-box2d-base...
so... you rewrote something and it's now faster? i applaud the outcome, but i'm not sure it necessarily implies that the VM is better than other VMs or native...
It is interesting, if only because I've heard a lot of talk from C/C++ developers who believe that by compiling to native code their programs will always be faster than the equivalent C# code running on the .NET CLR. It's nice to have some data points to debunk that theory.
I've always heard that VMs can do JIT optimization that may be hard to get to with native, and for the most part I've never heard of the .NET CLR being any better than any other, except for perhaps the LLVM which is better, for reasons specific to it.
This. Monte Carlo simulations are widely used in finance and as they're "embarrassingly parallel" we see fantastic speedups when porting them to the GPU. I've seen gains up to 200x on a single board when running in single precision (and about half that in double-precision) -- and you can cram 6 or 8 GPUs in a single workstation or server.