trying to see Exupery in action

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

trying to see Exupery in action

Chris Muller
Hi, I would like to see some indication of Squeak going faster with Exupery under Windows.  I folllowed the instructions at http://minnow.cc.gatech.edu/squeak/3945.

    - downloaded the Windows VM and replaced my squeak.exe.  F2 | Version Information reports "Squeak 3.7.1 (release) from Sep 18 2006".  Is this right?
    - I then installed Exupery-wbk.206 from SqueakMap.  Then ran the ExuperyStoryTests.  All but two passed.
    - Still, I was eager so I did "0 tinyBenchmarks".  Unfortunately I got the same #'s I got with another image without Exupery.  I tried it a couple of times.
    - I then loaded the Exupery from SqueakMap and reran the tests.  Same two failed.  Ah, I need CommandShell and GraphViz loaded!
    - So I loaded CommandShell to try making those other tests pass.  (When it reached that test it gave a bunch of errors saying it was going to stdout (looked like a mixed Unix/Windows filename), oh well).

I didn't install GraphViz, I just don't think this is the problem; I am sure I am doing something else wrong.

Any suggestions are appreciated..

 - Chris




_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

Re: trying to see Exupery in action

David T. Lewis
On Thu, Oct 05, 2006 at 07:38:07PM -0700, Chris Muller wrote:
>     - I then loaded the Exupery from SqueakMap and reran the tests.  Same two failed.  Ah, I need CommandShell and GraphViz loaded!
>     - So I loaded CommandShell to try making those other tests pass.  (When it reached that test it gave a bunch of errors saying it was going to stdout (looked like a mixed Unix/Windows filename), oh well).

GraphViz makes use of OSProcess/CommandShell on Unix systems. On Windows, it just
reads and writes temporary files and does not require OSProcess/CommandShell.
Perhaps you are looking at some test cases that were written on a Unix (or OS X)
system but may not run on Windows.

Dave

_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery
Reply | Threaded
Open this post in threaded view
|

trying to see Exupery in action

Bryce Kampjes
In reply to this post by Chris Muller

Hi Chris,

If the tests are passing (ignoring those that rely on GraphViz) then
it's working.

  ExuperyBenchmarks new run

Which on my machine produces the following output on the transcript:

  arithmaticLoopBenchmark 1395 compiled 91 ratio: 15.330
  bytecodeBenchmark 2132 compiled 456 ratio: 4.675
  sendBenchmark 1588 compiled 684 ratio: 2.322
  doLoopsBenchmark 1086 compiled 649 ratio: 1.673
  largeExplorers 337 compiled 366 ratio: 0.921
  compilerBenchmark 794 compiled 767 ratio: 1.035
  Cumulative Time 4241.294 compiled 1389.046 ratio 3.053

Only the latest versions from SqueakSource will show an improvement
for the compilerBenchmark. The current release is trying to provide an
improvment for both the compiler benchmark and the largeExplorers
benchmark. Both are using profile driven
compilation. compilerBenchmark is only spending 5% of it's time in
native code and native code support routines. Only 1.9% is actually in
native code. There's room to improve both by tuning the support code
and by improving the profiler.

Will run the benchmark suite. That should give you an idea about how
Exupery is performing.

The problem you encountered was you need to tell Exupery to compile
methods, it does not compile automatically yet. This is to make it
easier to debug.

In the latest development builds try something like:

  ExuperyProfiler optimise: [ExuperyBenchmarks new compilerBenchmark].
  ExuperyBenchmarks new compilerBenchmark
  Exupery dynamicallyInline.

Which is what the last two benchmarks call. #optimise: profiles the
block then compiles the most promising methods. #dynamicallyInline
reads the polymorphic inline caches then dynamically inlines and
compiles any primitives that were called (and Exupery knows how to
compile).

  Exupery
        compileMethod: #benchmark
        class: SmallInteger
        inlining: {{43. Array}. {62. Array}}.
  Exupery
        compileMethod: #benchFib
        class: SmallInteger.

Will manually compile the methods used by the bytecode
benchmark. Exupery compiles a version of each method for each
individual receiver. David calls this method copy-down. At the moment,
except for the #at: and #at:put: primitives which are specialised for
each receiver it's probably not providing much value in Exupery.

Bryce

_______________________________________________
Exupery mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/exupery