[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gcl-devel] Re: GCL, GMP linkage

From: Richard Fateman
Subject: [Gcl-devel] Re: GCL, GMP linkage
Date: Thu, 18 Dec 2003 10:54:09 -0800
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)

Camm Maguire wrote:

Thanks for this example!  Something like this is definitely doable
(i.e. I think I know how to do it already :-).  I also think a generic
interface of this sort would be quite useful.  We'd probably need to
discuss which of a variety of similar approaches would be best,
e.g. uffi, before working up a generic interface -- I'm therefore
cc'ing to the list for discussion.  Also have to come to a consensus
on priority.  In the meantime, of course, we can bring forward any
particular gmp functions you or any other user might find helpful much
more quickly.  Is the set below comprehensive?

The set I gave is certainly not all of GMP, but it is all that I needed for my use of GMP as a substitute for bignum arithmetic in Allegro CL, for purposes of polynomial multiplication benchmarks and cache memory timings. I did not use (for example) GMP rationals or any of the number-theoretic functions. So it is comprehensive for my purposes, but
not all that might be needed.
I think the bindings I use are a superset of the Python bindings, and in particular I found big time savings in being able to do fused multiply-add-store kinds of things,
not possible in the usual functional language settings.

I expect eventually to link to ARPREC, which is a (free) competitor to GMP, a
successor to MPFUN, by David Bailey.  So I can compare them.

re loading

Just wondering, I assume this happens via dlopen.
I do not know the mechanism.  The lisp  "load" function does it.

What happens in
Allegro when you "save the system" and restart?  Is gmp4l.dll
automatically reloaded with your bindings?
I think this would not be done automatically, but could be specified as part of
the dumping process that a particular set of dlls must be loaded at restart.
Since I essentially never dump lisp systems, I relearn the process each time, so I don't know any details. The manual is online at franz.com. This is one area
in which the commercial lisps may be more developed than the free ones.

We have a gcl developer
(Michael Koehne) working on something similar.

Michael: I suggest you look at the specs for Allegro's "dumplisp" or equivalent, as well
as the Lispworks spec.

modest sized ones?   I think that huge numbers are not of much real
interest. (or
should I say rational interest...)
but small ones,  1 - 100 decimal digits
and especiall 1-6 decimal digits
matter a lot.

I agree that the case of many modest sized numbers is all that really
matters.   I basically just looked at Vadim's latest maxima benchmark,
ratsimp((x+y+z)^500)$, using a gmp with generic x86 code and one with
tuned SSE2 extensions.  And I could not see a difference, even when
the GBC was setup so as not to be the bottleneck.  I'd be most
interested if anyone else has encountered a real case where SSE or
SSE2 gmp speeds up bignum processing.  I've heard that clisp has a
good gmp setup, but I've not looked into this aspect myself.

It is very hard to judge what might be of interest. Some people get very excited about finding the bazillionth digit of pi. (I think this is silly mysticism, personally). I have much more sympathy with getting excited about developing the fastest algorithm for finding the bazillionth digit of pi. But this still has to count as applications of computing to pure math. Try to find funding for that! Even if you are interested in pure math, you have to agree that the number of practitioners is small, and if you think that maxima or other computer algebra systems are supposed to be especially devoted to that percentage of pure mathematicians who are also
interested in computation, then you have a very very small target audience.
This is OK,  we all live in niches of some sort....

I have no problem with super-efficient algorithms for odd problems to be included in Maxima. I DO have a problem if your interest in computing with bazillion-digit numbers
makes my counting from 1 to 10,000 slower by a large factor.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]