Version 15 (modified by chak, 5 years ago) (diff)


Plan for the December 2010 Release

To be released components

  • GHC 7.0.2
  • DPH packages
  • Repa packages

(No release of vector should be necessary, as should work fine.)

Before the release we must achieve the following


API adaptation: APIs of vector, Repa, and Accelerate should be unified as far as possible

  • Repa's current 'replicate' should be renamed and a new 'replicate' that turns a scalar into an array should be introduced ???
  • Check similarity of singleton/unit between all three libraries ???


  • -fdph-par should be the default (and sensible error message if the dph package is not available) [MANUEL]
  • -Odph should be equivalent to '-O2 -fsimplifier-phases=3 -fsimplifier-iterations=20' [MANUEL]
  • Move GHC.PArr into the DPH libs. (Needed for Haddock.) [MANUEL]
  • Find out if we still need the NoSpecConstr annotation and remove it if not [ROMAN]

Bug fixes:

  • Vectoriser needs to be adapted to Simon's recursive superclasses patch [ROMAN]
  • The combination '-fvectorise -O0' should work [ROMAN]
  • Trying to vectorise the DotP example from the tutorial on the Haskell Wiki, -fdph-seq fails with (-fdph-par works fine)
    *** Vectorisation error ***
        Tycon not vectorised:  Data.Array.Parallel.Lifted.PArray.PArray
  • LLVM back end not working with DPH (held up due to LLVM backend problems in the HEAD) [BEN]
  • Repa edge-detection is deadlocking with more than 2 threads [DONE]
  • Fix the BH seg fault in DPH. Roman has found the problem [DONE]

Performance goals:

  • Vector works fast, sequentially, compared to C, Haskell mutable-array version [FINE]
    • Benchmarks: NoSlow, vector versions of Repa benchmarks
  • Repa works fast in parallel
    • MMult [OK, but about 20% slower than in 6.13; try with LLVM and w/o bounds checks] [BEN]
    • Laplace (blocked on LLVM backend problems) [SLOW & DOESN'T SCALE] [BEN]
    • Blur [OK]
    • EdgeDetect [OK]
    • FFT [OK]
  • Statically-nested DPH programs should work fast, in parallel
    • SumSquares [FINE]
    • Dot product [FINE]
    • Evens [OK (but more than 3 times slower than C)]
      • rl reckons this is due to GHC compiling modulo of powers of two inefficiently; c.f., #3065 (in packByTags)
    • SMVM (blocked on optimisation of lifted indexing) [BROKEN] [BEN & ROMAN]
  • Dynamically-nested DPH programs without user-defined datatypes should run correctly, but not necessarily fast
    • Quicksort [BROKEN (SpecConstr) & SLOW] [SIMON & BEN]
    • Quickhull [OK, but has a SpecConstr problem that we want to fix] [ROMAN]
      • Probably affected by the same optimisation issue with the compilation of modulo operations as Evens
      • #4830 (fix incoming)
  • Dynamically-nested DPH programs with user-defined datatypes should run correctly, but not necessarily fast


Works well
Fine for the release, but could be better
Not usable
Tags in bold require attention before the release.

More benchmarks details at DataParallel/BenchmarkStatus