Dave Tweed wrote:
> But there's a lot of problems, probably more in the hazy region between
> science & engineering, where `numerically intensive' algorithms are
> developed which don't look anything like existing classical techniques.
> Here the issue is to generate CORRECT results REASONABLY QUICKLY, ie, the
> time has to be within a factor of 3-4 times of a C implementation but this
> slowdown is acceptable if you are more confident your infant algorithm is
> correctly implemented in your infant code.

Let me give an example here that demonstrates a need for speed and one
reason why some people still use FORTRAN.

One of my pervious jobs was developing new receiver techniques for
digital communication systems.  Given a description of the communication
channel we were working with (point-to-point mincrowave, cellular, etc)
we could generate our theoretical error rate curves bases on system
parameters.  Our job was see how close we could get to the curve; ie.
there isn't a concept of correct results, just degrees of success.  We
would develop a solution and then run a simulation of this solution
against a set of system parameters (generally signal to noise ratio). 
For a 99% confidence in our results, we would run our simulation until
we got 100 bit-errors.  For theoretical errors rates to 1e-5, this would
require about 10000000 input points (I think I did my math right, it's
been a while since I did this...).  Needless to say, these would take a
while.  Even a 1.5 times slowdown would mean that we could run less
simulations per day.  For numerically intensive applications like this
where running time is measure in hours, speed really does matter.  A
friend of mine uses FORTRAN just for this reason.

Looking back, I would have really liked to have used Haskell.  Infinite
lists map very nicely into DSP and digital comm methods; I was able to
boil down a failrly ugly C funtion to 3 lines of Haskell using infinite
lists.

-- 
Matt Donadio ([EMAIL PROTECTED]) | 43 Leopard Rd, Suite 102
Sr. Software Engineer                 | Paoli, PA 19301-1552
Image & Signal Processing, Inc.       | Phone: +1 610 407 4391
http://www.isptechinc.com             | FAX:   +1 610 407 4405


Reply via email to