[CLN-list] CLN-list Digest, Vol 55, Issue 2

Joshua Friedman crowneagle at gmail.com
Mon Jan 10 17:08:09 CET 2011


Is there an easy to to tell if I succeeded in compiling cln to 64 bit on OS
X?

On Sat, Dec 11, 2010 at 6:00 AM, <cln-list-request at ginac.de> wrote:

> Send CLN-list mailing list submissions to
>        cln-list at ginac.de
>
> To subscribe or unsubscribe via the World Wide Web, visit
>        https://www.cebix.net/mailman/listinfo/cln-list
> or, via email, send a message with subject or body 'help' to
>        cln-list-request at ginac.de
>
> You can reach the person managing the list at
>        cln-list-owner at ginac.de
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of CLN-list digest..."
>
>
> Today's Topics:
>
>   1. Re: Does someone see a way to speed this up (Bruno Haible)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Sat, 11 Dec 2010 00:50:47 +0100
> From: Bruno Haible <bruno at clisp.org>
> To: cln-list at ginac.de
> Cc: Joshua Friedman <crowneagle at gmail.com>
> Subject: Re: [CLN-list] Does someone see a way to speed this up
> Message-ID: <201012110050.49085.bruno at clisp.org>
> Content-Type: text/plain;  charset="utf-8"
>
> Hi Joshua,
>
> > I am using a lot of function calls, would passing constant pointers speed
> up
> > my program significantly? ...
> > I don't expect people to read the code, just look at the way I am using
> cln.
> > Is this an efficient way?
>
> Based on past experience, not on your program in particular, here's a list
> of suggestions, starting with the most promising ones, and the least
> promising ones at the end.
>
> 1) Use a profiler that displays the bottlenecks and relative consumption
>   of CPU time. On Linux/x86, the tool of choice is
>   valgrind <http://valgrind.org/docs/manual/cl-manual.html>, together
>   with kcachegrind for the visualization of the results.
>
> 2) Are you using excess precision in large parts of the computations?
>   Often, in order to get 20 digits of a result, you need 40 digits
>   throughout the computation if you choose a constant precision.
>   But sometimes you can actually do part of the computation with
>   22 digits and part with 40 digits, and the result will still have
>   20 digits of accuracy.
>   For analyzing this, you need to have a certain understanding of the
>   numerical stability of your algorithm. For example, when you are
>   evaluating integrals along a path around a pole, you use 40
>   digits in the computation and get 20 digits accuracy in the result;
>   but when you are evaluating an integrals along a path around a
>   region with no singularity, then 40 digits in the computation normally
>   lead to slightly less than 40 digits accuracy in the result.
>
> 3) When computing integrals, use higher-order integration methods than
>   simple averaged summation, if the integrand has continuous derivates.
>   If your integrand is infinitely differentiable, then Runge-Kutta
>   (the formula with 1/6, 4/6, 1/6) is a big win, and higher-order
>   Runge-Kutta methods are even better.
>
> 4) Pull calls to transcendental functions out of loops if possible.
>   In CLN, elementary operations and sqrt are fast, whereas sin, exp,
>   log, etc. are significantly slower.
>
> 5) Pull common computations out of loops. The compiler won't do it
>   for it. Things like  cl_float(2,prec)*PI  are quite fast to compute,
>   but you may save a couple of percent by moving all these "trivial"
>   common subexpressions outside the loops.
>
> 6) Then only, start to worry about whether you pass numbers by
>   "copy" (e.g. cl_N x) or by reference (e.g. const cl_N& x).
>   CLN numbers are references anyway, so by doing this you can save
>   the increment and decrement of a reference count, nothing else.
>   If you had many function calls and many small-sized bignums
>   and floats, you could save maybe at most 20% by using this trick.
>   It's more a micro-optimization than the other five points.
>
> Bruno
>
>
> ------------------------------
>
> _______________________________________________
> CLN-list mailing list
> CLN-list at ginac.de
> https://www.cebix.net/mailman/listinfo/cln-list
>
>
> End of CLN-list Digest, Vol 55, Issue 2
> ***************************************
>



-- 
Joshua Friedman PhD
CrownEagle at gmail.com
http://www.math.sunysb.edu/~joshua
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cebix.net/pipermail/cln-list/attachments/20110110/5f7908c7/attachment.html>


More information about the CLN-list mailing list