473,406 Members | 2,352 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,406 software developers and data experts.

Help! Need product advice for scientific computing.

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
Dec 26 '05 #1
4 2830
See this thread for a similar question with some responses:
http://www.csharphelp.com/board2/rea...=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/sol...a/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.../sw_eval/pdes/
http://www-unix.mcs.anl.gov/petsc/petsc-as/
http://www10.informatik.uni-erlangen...tml/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.

Dec 26 '05 #2
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.

"Doug H" wrote:
See this thread for a similar question with some responses:
http://www.csharphelp.com/board2/rea...=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/sol...a/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.../sw_eval/pdes/
http://www-unix.mcs.anl.gov/petsc/petsc-as/
http://www10.informatik.uni-erlangen...tml/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.

Dec 26 '05 #3
> 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/.../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


Dec 27 '05 #4
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
"Marcus Cuda" <ma****@newsgroup.nospam> wrote in message
news:eE**************@TK2MSFTNGP09.phx.gbl...
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/.../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

Dec 27 '05 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

21
by: Dave | last post by:
After following Microsofts admonition to reformat my system before doing a final compilation of my app I got many warnings/errors upon compiling an rtf file created in word. I used the Help...
9
by: Tom | last post by:
A question for gui application programmers. . . I 've got some GUI programs, written in Python/wxPython, and I've got a help button and a help menu item. Also, I've got a compiled file made with...
0
by: python-help-bounces | last post by:
Your message for python-help@python.org, the Python programming language assistance line, has been received and is being delivered. This automated response is sent to those of you new to...
4
by: Sarir Khamsi | last post by:
Is there a way to get help the way you get it from the Python interpreter (eg, 'help(dir)' gives help on the 'dir' command) in the module cmd.Cmd? I know how to add commands and help text to...
2
by: Sudheer Kareem | last post by:
Dear All Please tell me how to assosiate help files with my Vb.net Project. Regards Sudheer
6
by: d.warnermurray | last post by:
I am doing a project for school that involves creating help files for a html authoring tool. If you could help me with answers to some questions it would really help. 1. What tasks do you expect...
3
by: Colin J. Williams | last post by:
Python advertises some basic service: C:\Python24>python Python 2.4.1 (#65, Mar 30 2005, 09:13:57) on win32 Type "help", "copyright", "credits" or "license" for more information. >>> With...
9
by: JJ | last post by:
Do you all use HTML help workshop to create your help system. I am finding it quite clumsy to use. Mayeb because I am not used to using it. Do any of you use any other techniques to create help...
8
by: Mark | last post by:
I have loaded Visual Studio .net on my home computer and my laptop, but my home computer has an abbreviated help screen not 2% of the help on my laptop. All the settings look the same on both...
6
by: priyajohal | last post by:
#include<fstream.h> #include<process.h> #include<stdlib.h> #include<conio.h> #include<string.h> #include<dos.h> #include<ctype.h> #include<stdio.h> void setup() void help();
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.