Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / Languages / C# / December 2005

Tip: Looking for answers? Try searching our database.

Help! Need product advice for scientific computing.

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Web_PDE_Eric - 26 Dec 2005 20:29 GMT
I don't know where to go, or what to buy, so plz re-direct me if I'm in the
wrong place.

I want to do high performance integration of partial differential eqns in n
dimensions (n=0,1,2,3..etc) I want to do (fast) graphic output of the results.

I used to use C. I want to upgrade my computer.

Do I get dual core? Does C# support dual-core? Is C# as fast as the old C?
Is there a new C? (or is C# the new version of C?) Is Visual Studio what I
buy? Which version has what I need but no more?

Where is the best place to get this kind of pre-sale technical information?

Thanks.

Eric
Doug H - 26 Dec 2005 21:09 GMT
See this thread for a similar question with some responses:
http://www.csharphelp.com/board2/read.html?f=1&i=28559&t=28559

But if you have the money you could see if there are applications which
already do what you want.  For example flexpde is one i found:
http://www.pdesolutions.com/
Another option might be to use matlab, which you may or may not want to
interface from C#:
http://www.mathworks.com/support/solutions/data/1-X1PFC.html

But if you want to do all the coding yourself, here is some info if it
is of help.
If I'm understanding, you want to do use partial differential
equations, with graphical output, and take advantage of multiple
processors.

First, you might look at existing libraries that can handle partial
differential equations (PDE's), for example PETSc or EXPDE or others,
and see if they meet your requirements:
http://www.oonumerics.org/oon/
http://wotug.ukc.ac.uk/parallel/nhse/hpc-netlib/sw_eval/pdes/
http://www-unix.mcs.anl.gov/petsc/petsc-as/
http://www10.informatik.uni-erlangen.de/~pflaum/expde/public_html/index.html

Most of them are written in C or C++, but you can still use them from
C# and .NET, using the [DllImport] attribute.  You would need to create
a C#/.NET wrapper on top of whichever library you use.  Sort of like in
the matlab sample at the mathworks link I posted above.

For the multi-processor part, you might look into MPI:
http://www-unix.mcs.anl.gov/mpi/
PETSc (mentioned above) uses MPI, for example.
Here is a .NET wrapper for MPICH, an implementation of MPI:
http://www.osl.iu.edu/research/mpi.net/
http://www-unix.mcs.anl.gov/mpi/mpich/
Another implementation of MPI is lam-mpi:
http://www.lam-mpi.org/

And for the graphical output, you'll want to learn windows.forms.
There are some free graph plotting controls already out there like
NPlot and ZedGraph.
Web_PDE_Eric - 26 Dec 2005 23:32 GMT
Thanks.  

I'll look into your suggestions.

But I really want to do raw coding.  I already coded a PDE integrator and
graphics routines in C (on an older PC). I now want to update them to a dual
core processor, if that makes sense. (I did some multi-threaded programming a
while ago, but I am not up-to-date on the best current programming tools.)

So what I need is clear information about (convenient) support for dual core
in C#, a new version of C, or something else. What is the best compiler to
use? what is the best development environment to use for dual-core
programming?

I would really like a good source for pre-sale documentation; and for
development advice.  If it existed, a book called "Efficient and Fast
Scientific Computing in C (or C#) for Dual Core Computers" would be what I
would need for development; and it's first chapter, with advice on what
compiler and coding environment to use, would be the pre-sale advice I need.

> See this thread for a similar question with some responses:
> http://www.csharphelp.com/board2/read.html?f=1&i=28559&t=28559
[quoted text clipped - 37 lines]
> There are some free graph plotting controls already out there like
> NPlot and ZedGraph.
Marcus Cuda - 27 Dec 2005 12:46 GMT
> So what I need is clear information about (convenient) support for dual core
> in C#, a new version of C, or something else. What is the best compiler to
> use? what is the best development environment to use for dual-core
> programming?
The only way to take advantage of a dual-core system is parallelize/thread your code. Since your code is already written
in C, take a look at take a look at OpenMP - www.openmp.org. VC++ 8 now supports OpenMP -
http://msdn2.microsoft.com/en-us/library/tt15eb9t.aspx. If you stick with C you might want to try using SIMD extensions
- http://msdn2.microsoft.com/library/y0dh78ez.aspx . While SIMD extensions have nothing to do with multi-core/cpu
programing, they can give a boost to numerical code. This is one place where C code can perform significantly better
than C#, since C# (actually the .NET runtime) doesn't take advantage of SIMD extensions for floating point operations.

If you have access to Intel's C++ compiler, you might want to try its auto-parallelization features -
ftp://download.intel.com/technology/itj/q12001/pdf/art_6.pdf.  It can auto-thread certain loops on multi-core/cpu
systems and tries to use SIMD extensions where possible. No changes to your code, just enable some compiler switches.

Marcus
clintonG - 27 Dec 2005 16:14 GMT
I would think you will want to read stuff like this [1] for search terms and
insight regarding Windows High Performance Computing.

<%= Clinton Gallagher
        METROmilwaukee (sm) "A Regional Information Service"
        NET csgallagher AT metromilwaukee.com
        URL http://metromilwaukee.com/
        URL http://clintongallagher.metromilwaukee.com/

[1] http://ie.developerpipeline.com/174300441

> > So what I need is clear information about (convenient) support for dual
> > core
[quoted text clipped - 21 lines]
>
> Marcus

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.