Question: Scientific computing is algorithm intensive and can also be data intensive. It often needs to use a lot of memory to run analysis and release it before continuing with the next. Sometime it also uses memory pool to recycle memory for each analysis. Managed language is interesting here because it can allow the developer to concentrate on the application logic. Since it might need to deal with huge dataset, performance is important too. But how can we control memory and performance with managed language?

Answer: 
I think I would paraphrase the question by saying is the .NET memory manager capable of handling the job of memory management for scientific computing where traditionally hand tuned routines have been used for improving memory performance, especially for very large (GByte) matrices? 

The author of this article certainly believes that it is:
[Harness the Features of C# to Power Your Scientific Computing Projects](http://msdn.microsoft.com/en-us/magazine/cc163995.aspx)

As others have pointed out, a major point of managed code is that you don't need to deal with memory management tasks yourself. This is a major advantage as it allows you to concentrate on the algorithms.
BlackBox Component Builder, developed by Oberon microsystems, is the component-based development environment for the programming language „Component Pascal“.

Due to its stability, performance and simplicity, BlackBox is perfectly suited for science and engineering applications.

<http://www.oberon.ch/blackbox.html>

(Disclosure: I work for Oberon microsystems)

Regards,
tamberg