[m-dev.] Boehm parallel marking performance.

Paul Bone pbone at csse.unimelb.edu.au
Tue Jun 2 12:29:24 AEST 2009


I've tested the performance of the compiler (using speedtest) with and
without parallel marking enabled in the garbage collector.  Here are the
results.

Each test was performed with 50 samples, each sample attempts to compile the
dozen current largest (in terms of bytes) modules in the mercury compiler.
This was run on taura.  I've connected all the statistics generated by
speedtest, only the 'wall time' measurement is shown below.

Parallel mark improves the speed of the compiler by roughly 6.5 percent when
running in the asm_fast.gc.par grade.  This option is enabled by default in the
parallel version of the garbage collector.


EXTRA_MCFLAGS = 
EXTRA_CFLAGS = 
EXTRA_MLFLAGS = 
GRADE = asm_fast.gc

> summary(wall[test == "mercury_compile.01"])
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  33.44   33.50   33.61   33.77   33.74   39.88 

EXTRA_MCFLAGS = 
EXTRA_CFLAGS = -DPARALLEL_MARK
EXTRA_MLFLAGS = --runtime-flags "-P 1"
GRADE = asm_fast.gc.par

> summary(wall[test == "mercury_compile.02"])
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  38.84   39.33   39.60   39.62   39.87   41.69 

EXTRA_MCFLAGS = 
EXTRA_CFLAGS = -DPARALLEL_MARK
EXTRA_MLFLAGS = --runtime-flags "-P 2"
GRADE = asm_fast.gc.par

> summary(wall[test == "mercury_compile.03"])
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  38.93   39.62   39.80   39.81   40.01   40.48 

EXTRA_MCFLAGS = 
EXTRA_CFLAGS = -DPARALLEL_MARK
EXTRA_MLFLAGS = --runtime-flags "-P 3"
GRADE = asm_fast.gc.par

> summary(wall[test == "mercury_compile.04"])
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  39.08   39.61   39.80   39.92   40.17   41.59 

EXTRA_MCFLAGS = 
EXTRA_CFLAGS = -DPARALLEL_MARK
EXTRA_MLFLAGS = --runtime-flags "-P 4"
GRADE = asm_fast.gc.par

> summary(wall[test == "mercury_compile.05"])
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  39.28   39.78   40.00   40.02   40.23   41.77 

EXTRA_MCFLAGS = 
EXTRA_CFLAGS = 
EXTRA_MLFLAGS = --runtime-flags "-P 1"
GRADE = asm_fast.gc.par

> summary(wall[test == "mercury_compile.06"])
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  41.54   41.65   41.75   41.87   41.94   43.10 

EXTRA_MCFLAGS = 
EXTRA_CFLAGS = 
EXTRA_MLFLAGS = --runtime-flags "-P 2"
GRADE = asm_fast.gc.par

> summary(wall[test == "mercury_compile.07"])
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  42.08   42.16   42.28   42.56   42.60   45.35 

EXTRA_MCFLAGS = 
EXTRA_CFLAGS = 
EXTRA_MLFLAGS = --runtime-flags "-P 3"
GRADE = asm_fast.gc.par

> summary(wall[test == "mercury_compile.08"])
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  41.61   42.53   42.64   42.90   42.93   47.66 

EXTRA_MCFLAGS = 
EXTRA_CFLAGS = 
EXTRA_MLFLAGS = --runtime-flags "-P 4"
GRADE = asm_fast.gc.par

> summary(wall[test == "mercury_compile.09"])
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  41.31   41.98   42.13   42.30   42.44   43.79 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: Digital signature
URL: <http://lists.mercurylang.org/archives/developers/attachments/20090602/df62d46d/attachment.sig>


More information about the developers mailing list