[Openmcl-devel] Quick HW question...
Spires, Shannon V
svspire at sandia.gov
Tue Nov 16 12:30:09 CST 2010
> On modern x86, I've all but given up. I just write
> naive and straightforward code, and assume (or hope) that
> the hardware guys have optimized for that. In my experience,
> measurements typically show that the difference in execution
> time between "clever" and naive code is negligible.
> Intel has an optimization guide (you should be able to
> find it at http://www.intel.com/products/processor/manuals/).
But how do you even write clever cache-aware code in Lisp? Lisp is a pointer-following language with garbage collection; Lisp data is a dynamic graph where the nodes point all over the place and are constantly moving around. A C program is more like one big node: Its data is all in one place and it doesn't move around. Modern cache architectures were built with C-like programs in mind; they're hell for Lisp.
We either need to find a way to build uniform-speed memory (including the non-volatile variety) or move to something like Cray's XMT architecture if we want Lisp to run really fast.
More information about the Openmcl-devel