Changes between Version 54 and Version 55 of DataParallel/BenchmarkStatus


Ignore:
Timestamp:
Dec 2, 2010 4:22:07 AM (4 years ago)
Author:
benl
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DataParallel/BenchmarkStatus

    v54 v55  
    1111[[br]] 
    1212= Summary = 
    13  * Evens gets slower as number of threads increases, probably because it's using a filtering operation. 
    14  * !QuickHull is 4x slower than the immutable Data.Vector version in absolute terms. This may be related to the problem with Evens. 
    15  * Vectorised sequential !QuickSort doesn't compile due to a blow-up in !SpecConstr. 
    16  * Vectorised NBody has a core-lint error due to a bug in the rule matcher. If you turn off -dcore-lint it segfaults when run. 
     13 * Evens: gets slower as the number of threads increases, probably because it's using a filtering operation. 
     14 * !QuickHull: vectorised.par.N1 version is 6x slower than the immutable Data.Vector version in absolute terms. This may be related to the problem with Evens. 
     15 * !QuickSort: vectorised.seq version doesn't compile due to a blow-up in !SpecConstr. 
     16 * NBody: has a core-lint error due to a bug in the rule matcher. If you turn off -dcore-lint it segfaults when run. Before recent GHC changes it compiled (with core-lint error), but vectorised.par Barnes-Hut algorithm was 50x slower than the version using immutable Data.Vector. 
    1717 
    18 !ToDo: Benchmarks are currently being run with -fasm, and not via the LLVM backend. This will affect comparisons with C, but not with Data.Vector as it uses the same backend. 
     18= !ToDo = 
     19 * Benchmarks are currently being run with -fasm, and not via the LLVM backend. This will affect comparisons with C, but not with Data.Vector as it uses the same backend. 
    1920 
    2021[[br]] 
     
    108109  || dph.quickhull.vectorised.par.N2 || 0.809s ||  0.21 || || 
    109110  || dph.quickhull.vectorised.par.N4 || 0.686s ||  0.24 || || 
    110   || dph.quickhull.vector-mutable.seq.N4 || 0.086s ||  1.93 || || 
    111   || dph.quickhull.vector-forkIO.par.N4 || 0.064s ||  2.59 || A || 
    112   || dph.quickhull.c.seq || 0.044s || 3.77 || B || 
     111  || dph.quickhull.vector-mutable.seq.N4 || 0.086s ||  1.93 || A || 
     112  || dph.quickhull.vector-forkIO.par.N4 || 0.064s ||  2.59 || B || 
     113  || dph.quickhull.c.seq || 0.044s || 3.77 || C || 
    113114 
    114  A: Uses mutable Data.Vectors, unsafe operations, forkIO and atomicModifyIORef. Code is uglier than the C version.[[br]] 
    115  B: Sequential C version with pre-allocated mutable intermediate buffers.[[br]] 
     115 A: Uses mutable Data.Vectors for intermediate buffers.[[br]] 
     116 B: Uses mutable Data.Vectors, forkIO and atomicModifyIORef. Concurrent threads fill a shared output vector. Code is uglier than the C version.[[br]] 
     117 C: Sequential C version with pre-allocated mutable intermediate buffers.[[br]] 
    116118 
    117  '''Status''': Benchmark scales but is 4x slower than version using immutable Data.Vectors. !QuickHull is based around filtering operations, so the fact that Evens is also slow is probably related. 
     119 '''Status''': Benchmark scales but single threaded vectorised.par version is 6x slower than slower than version using immutable Data.Vectors. !QuickHull is based around filtering operations, so the fact that Evens is also slow is probably related. 
    118120 
    119121