Newsgroups: comp.lang.lisp,comp.lang.lisp.mcl,comp.lang.lisp.franz,comp.lang.lisp.x,comp.lang.clos
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!vixen.cso.uiuc.edu!uchinews!gw2.att.com!nntpa!ssbunews!iexist!not-for-mail
From: clarisse@iexist.flw.att.com (55437-olivier clarisse(haim)463)
Subject: Re: Amulet 3 times faster than Garnet
Message-ID: <D9v0uK.Mq3@ssbunews.ih.att.com>
Originator: clarisse@tenet
Sender: clarisse@iexist (55437-olivier clarisse(haim)463)
Nntp-Posting-Host: tenet.flw.att.com
Organization: AT&T
References: <hbaker-0206950511260001@192.0.2.1> <neves-0206950926120001@neves.ils.nwu.edu> <3qnek3$mk@Yost.com> <KANDERSO.95Jun4194001@bitburg.bbn.com> <3qvuft$fdj@engr.orst.edu> <KANDERSO.95Jun7122504@bitburg.bbn.com>
Distribution: inet
Date: Thu, 8 Jun 1995 15:11:08 GMT
Lines: 70
Xref: glinda.oz.cs.cmu.edu comp.lang.lisp:18064 comp.lang.lisp.mcl:7180 comp.lang.lisp.franz:522 comp.lang.lisp.x:1566 comp.lang.clos:3193


The case of AMULET versus GARNET is becoming quite entertaining.
Anyone knowledgeable about these systems would care to comment?

In article <KANDERSO.95Jun7122504@bitburg.bbn.com>, kanderso@bitburg.bbn.com (Ken Anderson) writes:
|> In article <3qvuft$fdj@engr.orst.edu> atwoodj@ada.CS.ORST.EDU (John Atwood) writes:
|> 
|> I suspect they spent 5 years developing and some of that optimizing.  Their
|> change log only mentions optimization 20 times.

1. What percentage of the total GARNET project resources were spent
   optimizing (for speed) versus discovering and implementing
   new concepts of constraint based VP for example?
   
2. What tools where used to do code profiling, metering on CMU-CL
   for GARNET?

3. Were courses taught on CL optimization and programming CL
   for speed at CMU during the GARNET project? etc.

|>[...] A quick
|> grep through the Garnet sources suggets that there is plenty of room for
|> improvement.  For example:
|> 
|> 1.  Of the 1201 declarations there is only 1 fixnum declaration even though
|> i suspect a graphics application does a lot of fixnum arithmetic (there are
|> at last 2500 uses of "(+ ", for example.
|> 
|> 2. Things like (floor (/ (- fixed-width comp-width) 2)) are a performance
|> jokes.
|> 
|> 3. There are integer declarations, but they are likely to be useless.
|> 
|> Profiling is required to show what optimizations are important, but this
|> suggests there is plenty of room for improvement.
|> 
I agree, and unless developers from the orginal GARNET team can comment
to counter or confirm the above. These observations indicate
that GARNET speed performance optimization effort was a *joke*.
This suffices to justify a rewrite of GARNET in whatever language
the next team of developers is more familiar with.

I suppose the WEB pages on GARNET and AMULET will soon to
be updated to correct the misinformation they are causing
(right ?).
|> 
|>    version of the C++ version, with similar functionality, appears to be
|>    about THREE TIMES FASTER than the current Lisp version without any
|>    tuning at all.
|> 
It changes the conclusions I would draw from this last statement:
"The GARNET project used Lisp to discover new principles of
GUI and VP that would have been very hard to conceptualize using other
environments [at the time], now a new project called AMULET is using
these results to reimplement a product in C++ based on these findings."
This is perfecly fine and is a great way to get project funding at this time.

Do we see a trend elsewhere in this industry where good new ideas have
often emerged from Lisp projects to be later productized in C and C++?

Perhaps if Lisp and CLOS were taught with clear emphasis on performance
optimization tools and techniques, productizing in another language
would not be necessary. But then again, rewriting is always so
much easier (and rewarding to the rewriters) than inventing...

-- 
----------------
Olivier Clarisse	     "Languages are not unlike living organisms
Member of Technical Staff     can they adapt and improve to survive?"
AT&T Bell Laboratories
