[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
BIG LISP program
Date: 19 Nov 89 20:01:18 GMT
From: email@example.com (Chet Murthy)
Subject: BIG LISP program
I don't know how to send this back to comp.lang.lisp, perhaps someone
else could forward it.
Recently I posted asking about an environment for running really big LISP
programs. The requirements were basically 1) large (>1Gbyte) memory
size, 2) large (>100MB) stack size, 3) reasonably efficient garbage
collection, and 4) the ability to use cheap (e.g. SCSI) disk drives.
so far, I've tried to run my program on LUCID CL, Symbolics
LISP machine, and Symbolics Ivorys.
LUCID has a 256MB memory limit, so my application runs out of memory.
MacIvorys have a 4Mword stack limit, so the stack blows out
This does not seem to be true. I just created a 5 million word array on
the stack on my MacIvory. Since I didn't use the Set Stack Size command
in advance, stack-overflow was signalled once and I had to proceed, but
that's as it should be. Of course it took a while to create the array,
since I don't have 5 million words of real memory on my machine, but I
think this shows that if there is a limit on stack size, it's larger
than you say. I believe the limit would be around (expt 2 27) words.
I was assuming your 100MB stack was a data stack, rather than a special
variable binding stack or a control (function recursion) stack, since
you didn't specify.
LISP machines use SMD disks, so I can't find 4 of them - which is what
it would take to get me over a Gig of swap space.
Symbolics machines (both 3600s and Ivory-based systems) use a variety of
different disks, not all SMD. All three varieties of Ivory-based
machine can be expanded to at least several gigabytes of disk using
relatively low-cost disks. Not SCSI in some cases, but I believe the
ESDI disks cost about the same per megabyte as SCSI disks.
So I don't think there are any architectural limitations in Symbolics
Ivory-based machines that would make it impossible to run your program.
Whether you'll be able to find a large enough hardware configuration to
run such a program at acceptable speed depends on what your application
does as well as on how deep your pockets are. Time spent reorganizing
your program for improved efficiency could be well worthwhile.