473,322 Members | 1,718 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,322 software developers and data experts.

Is .NET good for high volume numerical computing?

Hi,

I need to write an application that requires HUGH volume of number crunching
(tens of billions of calculations). Speed is the single most important
factor for me.

I am wondering is .NET (vb, c#) the right framework to develop the
application so whether I should look somewhere else.

Any help or suggestions is greatly appreciated.

Best regards,
Yee
Jul 21 '05 #1
4 1675
Cor
Hi YeeCN,

Did you ask this question also in the newsgroup

microsoft.public.dotnet.languages.vc

I think those guys can give you a better answer on this.
They have the posibility to use managed and unmanaged code.

I would ask if it is a good idea to do your application in "managed code"
and then the program language is not important anymore.

And than you should tell of course something more I suspect, because now
your question has to few information for a good answer in my eyes.

Also is of course important if the computer that you are using work with the
dotNet framework.

I hope you get your answer,

Cor

I need to write an application that requires HUGH volume of number crunching (tens of billions of calculations). Speed is the single most important
factor for me.

I am wondering is .NET (vb, c#) the right framework to develop the
application so whether I should look somewhere else.

Jul 21 '05 #2
YeeCN:
"YeeCN" <Xn************@pd.jaring.my> wrote in message
news:OI**************@TK2MSFTNGP12.phx.gbl...
Hi,

I need to write an application that requires HUGH volume of number crunching (tens of billions of calculations). Speed is the single most important
factor for me.

I am wondering is .NET (vb, c#) the right framework to develop the
application so whether I should look somewhere else.

Any help or suggestions is greatly appreciated.

Best regards,
Yee


That's kind of a vague question, but let me give you some general
observations. If pure speed is your goal and nothing else, then write your
program assembler or machine langauge. Those are going to have the least
overhead. C, C++ are going to be the next fastest and written correctly,
you should be able to squeeze out some amazing performance. Managed
languages like .NET (VB.NET, C#) and Java are abstracted quite a bit so they
aren't going to run as fast as something written in assembler all else being
equal.

However, You can definitely write high performance apps in .NET. You can
also write painfully inefficient apps in Assembler. The langauge does have
an effect, but for the most part, they way things are coded have much more
of an impact. When you throw a database in the equation, this distinction
becomes even greater ( I couldn't tell if this was the case with your app or
not).w

I would really focus on design more than the language b/c speed is one
component, but maintainability , accuracy, ability to find and fix bugs easy
etc all factor into the equation and trust me on this ;-).... .NET scores a
lot higher in these regards.

And if your question is basically "Can I write a calc intensive app in .NEt
that will perform well, then answer is yes unless you have really extremem
definitions of perform.

If you can tell me a little more about the specifics and what you are
ultimately trying to do, I can be of more help.

HTH,

Bill
Jul 21 '05 #3
> I need to write an application that requires HUGH volume of number
crunching
(tens of billions of calculations). Speed is the single most important
factor for me.

I am wondering is .NET (vb, c#) the right framework to develop the
application so whether I should look somewhere else.

Use VC++ 2003 and then you can create managed (using .NET)/unmanaged (using
normal exe code) applications.
This way you have best of both worlds. Group you performance sensitive code
into one managed class and call it through a managed class wrapper.
But try to avoid managed/unmanaged transitions, in the performance loop.

Use Assembler with MMX, SSE and SSE2 optimized code for the most performance
sensitive functions. Make these functions Monolythic (one function dedicated
for that specific job, and not calling other functions). Avoid new and
delete as much as possible, within this function. Try to avoid loops, since
it stalls the processor when it has to jump back to the start of the loop
(prefetching)....

Jul 21 '05 #4
Thanks for the many replies, and sorry for not being specific.
The problem I have is actually to simulate the behavior of loans based on
their profiles. I have to design something that can churn through 10millions
records over 10 X 12 months in 'reasonable' time.

There is a going to be a high amout of decision making and complex logic.
Assembler is definitely out. C# unsafe codes is looking promising at
present.

I also found the following useful article:
http://msdn.microsoft.com/msdnmag/is...C/default.aspx

Now I have the task of balancing between hardwiring the decison tree vs ease
of changing the decision tree structure later. Sigh.
Thanks again.

Best Regards
Yee

<Ol**********@skyscan.be> wrote in message
news:40*********************@news.skynet.be...
I need to write an application that requires HUGH volume of number crunching
(tens of billions of calculations). Speed is the single most important
factor for me.

I am wondering is .NET (vb, c#) the right framework to develop the
application so whether I should look somewhere else.

Use VC++ 2003 and then you can create managed (using .NET)/unmanaged

(using normal exe code) applications.
This way you have best of both worlds. Group you performance sensitive code into one managed class and call it through a managed class wrapper.
But try to avoid managed/unmanaged transitions, in the performance loop.

Use Assembler with MMX, SSE and SSE2 optimized code for the most performance sensitive functions. Make these functions Monolythic (one function dedicated for that specific job, and not calling other functions). Avoid new and
delete as much as possible, within this function. Try to avoid loops, since it stalls the processor when it has to jump back to the start of the loop
(prefetching)....

Jul 21 '05 #5

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

Similar topics

9
by: Carl | last post by:
I have been using Python for quite some time now and I love it. I use it mainly for explorative computing and numerical prototyping, ie testing and trying out different kinds of algorithms and...
7
by: Irmen de Jong | last post by:
Hi, Things like Twisted, medusa, etc.... that claim to be able to support hundreds of concurrent connections because of the async I/O framework they're based on.... can someone give a few...
16
by: Basil Fawlty | last post by:
Hi everyone, I have an assignment, to create a simple VB program that computes the volume of a cylinder. The Form is pretty simple, it has a label and text box for base radius, another for height...
4
by: YeeCN | last post by:
Hi, I need to write an application that requires HUGH volume of number crunching (tens of billions of calculations). Speed is the single most important factor for me. I am wondering is .NET...
2
by: farah727rash | last post by:
Hi all, I am trying to find the numerical value of a string that stores a two digit number. I have found the numerical value of a char as: char character; cin >> character; int number =...
8
by: farah727rash | last post by:
Hi all, I am trying to find the numerical value of a string that stores a two digit number. I have found the numerical value of a char as: char character; cin >character; int number =...
2
by: =?Utf-8?B?RGFtZW9u?= | last post by:
Hi - I am attempting to write lines to a file at high volume, multiple threads. Here is my scenario: (initial "WriteToFile" object created via a parent multithreaded process, which receives...
0
by: Johannes Nix | last post by:
Hi, this might be of interest for people who are look for practical information on doing real-time signal processing, possibly using multiple CPUs, and wonder whether it's possible to use...
0
by: jimmy Zhang | last post by:
Hi, We are developers of VTD-XML (http//vtd-xml.sf.net) and we are interested in your opportunities...are you still having those positions open? Jimmy Zhang <gaetan@hains.orgwrote in message...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 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 former...

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.