On 12/29/23 10:41, Waldek Hebisch wrote:
Well, it is not clear to me if it is useful. To explain a bit: initial ports, in particular sbcl port discovered several bugs in FriCAS, so it was worth doing if only to get rid of bugs. For several years sbcl gives us best performance, ECL gives best portablility (it runs on a lot of platforms), clisp also is/was good for portablity but apparently is is not as well maintained as ECL. GCL was main platform in open source Axiom era so required only effort to keep it running. And GCL runs reasonably well on Debian. Closure CL was developed mainly on/for Macs, so there was potential for better Mac OS support. Both Closure CL and Poplog have very fast compilation. With sbcl (and probably also GCL and ECL) it seems that about half of FriCAS compile time is spent in Lisp compilation, so even if we made Spad compiler infinitely fast, we could only double compilation speed with sbcl. OTOH in Closure CL and Poplog Lisp compile time is much lower (but Spad compiler runs slower, so total build time is longer). I also mentioned that I had/have some specific hope related to Poplog.
I think Lispworks has the fastest Lisp complication speed. For the fricas0 usage, to compile interp/*lisp, SBCL: 7.5s CCL: 8.0s CLISP: 8.9s Allegro: 13.3s Lispworks: 3.3s
Concerning speed of algebra code, one way to gain better speed is to use C code. In particular we could try to generate C code from Spad. Here major issue is cooperation with Lisp runtime system. IIUC it would be easiest using ECL, harder with other Lisps. Main thing is that there are benefits or at least hope for benefits from various ports. It is not clear to me what we gain from Allegro port. 256 Mb limit on heap size means that it will be unsuitable for larger computations. I consider 1Gb default limit of sbcl as a problem and keep larger versions for serious use. 256 Mb limit will cause much more problem. And lack of FFI is serious drawback. Of course this is your time but my personal take was that I do not want to work with "free" Allegro or Lispworks, simply I see no gain. If somebody with "professional" licence want to contribite a port I would accept it on "as is basis" (that was case with Lispworks). But working around limitations of "free" versions looks pointless. I would be interesting to know how fast Allegro is. For compile time you could try RDEEFX or LODOF2.
For RDEEFX.spad: SBCL: 9.01s CCL: 21.86s CLISP: 34.19s Allegro: 8.64s LispWorks: 16.40s
For runtime most interesting tests uses lot of memory, one could try Ralf example of finite field factorization, it should have moderate memory use. Or try some microbenchmarks.
For factor p3: SBCL: 15.92s (no FFI, with FFI, it is 3.25s) CCL: 6.23s CLISP: 41.31s Allegro: 16.86s Lispworks: 4.71s There's no clear winner in all 3 tests. Allegro performance is not bad. - Qian -- You received this message because you are subscribed to the Google Groups "FriCAS - computer algebra system" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/fricas-devel/43148841-2681-4b05-b87d-87c4f8a7b8bc%40gmail.com.
