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

Re: Multi-threading vs. Multi-processing?



At 5:15 PM -0500 1997-02-14, Randy Sims wrote:
>As far as I know, for Unix, Franz's AllegroCL and Harlequin's
>LispWorks are multi-threaded but are not multi-processor aware.  But,
>most of the larger servers that I am dealing with are
>multi-processors.  What, if any, comment do you have regarding this
>inability of these commercial Lisp implementations to exploit
>multi-processor capabilities and the implications for single-image
>servers like cl-http.

You bring up a very important point. Multiprocessor support would
open a number of higher end server applications.

The cheezy approach might be to run separate lisps on each processor
and use a single process to load balance over the http processes.
This assumes TCP will cooperate. 

I have been amazed for years that lisp did not incorporate contructs
in anticipation of course grain parallelism.

The ANSI lisp standard needs some extensions, one of which is
a simple process model.  It would be clever if that process model
was multiprocessor aware since there is hardly a platform today
that does not offer multiple processors. [Various people using
the web server are developing some portable network and process extensions
to CL in case anybody is interested in joining the effort.]

For web server applications, just being able to assign threads to
different processors would be a fine improvement. Since web applications
are thread aware, lots of infrastructure interprocessor coordination is not
required even if it would be desirable in other applications, e.g. databases
and parallel computation. BUT, the TCP layer may be a problem depending
on the OS and TCP implementation.

The research required to implement this has been complete for a number of
years. I expect that the vendors will awake to the issue and we'll see some
action, perhaps even this year now that you can buy multiprocessor PCs and
MACs everywhere and once they realize what a performance boast they can obtain.

Of course, a 21st century programming language would allow for mobile code to
be distributed to multiple machines for execution and fan-in results.
This mechanism might be used analogously between processes. It just
go to show that ideas about computation don't stop evolving to
oblige fixed standards.

>
>And, I don't know anything about cl-http with MCL on the Mac -- but,
>how well does the server work with something like a DayStar
>4-processor machine?

I don't know. MCL is not yet multiprocessor aware, but that could change
in the next release, given the rate at which Digitool moves.

>
>-- 
>Randal N. Sims (Randy)           |  Tel:   (803)725-8347
>Westinghouse Savannah River Co.  |  Fax:   (803)725-8829
>SRS, 773-42A, 129                |  Email: randal.sims@srs.gov
>Aiken, SC 29808-0001 USA         |  URL:   "under construction"





Follow-Ups: References: