[Beowulf] Optimized math routines/transcendentals

Nathan Moore ntmoore at gmail.com
Tue May 3 07:08:49 PDT 2016


Ages ago I used arbitrary precision (rational number) arithmetic via GMP to
generate numbers from an exotic conditional probability distribution
(pdf).  The application was generating random loops in (monte-carlo)
polymer physics.  I remember that for even modest- sized loops (say N=15
segments) the pdf, which was a piecewise-defined polynomial, would have
coefficients that looked like
  a0 = 99 999 999 999 999 999 991.0 / 99 999 999 999 999 999 999.0;
so double/double would fail to resolve.

Ergodically, it wasn't ok to say that this coefficient was zero, so instead
of thinking about the numerical analysis, I took the lazy (and SLOW) way
out and called all the coefficient's rational via GMP (https://gmplib.org/).
It wasn't an optimal solution, but I finished my thesis.

Nathan

On Sat, Apr 30, 2016 at 2:09 PM, C Bergström <cbergstrom at pathscale.com>
wrote:

> I was hoping for feedback, from scientists, about what level of
> accuracy their codes or fields of study typically require. Maybe the
> weekend wasn't the best time to post.. hmm..
>
> On Sun, May 1, 2016 at 1:31 AM, Peter St. John <peter.st.john at gmail.com>
> wrote:
> > A bit off the wall, and not much help for what you are doing now, but
> sooner
> > or later we won't be hand-crating ruthlessly optimal code; we'll be
> training
> > neural nets. You could do this now if you wanted: the objective function
> is
> > just accurate answers (which you get from sub-optimal but mathematically
> > correct existing code) and the wall clock (faster is better), and you
> train
> > with the target hardware. So in principle it's easy, and if you look at
> how
> > fast Deep Mind trained AlphaGo it begins to sound feasible to train for
> fast
> > fourier transforms or whatever.
> > Peter
> >
> > On Fri, Apr 29, 2016 at 9:06 PM, William Johnson <
> meatheadmerlin at gmail.com>
> > wrote:
> >>
> >> Due to the finite nature of number representation on computers,
> >> any answer will be an approximation to some degree.
> >> To me, it looks to be a non-issue to some 15 significant digits.
> >> I would say it depends how accurate you need.
> >> You could do long-hand general calculations that track percent error,
> >> and see how it gets compounded in a particular series of calculations.
> >>
> >> If you got right into the nuts and bolts of writing optimized functions,
> >> there are many clever ways to calculate common functions
> >> that you can find in certain math or algorithms & data structures texts.
> >> You would also need intimate knowledge of the target chipset.
> >> But it seems that would be way too much time in
> >> research and development to reinvent the wheel.
> >>
> >>
> >> On Fri, Apr 29, 2016 at 7:28 PM, Greg Lindahl <lindahl at pbm.com> wrote:
> >>>
> >>> On Sat, Apr 30, 2016 at 02:23:31AM +0800, C Bergström wrote:
> >>>
> >>> > Surprisingly, glibc does a pretty respectable job in terms of
> >>> > accuracy, but alas it's certainly not the fastest.
> >>>
> >>> If you go look in the source comments I believe it says which paper's
> >>> algorithm it is using... doing range reduction for sin(6e5) is
> >>> expensive to do accurately. Which is why the x86 sin() hardware
> >>> instruction does it inaccurately but quickly, and most people/codes
> >>> don't care.
> >>>
> >>> -- greg
> >>>
> >>>
> >>>
> >>> _______________________________________________
> >>> Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin
> Computing
> >>> To change your subscription (digest mode or unsubscribe) visit
> >>> http://www.beowulf.org/mailman/listinfo/beowulf
> >>
> >>
> >>
> >> _______________________________________________
> >> Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin
> Computing
> >> To change your subscription (digest mode or unsubscribe) visit
> >> http://www.beowulf.org/mailman/listinfo/beowulf
> >>
> >
> >
> > _______________________________________________
> > Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin Computing
> > To change your subscription (digest mode or unsubscribe) visit
> > http://www.beowulf.org/mailman/listinfo/beowulf
> >
> _______________________________________________
> Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin Computing
> To change your subscription (digest mode or unsubscribe) visit
> http://www.beowulf.org/mailman/listinfo/beowulf
>



-- 
- - - - - - -   - - - - - - -   - - - - - - -
Nathan Moore
Mississippi River and 44th Parallel
- - - - - - -   - - - - - - -   - - - - - - -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.beowulf.org/pipermail/beowulf/attachments/20160503/f3b39410/attachment.html>


More information about the Beowulf mailing list